diff options
author | Tom Tromey <tom@tromey.com> | 2018-10-07 12:52:13 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2019-08-12 10:57:56 -0600 |
commit | 775e241e9c5f2b2ff2b59972ab70e5f20763fae6 (patch) | |
tree | 597ab643dce69ee6e98e46ecac00ee85f447bb4b /readline/macro.c | |
parent | 08132bdd876fa1825810f90ecc25390dd4ded457 (diff) | |
download | gdb-775e241e9c5f2b2ff2b59972ab70e5f20763fae6.zip gdb-775e241e9c5f2b2ff2b59972ab70e5f20763fae6.tar.gz gdb-775e241e9c5f2b2ff2b59972ab70e5f20763fae6.tar.bz2 |
Import readline 7.0 (patch 5)
This imports readline 7.0 (up to patch 5) while preserving all
gdb-local changes.
This was done by checking out the readline git repository, making a
branch based on the gdb baseline revision, applying the gdb changes to
that branch, and then merging from readline 7.
readline/ChangeLog.gdb
2019-08-12 Tom Tromey <tom@tromey.com>
* Imported readline 7.0 patch 5.
Diffstat (limited to 'readline/macro.c')
-rw-r--r-- | readline/macro.c | 42 |
1 files changed, 39 insertions, 3 deletions
diff --git a/readline/macro.c b/readline/macro.c index c2fac8a..c7017cc 100644 --- a/readline/macro.c +++ b/readline/macro.c @@ -121,6 +121,19 @@ _rl_next_macro_key () #endif } +int +_rl_prev_macro_key () +{ + if (rl_executing_macro == 0) + return (0); + + if (executing_macro_index == 0) + return (0); + + executing_macro_index--; + return (rl_executing_macro[executing_macro_index]); +} + /* Save the currently executing macro on a stack of saved macros. */ void _rl_push_executing_macro () @@ -206,7 +219,7 @@ rl_start_kbd_macro (ignore1, ignore2) if (RL_ISSTATE (RL_STATE_MACRODEF)) { _rl_abort_internal (); - return -1; + return 1; } if (rl_explicit_arg) @@ -231,10 +244,10 @@ rl_end_kbd_macro (count, ignore) if (RL_ISSTATE (RL_STATE_MACRODEF) == 0) { _rl_abort_internal (); - return -1; + return 1; } - current_macro_index -= rl_key_sequence_length - 1; + current_macro_index -= rl_key_sequence_length; current_macro[current_macro_index] = '\0'; RL_UNSETSTATE(RL_STATE_MACRODEF); @@ -263,6 +276,29 @@ rl_call_last_kbd_macro (count, ignore) return 0; } +int +rl_print_last_kbd_macro (count, ignore) + int count, ignore; +{ + char *m; + + if (current_macro == 0) + { + rl_ding (); + return 0; + } + m = _rl_untranslate_macro_value (current_macro, 1); + rl_crlf (); + printf ("%s", m); + fflush (stdout); + rl_crlf (); + FREE (m); + rl_forced_update_display (); + rl_display_fixed = 1; + + return 0; +} + void rl_push_macro_input (macro) char *macro; |