sbase

suckless unix tools
git clone git://git.suckless.org/sbase
Log | Files | Refs | README | LICENSE

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:
Med.c | 6++++++
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); }