updated for version 7.0224
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index f1c6bb1..3ba0d37 100644
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -301,6 +301,7 @@
static void ex_bang __ARGS((exarg_T *eap));
static void ex_undo __ARGS((exarg_T *eap));
static void ex_redo __ARGS((exarg_T *eap));
+static void ex_later __ARGS((exarg_T *eap));
static void ex_redir __ARGS((exarg_T *eap));
static void ex_redraw __ARGS((exarg_T *eap));
static void ex_redrawstatus __ARGS((exarg_T *eap));
@@ -8210,6 +8211,37 @@
}
/*
+ * ":earlier" and ":later".
+ */
+/*ARGSUSED*/
+ static void
+ex_later(eap)
+ exarg_T *eap;
+{
+ long count = 0;
+ int sec = FALSE;
+ char_u *p = eap->arg;
+
+ if (*p == NUL)
+ count = 1;
+ else if (isdigit(*p))
+ {
+ count = getdigits(&p);
+ switch (*p)
+ {
+ case 's': ++p; sec = TRUE; break;
+ case 'm': ++p; sec = TRUE; count *= 60; break;
+ case 'h': ++p; sec = TRUE; count *= 60 * 60; break;
+ }
+ }
+
+ if (*p != NUL)
+ EMSG2(_(e_invarg2), eap->arg);
+ else
+ undo_time(eap->cmdidx == CMD_earlier ? -count : count, sec);
+}
+
+/*
* ":redir": start/stop redirection.
*/
static void
diff --git a/src/normal.c b/src/normal.c
index beb3cc3..cf82d68 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -8009,7 +8009,7 @@
case '+':
case '-': /* "g+" and "g-": undo or redo along the timeline */
if (!checkclearopq(oap))
- undo_time((int)(cap->nchar == '-' ? -cap->count1 : cap->count1));
+ undo_time(cap->nchar == '-' ? -cap->count1 : cap->count1, FALSE);
break;
default: