mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-05 09:14:03 +00:00
Fix from Keith Bostic <bostic@bsdi.com> for bug in sed dealing with
continuation lines. Submitted by: Keith Bostic via Kirk McKusick
This commit is contained in:
parent
0bff613275
commit
796d43185d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=16510
@ -615,7 +615,7 @@ compile_tr(p, transtab)
|
|||||||
static char *
|
static char *
|
||||||
compile_text()
|
compile_text()
|
||||||
{
|
{
|
||||||
int asize, size;
|
int asize, esc_nl, size;
|
||||||
char *text, *p, *op, *s;
|
char *text, *p, *op, *s;
|
||||||
char lbuf[_POSIX2_LINE_MAX + 1];
|
char lbuf[_POSIX2_LINE_MAX + 1];
|
||||||
|
|
||||||
@ -626,13 +626,15 @@ compile_text()
|
|||||||
op = s = text + size;
|
op = s = text + size;
|
||||||
p = lbuf;
|
p = lbuf;
|
||||||
EATSPACE();
|
EATSPACE();
|
||||||
for (; *p; p++) {
|
for (esc_nl = 0; *p != '\0'; p++) {
|
||||||
if (*p == '\\')
|
if (*p == '\\' && *p++ == '\0') {
|
||||||
p++;
|
esc_nl = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
*s++ = *p;
|
*s++ = *p;
|
||||||
}
|
}
|
||||||
size += s - op;
|
size += s - op;
|
||||||
if (p[-2] != '\\') {
|
if (!esc_nl) {
|
||||||
*s = '\0';
|
*s = '\0';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user