svn commit: r337419 - head/usr.bin/sed
Alan Somers
asomers at freebsd.org
Thu Aug 16 15:30:11 UTC 2018
On Tue, Aug 7, 2018 at 8:47 AM, Pedro F. Giffuni <pfg at freebsd.org> wrote:
> Author: pfg
> Date: Tue Aug 7 14:47:39 2018
> New Revision: 337419
> URL: https://svnweb.freebsd.org/changeset/base/337419
>
> Log:
> sed(1): partial fix for the case of the regex delimited with '['.
>
> We don't generally support the weird case of regular expresions delimited
> by an opening square bracket ('[') but POSIX says that inside
> bracket expressions, escaping is not possible and both '[' and '\'
> represent themselves.
>
> PR: 230198 (exp-run)
> Obtained from: OpenBSD
>
> Modified:
> head/usr.bin/sed/compile.c
>
> Modified: head/usr.bin/sed/compile.c
> ============================================================
> ==================
> --- head/usr.bin/sed/compile.c Tue Aug 7 14:39:00 2018 (r337418)
> +++ head/usr.bin/sed/compile.c Tue Aug 7 14:47:39 2018 (r337419)
> @@ -393,11 +393,11 @@ compile_delimited(char *p, char *d, int is_tr)
> if ((d = compile_ccl(&p, d)) == NULL)
> errx(1, "%lu: %s: unbalanced brackets
> ([])", linenum, fname);
> continue;
> + } else if (*p == '\\' && p[1] == c) {
> + p++;
> } else if (*p == '\\' && p[1] == '[') {
> *d++ = *p++;
> - } else if (*p == '\\' && p[1] == c)
> - p++;
> - else if (*p == '\\' && p[1] == 'n') {
> + } else if (*p == '\\' && p[1] == 'n') {
> *d++ = '\n';
> p += 2;
> continue;
>
>
This change seems to have caused a regression in multi_test.sh.
https://ci.freebsd.org/job/FreeBSD-head-amd64-test/8630/testReport/usr.bin.sed/multi_test/main/
More information about the svn-src-all
mailing list