Module Name:    src
Committed By:   rillig
Date:           Fri May 13 20:37:01 UTC 2022

Modified Files:
        src/usr.bin/make: str.c

Log Message:
make: clean up low-level comments, eliminate common subexpression

No functional change.


To generate a diff of this commit:
cvs rdiff -u -r1.89 -r1.90 src/usr.bin/make/str.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/usr.bin/make/str.c
diff -u src/usr.bin/make/str.c:1.89 src/usr.bin/make/str.c:1.90
--- src/usr.bin/make/str.c:1.89	Thu Mar  3 19:50:01 2022
+++ src/usr.bin/make/str.c	Fri May 13 20:37:01 2022
@@ -1,4 +1,4 @@
-/*	$NetBSD: str.c,v 1.89 2022/03/03 19:50:01 rillig Exp $	*/
+/*	$NetBSD: str.c,v 1.90 2022/05/13 20:37:01 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -71,7 +71,7 @@
 #include "make.h"
 
 /*	"@(#)str.c	5.8 (Berkeley) 6/1/90"	*/
-MAKE_RCSID("$NetBSD: str.c,v 1.89 2022/03/03 19:50:01 rillig Exp $");
+MAKE_RCSID("$NetBSD: str.c,v 1.90 2022/05/13 20:37:01 rillig Exp $");
 
 
 static HashTable interned_strings;
@@ -302,34 +302,25 @@ bool
 Str_Match(const char *str, const char *pat)
 {
 	for (;;) {
-		/*
-		 * See if we're at the end of both the pattern and the
-		 * string. If so, we succeeded.  If we're at the end of the
-		 * pattern but not at the end of the string, we failed.
-		 */
 		if (*pat == '\0')
 			return *str == '\0';
-		if (*str == '\0' && *pat != '*')
-			return false;
 
-		/*
-		 * A '*' in the pattern matches any substring.  We handle this
-		 * by calling ourselves for each suffix of the string.
-		 */
+		/* A '*' in the pattern matches any substring. */
 		if (*pat == '*') {
 			pat++;
 			while (*pat == '*')
 				pat++;
 			if (*pat == '\0')
 				return true;
-			while (*str != '\0') {
+			for (; *str != '\0'; str++)
 				if (Str_Match(str, pat))
 					return true;
-				str++;
-			}
 			return false;
 		}
 
+		if (*str == '\0')
+			return false;
+
 		/* A '?' in the pattern matches any single character. */
 		if (*pat == '?')
 			goto thisCharOK;

Reply via email to