diff options
author | ache <ache@FreeBSD.org> | 2001-04-11 02:33:07 +0000 |
---|---|---|
committer | ache <ache@FreeBSD.org> | 2001-04-11 02:33:07 +0000 |
commit | 7891d143f55af69c2b2170c55883b90eb511edc8 (patch) | |
tree | c3725656ec5fa39442443733e8f26d65a833d926 /contrib/libreadline/macro.c | |
parent | 63ac1d62cca323eed6b1c6cc5a02250afa53bd2e (diff) | |
parent | e5103242d94d5211fa44bad651caaa7a61519867 (diff) | |
download | FreeBSD-src-7891d143f55af69c2b2170c55883b90eb511edc8.zip FreeBSD-src-7891d143f55af69c2b2170c55883b90eb511edc8.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r75406,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/libreadline/macro.c')
-rw-r--r-- | contrib/libreadline/macro.c | 42 |
1 files changed, 22 insertions, 20 deletions
diff --git a/contrib/libreadline/macro.c b/contrib/libreadline/macro.c index 5a44852..fed298a 100644 --- a/contrib/libreadline/macro.c +++ b/contrib/libreadline/macro.c @@ -57,12 +57,12 @@ /* */ /* **************************************************************** */ -/* Non-zero means to save keys that we dispatch on in a kbd macro. */ -int _rl_defining_kbd_macro = 0; - /* The currently executing macro string. If this is non-zero, then it is a malloc ()'ed string where input is coming from. */ -char *_rl_executing_macro = (char *)NULL; +char *rl_executing_macro = (char *)NULL; + +/* Non-zero means to save keys that we dispatch on in a kbd macro. */ +int _rl_defining_kbd_macro = 0; /* The offset in the above string to the next character to be read. */ static int executing_macro_index; @@ -95,8 +95,9 @@ _rl_with_macro_input (string) char *string; { _rl_push_executing_macro (); - _rl_executing_macro = string; + rl_executing_macro = string; executing_macro_index = 0; + RL_SETSTATE(RL_STATE_MACROINPUT); } /* Return the next character available from a macro, or 0 if @@ -104,16 +105,16 @@ _rl_with_macro_input (string) int _rl_next_macro_key () { - if (_rl_executing_macro == 0) + if (rl_executing_macro == 0) return (0); - if (_rl_executing_macro[executing_macro_index] == 0) + if (rl_executing_macro[executing_macro_index] == 0) { _rl_pop_executing_macro (); return (_rl_next_macro_key ()); } - return (_rl_executing_macro[executing_macro_index++]); + return (rl_executing_macro[executing_macro_index++]); } /* Save the currently executing macro on a stack of saved macros. */ @@ -125,7 +126,7 @@ _rl_push_executing_macro () saver = (struct saved_macro *)xmalloc (sizeof (struct saved_macro)); saver->next = macro_list; saver->sindex = executing_macro_index; - saver->string = _rl_executing_macro; + saver->string = rl_executing_macro; macro_list = saver; } @@ -137,20 +138,21 @@ _rl_pop_executing_macro () { struct saved_macro *macro; - if (_rl_executing_macro) - free (_rl_executing_macro); - - _rl_executing_macro = (char *)NULL; + FREE (rl_executing_macro); + rl_executing_macro = (char *)NULL; executing_macro_index = 0; if (macro_list) { macro = macro_list; - _rl_executing_macro = macro_list->string; + rl_executing_macro = macro_list->string; executing_macro_index = macro_list->sindex; macro_list = macro_list->next; free (macro); } + + if (rl_executing_macro == 0) + RL_UNSETSTATE(RL_STATE_MACROINPUT); } /* Add a character to the macro being built. */ @@ -180,14 +182,12 @@ _rl_kill_kbd_macro () } current_macro_size = current_macro_index = 0; - if (_rl_executing_macro) - { - free (_rl_executing_macro); - _rl_executing_macro = (char *) NULL; - } + FREE (rl_executing_macro); + rl_executing_macro = (char *) NULL; executing_macro_index = 0; _rl_defining_kbd_macro = 0; + RL_UNSETSTATE(RL_STATE_MACRODEF); } /* Begin defining a keyboard macro. @@ -215,6 +215,7 @@ rl_start_kbd_macro (ignore1, ignore2) current_macro_index = 0; _rl_defining_kbd_macro = 1; + RL_SETSTATE(RL_STATE_MACRODEF); return 0; } @@ -235,6 +236,7 @@ rl_end_kbd_macro (count, ignore) current_macro[current_macro_index] = '\0'; _rl_defining_kbd_macro = 0; + RL_UNSETSTATE(RL_STATE_MACRODEF); return (rl_call_last_kbd_macro (--count, 0)); } @@ -250,7 +252,7 @@ rl_call_last_kbd_macro (count, ignore) if (_rl_defining_kbd_macro) { - ding (); /* no recursive macros */ + rl_ding (); /* no recursive macros */ current_macro[--current_macro_index] = '\0'; /* erase this char */ return 0; } |