changeset 756:f0edbe50b896

updated for version 7.0224
author vimboss
date Tue, 14 Mar 2006 22:53:34 +0000
parents d01e3133478f
children 8b0484fd9119
files src/ex_docmd.c src/normal.c
diffstat 2 files changed, 33 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ex_docmd.c
+++ b/src/ex_docmd.c
@@ -301,6 +301,7 @@ static void	ex_at __ARGS((exarg_T *eap))
 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 @@ ex_redo(eap)
 }
 
 /*
+ * ":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
--- a/src/normal.c
+++ b/src/normal.c
@@ -8009,7 +8009,7 @@ nv_g_cmd(cap)
     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: