sed: remove now-redundant backslash-newline handling
4b0bb9e0fd
added this code in 2007, then ina2215b98f7
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:
parent
e93d15613e
commit
40ab27a225
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user