svn commit: r337419 - head/usr.bin/sed

Pedro F. Giffuni pfg at FreeBSD.org
Tue Aug 7 14:47:40 UTC 2018


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;


More information about the svn-src-head mailing list