Module Name:    src
Committed By:   rillig
Date:           Sun Jul 19 17:40:30 UTC 2020

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

Log Message:
make(1): rename ApplyModifiersState.flags to eflags

There are just too many variables called "flags" in this file, and their
constants must not accidentally overlap.


To generate a diff of this commit:
cvs rdiff -u -r1.267 -r1.268 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.267 src/usr.bin/make/var.c:1.268
--- src/usr.bin/make/var.c:1.267	Sun Jul 19 16:48:48 2020
+++ src/usr.bin/make/var.c	Sun Jul 19 17:40:30 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.267 2020/07/19 16:48:48 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.268 2020/07/19 17:40:30 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
  */
 
 #ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: var.c,v 1.267 2020/07/19 16:48:48 rillig Exp $";
+static char rcsid[] = "$NetBSD: var.c,v 1.268 2020/07/19 17:40:30 rillig Exp $";
 #else
 #include <sys/cdefs.h>
 #ifndef lint
 #if 0
 static char sccsid[] = "@(#)var.c	8.3 (Berkeley) 3/19/94";
 #else
-__RCSID("$NetBSD: var.c,v 1.267 2020/07/19 16:48:48 rillig Exp $");
+__RCSID("$NetBSD: var.c,v 1.268 2020/07/19 17:40:30 rillig Exp $");
 #endif
 #endif /* not lint */
 #endif
@@ -2274,7 +2274,7 @@ typedef struct {
     int endc;
     Var *v;
     GNode *ctxt;
-    int flags;
+    VarEvalFlags eflags;
     int *lengthPtr;
     void **freePtr;
 
@@ -2310,19 +2310,19 @@ ApplyModifier_At(ApplyModifiersState *st
     st->cp = ++st->tstr;
     st->delim = '@';
     loop.tvar = ParseModifierPart(
-	st->ctxt, &st->cp, st->delim, st->flags, &pflags, NULL, NULL);
+	st->ctxt, &st->cp, st->delim, st->eflags, &pflags, NULL, NULL);
     if (loop.tvar == NULL)
 	return FALSE;
 
     loop.str = ParseModifierPart(
-	st->ctxt, &st->cp, st->delim, st->flags, &pflags, NULL, NULL);
+	st->ctxt, &st->cp, st->delim, st->eflags, &pflags, NULL, NULL);
     if (loop.str == NULL)
 	return FALSE;
 
     st->termc = *st->cp;
     st->delim = '\0';
 
-    loop.eflags = st->flags & (VARE_UNDEFERR | VARE_WANTRES);
+    loop.eflags = st->eflags & (VARE_UNDEFERR | VARE_WANTRES);
     st->newStr = VarModify(
 	st->ctxt, &st->parsestate, st->nstr, VarLoopExpand, &loop);
     Var_Delete(loop.tvar, st->ctxt);
@@ -2336,19 +2336,19 @@ static void
 ApplyModifier_Defined(ApplyModifiersState *st)
 {
     Buffer buf;			/* Buffer for patterns */
-    int nflags;
+    VarEvalFlags neflags;
 
-    if (st->flags & VARE_WANTRES) {
-	int wantres;
+    if (st->eflags & VARE_WANTRES) {
+	Boolean wantres;
 	if (*st->tstr == 'U')
 	    wantres = ((st->v->flags & VAR_JUNK) != 0);
 	else
 	    wantres = ((st->v->flags & VAR_JUNK) == 0);
-	nflags = st->flags & ~VARE_WANTRES;
+	neflags = st->eflags & ~VARE_WANTRES;
 	if (wantres)
-	    nflags |= VARE_WANTRES;
+	    neflags |= VARE_WANTRES;
     } else
-	nflags = st->flags;
+	neflags = st->eflags;
 
     /*
      * Pass through tstr looking for 1) escaped delimiters,
@@ -2375,7 +2375,7 @@ ApplyModifier_Defined(ApplyModifiersStat
 	    int	    len;
 	    void    *freeIt;
 
-	    cp2 = Var_Parse(st->cp, st->ctxt, nflags, &len, &freeIt);
+	    cp2 = Var_Parse(st->cp, st->ctxt, neflags, &len, &freeIt);
 	    Buf_AddBytes(&buf, strlen(cp2), cp2);
 	    free(freeIt);
 	    st->cp += len - 1;
@@ -2388,7 +2388,7 @@ ApplyModifier_Defined(ApplyModifiersStat
 
     if (st->v->flags & VAR_JUNK)
 	st->v->flags |= VAR_KEEP;
-    if (nflags & VARE_WANTRES) {
+    if (neflags & VARE_WANTRES) {
 	st->newStr = Buf_Destroy(&buf, FALSE);
     } else {
 	st->newStr = st->nstr;
@@ -2489,11 +2489,11 @@ ApplyModifier_Exclam(ApplyModifiersState
     emsg = NULL;
     st->cp = ++st->tstr;
     pattern.rhs = ParseModifierPart(
-	st->ctxt, &st->cp, st->delim, st->flags,
+	st->ctxt, &st->cp, st->delim, st->eflags,
 	NULL, &pattern.rightLen, NULL);
     if (pattern.rhs == NULL)
 	return FALSE;
-    if (st->flags & VARE_WANTRES)
+    if (st->eflags & VARE_WANTRES)
 	st->newStr = Cmd_Exec(pattern.rhs, &emsg);
     else
 	st->newStr = varNoError;
@@ -2602,19 +2602,15 @@ ApplyModifier_Match(ApplyModifiersState 
     if (needSubst) {
 	/* pattern contains embedded '$', so use Var_Subst to expand it. */
 	cp2 = pattern;
-	pattern = Var_Subst(NULL, cp2, st->ctxt, st->flags);
+	pattern = Var_Subst(NULL, cp2, st->ctxt, st->eflags);
 	free(cp2);
     }
     if (DEBUG(VAR))
 	fprintf(debug_file, "Pattern[%s] for [%s] is [%s]\n",
 	    st->v->name, st->nstr, pattern);
-    if (*st->tstr == 'M') {
-	st->newStr = VarModify(st->ctxt, &st->parsestate, st->nstr, VarMatch,
-			       pattern);
-    } else {
-	st->newStr = VarModify(st->ctxt, &st->parsestate, st->nstr, VarNoMatch,
-			       pattern);
-    }
+    VarModifyCallback callback = st->tstr[0] == 'M' ? VarMatch : VarNoMatch;
+    st->newStr = VarModify(st->ctxt, &st->parsestate, st->nstr, callback,
+			   pattern);
     free(pattern);
 }
 
