Mercurial > vim
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: