summaryrefslogtreecommitdiff
path: root/src/undo.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/undo.c')
-rw-r--r--src/undo.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/undo.c b/src/undo.c
index 1ead1561f..0c7cbd751 100644
--- a/src/undo.c
+++ b/src/undo.c
@@ -845,6 +845,28 @@ u_sync()
}
/*
+ * ":undojoin": continue adding to the last entry list
+ */
+/*ARGSUSED*/
+ void
+ex_undojoin(eap)
+ exarg_T *eap;
+{
+ if (!curbuf->b_u_synced)
+ return; /* already unsynced */
+ if (curbuf->b_u_newhead == NULL)
+ return; /* nothing changed before */
+ if (p_ul < 0)
+ return; /* no entries, nothing to do */
+ else
+ {
+ /* Go back to the last entry */
+ curbuf->b_u_curhead = curbuf->b_u_newhead;
+ curbuf->b_u_synced = FALSE; /* no entries, nothing to do */
+ }
+}
+
+/*
* Called after writing the file and setting b_changed to FALSE.
* Now an undo means that the buffer is modified.
*/