sh: Allow quoting ^ and ] in bracket expressions.
authorPeter Avalos <pavalos@dragonflybsd.org>
Sun, 5 Feb 2012 19:23:10 +0000 (11:23 -0800)
committerPeter Avalos <pavalos@dragonflybsd.org>
Sun, 5 Feb 2012 20:48:06 +0000 (12:48 -0800)
Obtained-from:  FreeBSD 228943

bin/sh/mksyntax.c
tools/regression/bin/sh/builtins/case13.0 [new file with mode: 0644]

index 59c3b07..84f8a37 100644 (file)
@@ -35,7 +35,7 @@
  *
  * @(#) Copyright (c) 1991, 1993 The Regents of the University of California.  All rights reserved.
  * @(#)mksyntax.c      8.2 (Berkeley) 5/4/95
- * $FreeBSD: src/bin/sh/mksyntax.c,v 1.35 2011/05/05 20:55:55 jilles Exp $
+ * $FreeBSD: src/bin/sh/mksyntax.c,v 1.36 2011/12/28 23:51:17 jilles Exp $
  */
 
 /*
@@ -213,16 +213,16 @@ main(int argc __unused, char **argv __unused)
        add("`", "CBQUOTE");
        add("$", "CVAR");
        add("}", "CENDVAR");
-       /* ':/' for tilde expansion, '-' for [a\-x] pattern ranges */
-       add("!*?[=~:/-", "CCTL");
+       /* ':/' for tilde expansion, '-^]' for [a\-x] pattern ranges */
+       add("!*?[]=~:/-^", "CCTL");
        print("dqsyntax");
        init();
        fputs("\n/* syntax table used when in single quotes */\n", cfile);
        add("\n", "CNL");
        add("\\", "CSBACK");
        add("'", "CENDQUOTE");
-       /* ':/' for tilde expansion, '-' for [a\-x] pattern ranges */
-       add("!*?[=~:/-", "CCTL");
+       /* ':/' for tilde expansion, '-^]' for [a\-x] pattern ranges */
+       add("!*?[]=~:/-^", "CCTL");
        print("sqsyntax");
        init();
        fputs("\n/* syntax table used when in arithmetic */\n", cfile);
diff --git a/tools/regression/bin/sh/builtins/case13.0 b/tools/regression/bin/sh/builtins/case13.0
new file mode 100644 (file)
index 0000000..d1027b8
--- /dev/null
@@ -0,0 +1,12 @@
+# $FreeBSD: src/tools/regression/bin/sh/builtins/case13.0,v 1.1 2011/12/28 23:51:17 jilles Exp $
+
+case ^ in
+[\^^]) ;;
+*) echo Failed at $LINENO ;;
+esac
+
+case s in
+[\^^]) echo Failed at $LINENO ;;
+[s\]]) ;;
+*) echo Failed at $LINENO ;;
+esac