From ac336f7a9c2bfa7dbfcbb358b44d2b867395370b Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Thu, 21 Apr 1994 22:14:01 +0000 Subject: Undo last change; reverted to revision 1.22. --- commands.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/commands.c b/commands.c index 7544e51..d575b0c 100644 --- a/commands.c +++ b/commands.c @@ -203,15 +203,27 @@ chop_commands (cmds) nlines = 5; lines = (char **) xmalloc (5 * sizeof (char *)); - idx = strlen (cmds->commands) + 1; - p = (char *) alloca (idx); - bcopy (cmds->commands, p, idx); idx = 0; + p = cmds->commands; while (*p != '\0') { - char *end = find_char_unquote (p, '\n', 0); + char *end = p; + find_end:; + end = index (end, '\n'); if (end == 0) end = p + strlen (p); + else if (end > p && end[-1] == '\\') + { + int backslash = 1; + register char *b; + for (b = end - 2; b >= p && *b == '\\'; --b) + backslash = !backslash; + if (backslash) + { + ++end; + goto find_end; + } + } if (idx == nlines) { -- cgit v1.2.3