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;
_______________________________________________
[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