diff --git a/commands.c b/commands.c index d575b0c3..67e59b46 100644 --- a/commands.c +++ b/commands.c @@ -203,27 +203,14 @@ chop_commands (cmds) nlines = 5; lines = (char **) xmalloc (5 * sizeof (char *)); - idx = 0; - p = cmds->commands; + idx = strlen (cmds->commands) + 1; + p = (char *) alloca (idx); + bcopy (cmds->commands, p, idx); while (*p != '\0') { - char *end = p; - find_end:; - end = index (end, '\n'); + char *end = find_char_unquote (p, '\n', 0); 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) {