sed: remove now-redundant backslash-newline handling

4b0bb9e0fd added this code in 2007,
then in a2215b98f7 more general fix
was added.

function                                             old     new   delta
add_cmd_block                                         98      58     -40

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2013-07-08 02:04:44 +02:00
parent e93d15613e
commit 40ab27a225

View File

@ -1377,7 +1377,7 @@ static void process_files(void)
/* It is possible to have a command line argument with embedded
* newlines. This counts as multiple command lines.
* However, newline can be escaped: 's/e/z\<newline>z/'
* We check for this.
* add_cmd() handles this.
*/
static void add_cmd_block(char *cmdstr)
@ -1387,22 +1387,8 @@ static void add_cmd_block(char *cmdstr)
cmdstr = sv = xstrdup(cmdstr);
do {
eol = strchr(cmdstr, '\n');
next:
if (eol) {
/* Count preceding slashes */
int slashes = 0;
char *sl = eol;
while (sl != cmdstr && *--sl == '\\')
slashes++;
/* Odd number of preceding slashes - newline is escaped */
if (slashes & 1) {
overlapping_strcpy(eol - 1, eol);
eol = strchr(eol, '\n');
goto next;
}
if (eol)
*eol = '\0';
}
add_cmd(cmdstr);
cmdstr = eol + 1;
} while (eol);