commit 890f6c2c050149e63efe5b385b104c8383342973 Author: Roberto E. Vargas Caballero <k...@shike2.com> AuthorDate: Mon Nov 27 09:21:45 2023 +0100 Commit: k0ga <Roberto E. Vargas Caballero k...@shike2.com> CommitDate: Thu Dec 28 17:02:44 2023 +0100
ed: Improve execsh diff --git a/ed.c b/ed.c index a5eea16..a8bc7d5 100644 --- 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); } }