summaryrefslogtreecommitdiffstats
path: root/src/ex_docmd.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2006-03-14 22:53:34 +0000
committerBram Moolenaar <Bram@vim.org>2006-03-14 22:53:34 +0000
commitc7d893589ea0829a930516a3b5ea544a6baf3984 (patch)
treee73e4b7783ecff5e565ab247523ec22109b702e9 /src/ex_docmd.c
parentaf48b0924f7abdf4d79ab5a79d90550fa14f9e21 (diff)
updated for version 7.0224
Diffstat (limited to 'src/ex_docmd.c')
-rw-r--r--src/ex_docmd.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/ex_docmd.c b/src/ex_docmd.c
index f1c6bb1e04..3ba0d37ef5 100644
--- 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