Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.bin/make make(1): rename local variable in Cond_EvalLine



details:   https://anonhg.NetBSD.org/src/rev/5523b5253836
branches:  trunk
changeset: 956969:5523b5253836
user:      rillig <rillig%NetBSD.org@localhost>
date:      Thu Nov 12 20:16:20 2020 +0000

description:
make(1): rename local variable in Cond_EvalLine

A variable called line is not supposed to be a moving target, that's what
the name p is reserved for.

diffstat:

 usr.bin/make/cond.c |  36 +++++++++++++++++++-----------------
 1 files changed, 19 insertions(+), 17 deletions(-)

diffs (120 lines):

diff -r 35512ba42ab5 -r 5523b5253836 usr.bin/make/cond.c
--- a/usr.bin/make/cond.c       Thu Nov 12 20:06:37 2020 +0000
+++ b/usr.bin/make/cond.c       Thu Nov 12 20:16:20 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: cond.c,v 1.208 2020/11/12 20:06:37 rillig Exp $        */
+/*     $NetBSD: cond.c,v 1.209 2020/11/12 20:16:20 rillig Exp $        */
 
 /*
  * Copyright (c) 1988, 1989, 1990 The Regents of the University of California.
@@ -72,7 +72,8 @@
 /* Handling of conditionals in a makefile.
  *
  * Interface:
- *     Cond_EvalLine   Evaluate the conditional.
+ *     Cond_EvalLine   Evaluate the conditional directive, such as
+ *                     '.if <cond>', '.elifnmake <cond>', '.else', '.endif'.
  *
  *     Cond_EvalCondition
  *                     Evaluate the conditional, which is either the argument
@@ -93,7 +94,7 @@
 #include "dir.h"
 
 /*     "@(#)cond.c     8.2 (Berkeley) 1/2/94"  */
-MAKE_RCSID("$NetBSD: cond.c,v 1.208 2020/11/12 20:06:37 rillig Exp $");
+MAKE_RCSID("$NetBSD: cond.c,v 1.209 2020/11/12 20:16:20 rillig Exp $");
 
 /*
  * The parsing of conditional expressions is based on this grammar:
@@ -1057,7 +1058,7 @@
        return CondEvalExpression(NULL, cond, out_value, FALSE, FALSE);
 }
 
-/* Evaluate the conditional directive in the passed line, which is one of:
+/* Evaluate the conditional directive in the line, which is one of:
  *
  *     .if <cond>
  *     .ifmake <cond>
@@ -1087,7 +1088,7 @@
  *                     or because the condition could not be evaluated
  */
 CondEvalResult
-Cond_EvalLine(const char *line)
+Cond_EvalLine(const char *const line)
 {
     typedef enum IfState {
 
@@ -1121,18 +1122,19 @@
     Boolean isElif;
     Boolean value;
     IfState state;
+    const char *p = line;
 
     if (cond_states == NULL) {
        cond_states = bmake_malloc(cond_states_cap * sizeof *cond_states);
        cond_states[0] = IF_ACTIVE;
     }
-    line++;            /* skip the leading '.' */
-    cpp_skip_hspace(&line);
+    p++;               /* skip the leading '.' */
+    cpp_skip_hspace(&p);
 
     /* Find what type of if we're dealing with.  */
-    if (line[0] == 'e') {
-       if (line[1] != 'l') {
-           if (!is_token(line + 1, "ndif", 4)) { /* It is an '.endif'. */
+    if (p[0] == 'e') {
+       if (p[1] != 'l') {
+           if (!is_token(p + 1, "ndif", 4)) { /* It is an '.endif'. */
                /* TODO: check for extraneous <cond> */
                return COND_INVALID;
            }
@@ -1148,8 +1150,8 @@
        }
 
        /* Quite likely this is 'else' or 'elif' */
-       line += 2;
-       if (is_token(line, "se", 2)) {  /* It is an 'else'. */
+       p += 2;
+       if (is_token(p, "se", 2)) {     /* It is an 'else'. */
 
            /* TODO: check for extraneous <cond> */
 
@@ -1181,7 +1183,7 @@
     } else
        isElif = FALSE;
 
-    if (line[0] != 'i' || line[1] != 'f') {
+    if (p[0] != 'i' || p[1] != 'f') {
        /* TODO: Add error message about unknown directive.
         * See directive-elif.mk:23 */
        return COND_INVALID;    /* Not an ifxxx or elifxxx line */
@@ -1191,7 +1193,7 @@
      * Figure out what sort of conditional it is -- what its default
      * function is, etc. -- by looking in the table of valid "ifs"
      */
-    line += 2;
+    p += 2;
     for (ifp = ifs;; ifp++) {
        if (ifp->form == NULL) {
            /* TODO: Add error message about unknown directive,
@@ -1200,8 +1202,8 @@
             * Example: .elifx 123 */
            return COND_INVALID;
        }
-       if (is_token(line, ifp->form, ifp->formlen)) {
-           line += ifp->formlen;
+       if (is_token(p, ifp->form, ifp->formlen)) {
+           p += ifp->formlen;
            break;
        }
     }
@@ -1246,7 +1248,7 @@
     }
 
     /* And evaluate the conditional expression */
-    if (CondEvalExpression(ifp, line, &value, TRUE, TRUE) == COND_INVALID) {
+    if (CondEvalExpression(ifp, p, &value, TRUE, TRUE) == COND_INVALID) {
        /* Syntax error in conditional, error message already output. */
        /* Skip everything to matching .endif */
        cond_states[cond_depth] = SKIP_TO_ELSE;



Home | Main Index | Thread Index | Old Index