Module Name:    src
Committed By:   rillig
Date:           Sat Dec 19 20:16:36 UTC 2020

Modified Files:
        src/usr.bin/make: nonints.h parse.c var.c

Log Message:
make(1): extract Var_Undef from ParseDirective


To generate a diff of this commit:
cvs rdiff -u -r1.173 -r1.174 src/usr.bin/make/nonints.h
cvs rdiff -u -r1.501 -r1.502 src/usr.bin/make/parse.c
cvs rdiff -u -r1.734 -r1.735 src/usr.bin/make/var.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/nonints.h
diff -u src/usr.bin/make/nonints.h:1.173 src/usr.bin/make/nonints.h:1.174
--- src/usr.bin/make/nonints.h:1.173	Fri Dec 18 14:36:46 2020
+++ src/usr.bin/make/nonints.h	Sat Dec 19 20:16:36 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: nonints.h,v 1.173 2020/12/18 14:36:46 rillig Exp $	*/
+/*	$NetBSD: nonints.h,v 1.174 2020/12/19 20:16:36 rillig Exp $	*/
 
 /*-
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -343,6 +343,7 @@ typedef enum VarExportMode {
 } VarExportMode;
 
 void Var_Delete(const char *, GNode *);
+void Var_Undef(char *);
 void Var_Set(const char *, const char *, GNode *);
 void Var_SetWithFlags(const char *, const char *, GNode *, VarSetFlags);
 void Var_Append(const char *, const char *, GNode *);

Index: src/usr.bin/make/parse.c
diff -u src/usr.bin/make/parse.c:1.501 src/usr.bin/make/parse.c:1.502
--- src/usr.bin/make/parse.c:1.501	Sat Dec 19 17:54:29 2020
+++ src/usr.bin/make/parse.c	Sat Dec 19 20:16:36 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: parse.c,v 1.501 2020/12/19 17:54:29 rillig Exp $	*/
+/*	$NetBSD: parse.c,v 1.502 2020/12/19 20:16:36 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -117,7 +117,7 @@
 #include "pathnames.h"
 
 /*	"@(#)parse.c	8.3 (Berkeley) 3/19/94"	*/
-MAKE_RCSID("$NetBSD: parse.c,v 1.501 2020/12/19 17:54:29 rillig Exp $");
+MAKE_RCSID("$NetBSD: parse.c,v 1.502 2020/12/19 20:16:36 rillig Exp $");
 
 /* types and constants */
 
@@ -3052,12 +3052,7 @@ ParseDirective(char *line)
 	arg = cp;
 
 	if (IsDirective(dir, dirlen, "undef")) {
-		for (; !ch_isspace(*cp) && *cp != '\0'; cp++)
-			continue;
-		*cp = '\0';
-		Var_Delete(arg, VAR_GLOBAL);
-		/* TODO: undefine all variables, not only the first */
-		/* TODO: use Str_Words, like everywhere else */
+		Var_Undef(cp);
 		return TRUE;
 	} else if (IsDirective(dir, dirlen, "export")) {
 		Var_Export(VEM_PARENT, arg);

Index: src/usr.bin/make/var.c
diff -u src/usr.bin/make/var.c:1.734 src/usr.bin/make/var.c:1.735
--- src/usr.bin/make/var.c:1.734	Sun Dec 13 21:27:45 2020
+++ src/usr.bin/make/var.c	Sat Dec 19 20:16:36 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.734 2020/12/13 21:27:45 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.735 2020/12/19 20:16:36 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -131,7 +131,7 @@
 #include "metachar.h"
 
 /*	"@(#)var.c	8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.734 2020/12/13 21:27:45 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.735 2020/12/19 20:16:36 rillig Exp $");
 
 /* A string that may need to be freed after use. */
 typedef struct FStr {
@@ -519,6 +519,20 @@ Var_Delete(const char *name, GNode *ctxt
 	}
 }
 
+void
+Var_Undef(char *arg)
+{
+	char *cp = arg;
+
+	for (; !ch_isspace(*cp) && *cp != '\0'; cp++)
+		continue;
+	*cp = '\0';
+
+	Var_Delete(arg, VAR_GLOBAL);
+	/* TODO: undefine all variables, not only the first */
+	/* TODO: use Str_Words, like everywhere else */
+}
+
 static Boolean
 MayExport(const char *name)
 {

Reply via email to