diff src/ex_docmd.c @ 756:f0edbe50b896

updated for version 7.0224
author vimboss
date Tue, 14 Mar 2006 22:53:34 +0000
parents 59971e227f8c
children c0f1b710ce07
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