@@ -2641,13 +2637,13 @@ ApplyModifier_Subst(ApplyModifiersState 
 
     st->cp = st->tstr;
     pattern.lhs = ParseModifierPart(
-	st->ctxt, &st->cp, st->delim, st->flags,
+	st->ctxt, &st->cp, st->delim, st->eflags,
 	&pattern.pflags, &pattern.leftLen, NULL);
     if (pattern.lhs == NULL)
 	return FALSE;
 
     pattern.rhs = ParseModifierPart(
-	st->ctxt, &st->cp, st->delim, st->flags,
+	st->ctxt, &st->cp, st->delim, st->eflags,
 	NULL, &pattern.rightLen, &pattern);
     if (pattern.rhs == NULL)
 	return FALSE;
@@ -2700,13 +2696,13 @@ ApplyModifier_Regex(ApplyModifiersState 
 
     st->cp = st->tstr;
 
-    re = ParseModifierPart(st->ctxt, &st->cp, st->delim, st->flags,
+    re = ParseModifierPart(st->ctxt, &st->cp, st->delim, st->eflags,
 			   NULL, NULL, NULL);
     if (re == NULL)
 	return FALSE;
 
     pattern.replace = ParseModifierPart(st->ctxt, &st->cp, st->delim,
-					st->flags, NULL, NULL, NULL);
+					st->eflags, NULL, NULL, NULL);
     if (pattern.replace == NULL) {
 	free(re);
 	return FALSE;
@@ -2871,7 +2867,7 @@ ApplyModifier_Words(ApplyModifiersState 
 {
     st->cp = st->tstr + 1;	/* point to char after '[' */
     st->delim = ']';		/* look for closing ']' */
-    char *estr = ParseModifierPart(st->ctxt, &st->cp, st->delim, st->flags,
+    char *estr = ParseModifierPart(st->ctxt, &st->cp, st->delim, st->eflags,
 				   NULL, NULL, NULL);
     if (estr == NULL)
 	return 'c';		/* report missing ']' */
@@ -3021,7 +3017,7 @@ ApplyModifier_IfElse(ApplyModifiersState
     /* FIXME: IfElse has nothing to do with VarPatternFlags */
 
     /* find ':', and then substitute accordingly */
-    if (st->flags & VARE_WANTRES) {
+    if (st->eflags & VARE_WANTRES) {
 	cond_rc = Cond_EvalExpression(NULL, st->v->name, &value, 0, FALSE);
 	then_flags = cond_rc != COND_INVALID && value ? 0 : VAR_NOSUBST;
 	else_flags = cond_rc != COND_INVALID && !value ? 0 : VAR_NOSUBST;
@@ -3034,13 +3030,13 @@ ApplyModifier_IfElse(ApplyModifiersState
     st->cp = ++st->tstr;
     st->delim = ':';
     char *then_expr = ParseModifierPart(
-	st->ctxt, &st->cp, st->delim, st->flags, &then_flags, NULL, NULL);
+	st->ctxt, &st->cp, st->delim, st->eflags, &then_flags, NULL, NULL);
     if (then_expr == NULL)
 	return FALSE;
 
     st->delim = st->endc;	/* BRCLOSE or PRCLOSE */
     char *else_expr = ParseModifierPart(
-	st->ctxt, &st->cp, st->delim, st->flags, &else_flags, NULL, NULL);
+	st->ctxt, &st->cp, st->delim, st->eflags, &else_flags, NULL, NULL);
     if (else_expr == NULL)
 	return FALSE;
 
@@ -3113,9 +3109,9 @@ ApplyModifier_Assign(ApplyModifiersState
 	st->delim = st->startc == PROPEN ? PRCLOSE : BRCLOSE;
 	pattern.pflags = 0;
 
-	pflags = (st->flags & VARE_WANTRES) ? 0 : VAR_NOSUBST;
+	pflags = (st->eflags & VARE_WANTRES) ? 0 : VAR_NOSUBST;
 	pattern.rhs = ParseModifierPart(
-	    st->ctxt, &st->cp, st->delim, st->flags,
+	    st->ctxt, &st->cp, st->delim, st->eflags,
 	    &pflags, &pattern.rightLen, NULL);
 	if (st->v->flags & VAR_JUNK) {
 	    /* restore original name */
@@ -3128,7 +3124,7 @@ ApplyModifier_Assign(ApplyModifiersState
 	st->termc = *--st->cp;
 	st->delim = '\0';
 
-	if (st->flags & VARE_WANTRES) {
+	if (st->eflags & VARE_WANTRES) {
 	    switch (how) {
 	    case '+':
 		Var_Append(st->v->name, pattern.rhs, v_ctxt);
@@ -3226,14 +3222,14 @@ ApplyModifier_SysV(ApplyModifiersState *
      * SysV substitution since that will not be interpreted as an
      * anchor anyway. */
     pattern.lhs = ParseModifierPart(
-	st->ctxt, &st->cp, st->delim, st->flags,
+	st->ctxt, &st->cp, st->delim, st->eflags,
 	&pattern.pflags, &pattern.leftLen, NULL);
     if (pattern.lhs == NULL)
 	return 'c';
 
     st->delim = st->endc;
     pattern.rhs = ParseModifierPart(
-	st->ctxt, &st->cp, st->delim, st->flags,
+	st->ctxt, &st->cp, st->delim, st->eflags,
 	NULL, &pattern.rightLen, &pattern);
     if (pattern.rhs == NULL)
 	return 'c';
@@ -3343,11 +3339,11 @@ ApplyModifier_SysV(ApplyModifiersState *
 static char *
 ApplyModifiers(char *nstr, const char *tstr,
 	       int const startc, int const endc,
-	       Var * const v, GNode * const ctxt, int const flags,
+	       Var * const v, GNode * const ctxt, VarEvalFlags const eflags,
 	       int * const lengthPtr, void ** const freePtr)
 {
     ApplyModifiersState st = {
-	startc, endc, v, ctxt, flags, lengthPtr, freePtr,
+	startc, endc, v, ctxt, eflags, lengthPtr, freePtr,
 	nstr, tstr, tstr, tstr,
 	'\0', '\0', 0, {' ', FALSE}, NULL
     };
@@ -3363,7 +3359,7 @@ ApplyModifiers(char *nstr, const char *t
 	    int rlen;
 	    int c;
 
-	    rval = Var_Parse(st.tstr, st.ctxt, st.flags, &rlen, &freeIt);
+	    rval = Var_Parse(st.tstr, st.ctxt, st.eflags, &rlen, &freeIt);
 
 	    /*
 	     * If we have not parsed up to st.endc or ':',
@@ -3388,9 +3384,9 @@ ApplyModifiers(char *nstr, const char *t
 		int used;
 
 		st.nstr = ApplyModifiers(st.nstr, rval, 0, 0, st.v,
-				      st.ctxt, st.flags, &used, st.freePtr);
+				      st.ctxt, st.eflags, &used, st.freePtr);
 		if (st.nstr == var_Error
-		    || (st.nstr == varNoError && (st.flags & VARE_UNDEFERR) == 0)
+		    || (st.nstr == varNoError && (st.eflags & VARE_UNDEFERR) == 0)
 		    || strlen(rval) != (size_t) used) {
 		    free(freeIt);
 		    goto out;	/* error already reported */
@@ -3559,7 +3555,7 @@ ApplyModifiers(char *nstr, const char *t
 	case 's':
 	    if (st.tstr[1] == 'h' && (st.tstr[2] == st.endc || st.tstr[2] == ':')) {
 		const char *emsg;
-		if (st.flags & VARE_WANTRES) {
+		if (st.eflags & VARE_WANTRES) {
 		    st.newStr = Cmd_Exec(st.nstr, &emsg);
 		    if (emsg)
 			Error(emsg, st.nstr);

Reply via email to