readline: drop readline-only-enable-meta-key-for-a-single-call-read.patch
The 6.3 has fixed this issue. (From OE-Core rev: 86f3674b402c7f3f3e0e82043936fb24d5fb5b7e) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
eddaf70192
commit
da4c775412
|
@ -1,114 +0,0 @@
|
|||
readline: only enable meta key for a single call readline().
|
||||
|
||||
terminal.c
|
||||
- change _rl_enable_meta_key to set a flag indicating that it sent the
|
||||
enable-meta sequence
|
||||
- _rl_disable_meta_key: new function to turn off meta mode after we
|
||||
turned it on with _rl_enable_meta_key
|
||||
|
||||
rlprivate.h
|
||||
- extern declaration for _rl_disable_meta_key
|
||||
|
||||
readline.c
|
||||
- _rl_internal_teardown: add call to _rl_disable_meta_key to make the
|
||||
meta key active only for the duration of the call to readline()
|
||||
- _rl_internal_setup: move call to _rl_enable_meta_key here from
|
||||
readline_initialize_everything so the meta key is active only for
|
||||
the duration of the call to readline(). Suggestion from Miroslav
|
||||
Lichvar <mlichvar@redhat.com>
|
||||
|
||||
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
|
||||
Upstream-Status: backport
|
||||
Imported patch from: http://git.savannah.gnu.org/cgit/bash.git/tag/?id=bash-4.3-alpha
|
||||
---
|
||||
readline.c | 12 ++++++++----
|
||||
rlprivate.h | 1 +
|
||||
terminal.c | 19 ++++++++++++++++++-
|
||||
3 files changed, 27 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/readline.c b/readline.c
|
||||
--- a/readline.c
|
||||
+++ b/readline.c
|
||||
@@ -369,6 +369,11 @@ readline_internal_setup ()
|
||||
_rl_in_stream = rl_instream;
|
||||
_rl_out_stream = rl_outstream;
|
||||
|
||||
+ /* Enable the meta key only for the duration of readline(), if this
|
||||
+ terminal has one. */
|
||||
+ if (_rl_enable_meta)
|
||||
+ _rl_enable_meta_key ();
|
||||
+
|
||||
if (rl_startup_hook)
|
||||
(*rl_startup_hook) ();
|
||||
|
||||
@@ -437,6 +442,9 @@ readline_internal_teardown (eof)
|
||||
if (rl_undo_list)
|
||||
rl_free_undo_list ();
|
||||
|
||||
+ /* Disable the meta key, if this terminal has one. */
|
||||
+ _rl_disable_meta_key ();
|
||||
+
|
||||
/* Restore normal cursor, if available. */
|
||||
_rl_set_insert_mode (RL_IM_INSERT, 0);
|
||||
|
||||
@@ -1091,10 +1099,6 @@ readline_initialize_everything ()
|
||||
/* Try to bind a common arrow key prefix, if not already bound. */
|
||||
bind_arrow_keys ();
|
||||
|
||||
- /* Enable the meta key, if this terminal has one. */
|
||||
- if (_rl_enable_meta)
|
||||
- _rl_enable_meta_key ();
|
||||
-
|
||||
/* If the completion parser's default word break characters haven't
|
||||
been set yet, then do so now. */
|
||||
if (rl_completer_word_break_characters == (char *)NULL)
|
||||
diff --git a/rlprivate.h b/rlprivate.h
|
||||
index 384ff67..be2c2c6 100644
|
||||
--- a/rlprivate.h
|
||||
+++ b/rlprivate.h
|
||||
@@ -339,6 +339,7 @@ extern int _rl_output_character_function PARAMS((int));
|
||||
extern void _rl_output_some_chars PARAMS((const char *, int));
|
||||
extern int _rl_backspace PARAMS((int));
|
||||
extern void _rl_enable_meta_key PARAMS((void));
|
||||
+extern void _rl_disable_meta_key PARAMS((void));
|
||||
extern void _rl_control_keypad PARAMS((int));
|
||||
extern void _rl_set_cursor PARAMS((int, int));
|
||||
|
||||
diff --git a/terminal.c b/terminal.c
|
||||
index f8c2f6e..21ee031 100644
|
||||
--- a/terminal.c
|
||||
+++ b/terminal.c
|
||||
@@ -683,12 +683,29 @@ rl_ding ()
|
||||
/* */
|
||||
/* **************************************************************** */
|
||||
|
||||
+static int enabled_meta = 0; /* flag indicating we enabled meta mode */
|
||||
+
|
||||
void
|
||||
_rl_enable_meta_key ()
|
||||
{
|
||||
#if !defined (__DJGPP__)
|
||||
if (term_has_meta && _rl_term_mm)
|
||||
- tputs (_rl_term_mm, 1, _rl_output_character_function);
|
||||
+ {
|
||||
+ tputs (_rl_term_mm, 1, _rl_output_character_function);
|
||||
+ enabled_meta = 1;
|
||||
+ }
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+_rl_disable_meta_key ()
|
||||
+{
|
||||
+#if !defined (__DJGPP__)
|
||||
+ if (term_has_meta && _rl_term_mo && enabled_meta)
|
||||
+ {
|
||||
+ tputs (_rl_term_mo, 1, _rl_output_character_function);
|
||||
+ enabled_meta = 0;
|
||||
+ }
|
||||
#endif
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1.2
|
||||
|
Loading…
Reference in New Issue