diff options
author | Jason Molenda <jsm@bugshack.cygnus.com> | 1999-08-02 23:48:37 +0000 |
---|---|---|
committer | Jason Molenda <jsm@bugshack.cygnus.com> | 1999-08-02 23:48:37 +0000 |
commit | 6da787a878c938e680f13808dee254beacefbd43 (patch) | |
tree | 7c7b4d4f6655b210e33ca51f656f4552c9326ed3 /readline/kill.c | |
parent | 1392c9fbbf6fe8811e5374356b7fdf3b389068ab (diff) | |
download | gdb-6da787a878c938e680f13808dee254beacefbd43.tar.gz |
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 a150e3c28d2..0b4714fafa8 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. */ |