diff options
author | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-05-22 11:37:15 +0000 |
---|---|---|
committer | Theo de Raadt <deraadt@cvs.openbsd.org> | 1996-05-22 11:37:15 +0000 |
commit | 0157a77a51c5e35e093ae03581f66dea010edcc8 (patch) | |
tree | 5e8bd32aa4d2b5ed37b7cf3ad26e8bdfc7f20a04 /usr.bin/vi/ex/ex_undo.c | |
parent | 806021be093ad00ce2022a532c0f4cc99b0065ac (diff) |
new vi
Diffstat (limited to 'usr.bin/vi/ex/ex_undo.c')
-rw-r--r-- | usr.bin/vi/ex/ex_undo.c | 60 |
1 files changed, 17 insertions, 43 deletions
diff --git a/usr.bin/vi/ex/ex_undo.c b/usr.bin/vi/ex/ex_undo.c index 1b8ba691682..0b0b5b26be1 100644 --- a/usr.bin/vi/ex/ex_undo.c +++ b/usr.bin/vi/ex/ex_undo.c @@ -1,67 +1,40 @@ /*- * Copyright (c) 1992, 1993, 1994 * The Regents of the University of California. All rights reserved. + * Copyright (c) 1992, 1993, 1994, 1995, 1996 + * Keith Bostic. All rights reserved. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. + * See the LICENSE file for redistribution information. */ +#include "config.h" + #ifndef lint -static char sccsid[] = "@(#)ex_undo.c 8.9 (Berkeley) 8/17/94"; +static const char sccsid[] = "@(#)ex_undo.c 10.6 (Berkeley) 3/6/96"; #endif /* not lint */ #include <sys/types.h> #include <sys/queue.h> -#include <sys/time.h> #include <bitstring.h> #include <limits.h> -#include <signal.h> #include <stdio.h> -#include <termios.h> - -#include "compat.h" -#include <db.h> -#include <regex.h> +#include <stdlib.h> -#include "vi.h" -#include "excmd.h" +#include "../common/common.h" /* * ex_undo -- u * Undo the last change. + * + * PUBLIC: int ex_undo __P((SCR *, EXCMD *)); */ int -ex_undo(sp, ep, cmdp) +ex_undo(sp, cmdp) SCR *sp; - EXF *ep; - EXCMDARG *cmdp; + EXCMD *cmdp; { + EXF *ep; MARK m; /* @@ -70,7 +43,7 @@ ex_undo(sp, ep, cmdp) */ m.lno = sp->lno; m.cno = sp->cno; - if (mark_set(sp, ep, ABSMARK1, &m, 1)) + if (mark_set(sp, ABSMARK1, &m, 1)) return (1); /* @@ -79,18 +52,19 @@ ex_undo(sp, ep, cmdp) * Whether 'u' is undo or redo is toggled each time, unless there * was a change since the last undo, in which case it's an undo. */ + ep = sp->ep; if (!F_ISSET(ep, F_UNDO)) { F_SET(ep, F_UNDO); ep->lundo = FORWARD; } switch (ep->lundo) { case BACKWARD: - if (log_forward(sp, ep, &m)) + if (log_forward(sp, &m)) return (1); ep->lundo = FORWARD; break; case FORWARD: - if (log_backward(sp, ep, &m)) + if (log_backward(sp, &m)) return (1); ep->lundo = BACKWARD; break; |