libregex: fix sed regression (thans spew)

I introduced a regression in sed that currently has screwed up
/sys/lib/man/secindex.

The issue is that sed 's/$/ foo/g' will actually replace the newline
character with foo instead of just appending at the end of the line.
This only makes a difference when sed is operating on a multiple line
record. The effect is a record like:

foo
bar
baz

becomes:

foo foobar foo baz foo

instead of

foo foo
bar foo
baz foo
This commit is contained in:
cinap_lenrek 2016-05-01 03:03:12 +02:00
parent 77d23bae0f
commit e880549da6
2 changed files with 2 additions and 8 deletions

View file

@ -69,7 +69,6 @@ Again:
if(r != curinst->r) if(r != curinst->r)
goto Done; goto Done;
case OANY: /* fallthrough */ case OANY: /* fallthrough */
Any:
next = t->next; next = t->next;
t->pc = curinst + 1; t->pc = curinst + 1;
t->next = nil; t->next = nil;
@ -111,12 +110,10 @@ Again:
} }
goto Done; goto Done;
case OEOL: case OEOL:
if(r == L'\0' && ep == nil) { if(r == L'\n' || r == L'\0' && ep == nil) {
curinst++; curinst++;
goto Again; goto Again;
} }
if(r == L'\n')
goto Any;
goto Done; goto Done;
case OJMP: case OJMP:
curinst = curinst->a; curinst = curinst->a;

View file

@ -68,7 +68,6 @@ Again:
if(*rsp != curinst->r) if(*rsp != curinst->r)
goto Done; goto Done;
case OANY: /* fallthrough */ case OANY: /* fallthrough */
Any:
next = t->next; next = t->next;
t->pc = curinst + 1; t->pc = curinst + 1;
t->next = nil; t->next = nil;
@ -110,12 +109,10 @@ Again:
} }
goto Done; goto Done;
case OEOL: case OEOL:
if(*rsp == L'\0' && rep == nil) { if(*rsp == '\n' || *rsp == L'\0' && rep == nil) {
curinst++; curinst++;
goto Again; goto Again;
} }
if(*rsp == '\n')
goto Any;
goto Done; goto Done;
case OJMP: case OJMP:
curinst = curinst->a; curinst = curinst->a;