Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Apr 2017 22:19:14 +0000 (UTC)
From:      "Simon J. Gerraty" <sjg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r317274 - in head/contrib/bmake: . unit-tests
Message-ID:  <201704212219.v3LMJEYt029093@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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]}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201704212219.v3LMJEYt029093>