commit 0cd385d16413e631222cdd73d141d4cb72b854a1
parent 13e0b6c60596cbcbc83fc99a330044d310878f69
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date: Mon, 14 Dec 2015 15:38:46 +0100
Restore state of buffer in errors
When a error occurs it is important to remove all the modifications
done by the offending command and restore the value of dot to the
state before of executing the command.
Diffstat:
1 file changed, 6 insertions(+), 0 deletions(-)
diff --git a/ed.c b/ed.c
@@ -62,6 +62,9 @@ static char *lastmatch;
static struct undo udata;
static int newcmd;
+
+static void undo(void);
+
static void
error(char *msg)
{
@@ -80,6 +83,9 @@ error(char *msg)
/* nothing */;
}
+ if (!newcmd)
+ undo();
+ curln = ocurln;
longjmp(savesp, 1);
}