From c7d893589ea0829a930516a3b5ea544a6baf3984 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Tue, 14 Mar 2006 22:53:34 +0000 Subject: [PATCH] updated for version 7.0224 --- src/ex_docmd.c | 32 ++++++++++++++++++++++++++++++++ src/normal.c | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/ex_docmd.c b/src/ex_docmd.c index f1c6bb1e0..3ba0d37ef 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)); @@ -8209,6 +8210,37 @@ ex_redo(eap) u_redo(1); } +/* + * ":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. */ diff --git a/src/normal.c b/src/normal.c index beb3cc3ff..cf82d681b 100644 --- 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: -- 2.50.1