sbase

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

commit 890f6c2c050149e63efe5b385b104c8383342973
parent aacfa18b79f459b8419f424079d50fc5bc263791
Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
Date:   Mon, 27 Nov 2023 09:21:45 +0100

ed: Improve execsh

Diffstat:
Med.c | 12++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/ed.c b/ed.c @@ -1067,13 +1067,21 @@ execsh(void) } while ((c = input()) != '\0') { - if (c == '%' && (cmd.siz == 0 || cmd.str[cmd.siz - 1] != '\\')) { + switch (c) { + case '%': if (savfname[0] == '\0') error("no current filename"); repl = 1; for (p = savfname; *p; ++p) addchar(*p, &cmd); - } else { + break; + case '\\': + c = input(); + if (c != '%') { + back(c); + c = '\\'; + } + default: addchar(c, &cmd); } }