Module Name: src
Committed By: rillig
Date: Sat May 14 12:25:16 UTC 2022
Modified Files:
src/usr.bin/make: var.c
Log Message:
make: clean up comments in Var_Parse
To generate a diff of this commit:
cvs rdiff -u -r1.1020 -r1.1021 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/var.c
diff -u src/usr.bin/make/var.c:1.1020 src/usr.bin/make/var.c:1.1021
--- src/usr.bin/make/var.c:1.1020 Mon May 9 21:24:42 2022
+++ src/usr.bin/make/var.c Sat May 14 12:25:16 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: var.c,v 1.1020 2022/05/09 21:24:42 rillig Exp $ */
+/* $NetBSD: var.c,v 1.1021 2022/05/14 12:25:16 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -139,7 +139,7 @@
#include "metachar.h"
/* "@(#)var.c 8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.1020 2022/05/09 21:24:42 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.1021 2022/05/14 12:25:16 rillig Exp $");
/*
* Variables are defined using one of the VAR=value assignments. Their
@@ -4444,9 +4444,8 @@ Var_Parse_FastLane(const char **pp, VarE
*
* Input:
* *pp The string to parse.
- * In CondParser_FuncCallEmpty, it may also point to the
- * "y" of "empty(VARNAME:Modifiers)", which is
- * syntactically the same.
+ * When called from CondParser_FuncCallEmpty, it can
+ * also point to the "y" of "empty(VARNAME:Modifiers)".
* scope The scope for finding variables
* emode Controls the exact details of parsing and evaluation
*
@@ -4477,16 +4476,14 @@ Var_Parse(const char **pp, GNode *scope,
{
const char *p = *pp;
const char *const start = p;
- /* true if have modifiers for the variable. */
- bool haveModifier;
- /* Starting character if variable in parens or braces. */
- char startc;
- /* Ending character if variable in parens or braces. */
- char endc;
+ bool haveModifier; /* true for ${VAR:...}, false for ${VAR} */
+ char startc; /* the actual '{' or '(' or '\0' */
+ char endc; /* the expected '}' or ')' or '\0' */
/*
- * true if the variable is local and we're expanding it in a
- * non-local scope. This is done to support dynamic sources.
- * The result is just the expression, unaltered.
+ * true if the expression is based on one of the 7 predefined
+ * variables that are local to a target, and the expression is
+ * expanded in a non-local scope. The result is the text of the
+ * expression, unaltered. This is needed to support dynamic sources.
*/
bool dynamic;
const char *extramodifiers;
@@ -4503,11 +4500,7 @@ Var_Parse(const char **pp, GNode *scope,
extramodifiers = NULL; /* extra modifiers to apply first */
dynamic = false;
- /*
- * Appease GCC, which thinks that the variable might not be
- * initialized.
- */
- endc = '\0';
+ endc = '\0'; /* Appease GCC. */
startc = p[1];
if (startc != '(' && startc != '{') {
@@ -4540,7 +4533,9 @@ Var_Parse(const char **pp, GNode *scope,
* XXX: This assignment creates an alias to the current value of the
* variable. This means that as long as the value of the expression
* stays the same, the value of the variable must not change.
- * Using the '::=' modifier, it could be possible to do exactly this.
+ * Using the '::=' modifier, it could be possible to trigger exactly
+ * this situation.
+ *
* At the bottom of this function, the resulting value is compared to
* the then-current value of the variable. This might also invoke
* undefined behavior.