svn commit: r317274 - in head/contrib/bmake: . unit-tests

Simon J. Gerraty sjg at FreeBSD.org
Fri Apr 21 22:19:15 UTC 2017


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]}


More information about the svn-src-all mailing list