On 8/16/2018 10:30 AM, Alan Somers wrote:
On Tue, Aug 7, 2018 at 8:47 AM, Pedro F. Giffuni <[email protected] <mailto:[email protected]>> wrote:

    Author: pfg
    Date: Tue Aug  7 14:47:39 2018
    New Revision: 337419
    URL: https://svnweb.freebsd.org/changeset/base/337419
    <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/

____

Seeding /usr/tests/usr.bin/sed/regress.multitest.out/2.23 with current result
sed: 1: "s[\[.[X[
": RE error: brackets ([ ]) not balanced
sed: 1: "s[\[.[X\[[
": RE error: brackets ([ ]) not balanced

____

Thanks for the report. The change is correct but incomplete, we also have to fix the first bug reported here:

http://undeadly.org/cgi?action=article;sid=20180728110010

I honestly don't have time for this so I'll revert the bug for the second fix for now.

Pedro.



_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to