Author: sjg
Date: Fri Apr 21 22:19:13 2017
New Revision: 317274
URL: https://svnweb.freebsd.org/changeset/base/317274

Log:
  Str_Match: fix closure tests for [^] and add unit-test.

Modified:
  head/contrib/bmake/str.c
  head/contrib/bmake/unit-tests/modmatch.exp
  head/contrib/bmake/unit-tests/modmatch.mk

Modified: head/contrib/bmake/str.c
==============================================================================
--- head/contrib/bmake/str.c    Fri Apr 21 22:00:22 2017        (r317273)
+++ head/contrib/bmake/str.c    Fri Apr 21 22:19:13 2017        (r317274)
@@ -382,8 +382,11 @@ Str_Match(const char *string, const char
                        } else
                                nomatch = 0;
                        for (;;) {
-                               if ((*pattern == ']') || (*pattern == 0))
-                                       return(nomatch);
+                               if ((*pattern == ']') || (*pattern == 0)) {
+                                       if (nomatch)
+                                               break;
+                                       return(0);
+                               }
                                if (*pattern == *string)
                                        break;
                                if (pattern[1] == '-') {
@@ -400,7 +403,7 @@ Str_Match(const char *string, const char
                                }
                                ++pattern;
                        }
-                       if (nomatch)
+                       if (nomatch && (*pattern != ']') && (*pattern != 0))
                                return 0;
                        while ((*pattern != ']') && (*pattern != 0))
                                ++pattern;

Modified: head/contrib/bmake/unit-tests/modmatch.exp
==============================================================================
--- head/contrib/bmake/unit-tests/modmatch.exp  Fri Apr 21 22:00:22 2017        
(r317273)
+++ head/contrib/bmake/unit-tests/modmatch.exp  Fri Apr 21 22:19:13 2017        
(r317274)
@@ -16,4 +16,5 @@ LIB=e X_LIBS:M*/lib${LIB}.a:tu is "/TMP/
 Mscanner=OK
 Upper=One Two Three Four
 Lower=five six seven
+nose=One Three five
 exit status 0

Modified: head/contrib/bmake/unit-tests/modmatch.mk
==============================================================================
--- head/contrib/bmake/unit-tests/modmatch.mk   Fri Apr 21 22:00:22 2017        
(r317273)
+++ head/contrib/bmake/unit-tests/modmatch.mk   Fri Apr 21 22:19:13 2017        
(r317274)
@@ -31,3 +31,4 @@ LIST= One Two Three Four five six seven
 check-cclass:
        @echo Upper=${LIST:M[A-Z]*}
        @echo Lower=${LIST:M[^A-Z]*}
+       @echo nose=${LIST:M[^s]*[ex]}
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to