diff options
author | Jason Molenda <jmolenda@apple.com> | 1999-08-02 23:48:02 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 1999-08-02 23:48:02 +0000 |
commit | c862e87b3ec8647ab6c1bb08443088ea81c74225 (patch) | |
tree | 8e5828b091fea3257c7ffc20a5c95f1d62b93267 /readline/kill.c | |
parent | c95b01a9b04837dbfc8986afbbccc4c7d2b4ebf8 (diff) | |
download | gdb-c862e87b3ec8647ab6c1bb08443088ea81c74225.zip gdb-c862e87b3ec8647ab6c1bb08443088ea81c74225.tar.gz gdb-c862e87b3ec8647ab6c1bb08443088ea81c74225.tar.bz2 |
import gdb-1999-08-02 snapshot
Diffstat (limited to 'readline/kill.c')
-rw-r--r-- | readline/kill.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/readline/kill.c b/readline/kill.c index a150e3c..0b4714f 100644 --- a/readline/kill.c +++ b/readline/kill.c @@ -572,6 +572,8 @@ rl_yank_last_arg (count, key) static int explicit_arg_p = 0; static int count_passed = 1; static int direction = 1; + static int undo_needed = 0; + int retval; if (rl_last_func != rl_yank_last_arg) { @@ -582,19 +584,22 @@ rl_yank_last_arg (count, key) } else { - rl_do_undo (); + if (undo_needed) + rl_do_undo (); if (count < 1) direction = -direction; history_skip += direction; if (history_skip < 0) history_skip = 0; - count_passed = count; } if (explicit_arg_p) - return (rl_yank_nth_arg_internal (count, key, history_skip)); + retval = rl_yank_nth_arg_internal (count_passed, key, history_skip); else - return (rl_yank_nth_arg_internal ('$', key, history_skip)); + retval = rl_yank_nth_arg_internal ('$', key, history_skip); + + undo_needed = retval == 0; + return retval; } /* A special paste command for users of Cygnus's cygwin32. */ |