diff options
author | Bram Moolenaar <Bram@vim.org> | 2012-02-05 01:18:48 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2012-02-05 01:18:48 +0100 |
commit | be094a157913535d46cc6ac39465ce1ea7dae132 (patch) | |
tree | ef66aa86500e55299f1a338cb7cc3d6b0632d2e7 /src/getchar.c | |
parent | e37c611012a8b0b822e9d60baacd642c20c07851 (diff) |
updated for version 7.3.429v7.3.429
Problem: When 'cpoptions' includes "E" "c0" in the first column is an
error. The redo register is then set to the errornous command.
Solution: Do not set the redo register if the command fails because of an
empty region. (Hideki Eiraku)
Diffstat (limited to 'src/getchar.c')
-rw-r--r-- | src/getchar.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/src/getchar.c b/src/getchar.c index 3d6b0b23a3..af18c6f249 100644 --- a/src/getchar.c +++ b/src/getchar.c @@ -470,6 +470,24 @@ ResetRedobuff() } } +/* + * Discard the contents of the redo buffer and restore the previous redo + * buffer. + */ + void +CancelRedo() +{ + if (!block_redo) + { + free_buff(&redobuff); + redobuff = old_redobuff; + old_redobuff.bh_first.b_next = NULL; + start_stuff(); + while (read_stuff(TRUE) != NUL) + ; + } +} + #if defined(FEAT_AUTOCMD) || defined(FEAT_EVAL) || defined(PROTO) /* * Save redobuff and old_redobuff to save_redobuff and save_old_redobuff. @@ -691,9 +709,9 @@ stuffnumReadbuff(n) * Read a character from the redo buffer. Translates K_SPECIAL, CSI and * multibyte characters. * The redo buffer is left as it is. - * if init is TRUE, prepare for redo, return FAIL if nothing to redo, OK - * otherwise - * if old is TRUE, use old_redobuff instead of redobuff + * If init is TRUE, prepare for redo, return FAIL if nothing to redo, OK + * otherwise. + * If old is TRUE, use old_redobuff instead of redobuff. */ static int read_redo(init, old_redo) |