summaryrefslogtreecommitdiffstats
path: root/src/getchar.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2012-02-05 01:18:48 +0100
committerBram Moolenaar <Bram@vim.org>2012-02-05 01:18:48 +0100
commitbe094a157913535d46cc6ac39465ce1ea7dae132 (patch)
treeef66aa86500e55299f1a338cb7cc3d6b0632d2e7 /src/getchar.c
parente37c611012a8b0b822e9d60baacd642c20c07851 (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.c24
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)