Module Name:    src
Committed By:   rillig
Date:           Sun Nov  8 18:16:55 UTC 2020

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

Log Message:
make(1): reorder branches in Var_Subst

This way, '$$' is handled first, followed by '$', followed by everything
else.  This is easier to follow than first '$$' then not '$' and finally
'$'.


To generate a diff of this commit:
cvs rdiff -u -r1.678 -r1.679 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.678 src/usr.bin/make/var.c:1.679
--- src/usr.bin/make/var.c:1.678	Sun Nov  8 18:13:01 2020
+++ src/usr.bin/make/var.c	Sun Nov  8 18:16:55 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.678 2020/11/08 18:13:01 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.679 2020/11/08 18:16:55 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -130,7 +130,7 @@
 #include "metachar.h"
 
 /*	"@(#)var.c	8.3 (Berkeley) 3/19/94" */
-MAKE_RCSID("$NetBSD: var.c,v 1.678 2020/11/08 18:13:01 rillig Exp $");
+MAKE_RCSID("$NetBSD: var.c,v 1.679 2020/11/08 18:16:55 rillig Exp $");
 
 #define VAR_DEBUG1(fmt, arg1) DEBUG1(VAR, fmt, arg1)
 #define VAR_DEBUG2(fmt, arg1, arg2) DEBUG2(VAR, fmt, arg1, arg2)
@@ -4019,7 +4019,11 @@ Var_Subst(const char *str, GNode *ctxt, 
 		Buf_AddByte(&buf, '$');
 	    Buf_AddByte(&buf, '$');
 	    p += 2;
-	} else if (*p != '$') {
+
+	} else if (p[0] == '$') {
+	    VarSubstNested(&p, &buf, ctxt, eflags, &errorReported);
+
+	} else {
 	    /*
 	     * Skip as many characters as possible -- either to the end of
 	     * the string or to the next dollar sign (variable expression).
@@ -4029,8 +4033,6 @@ Var_Subst(const char *str, GNode *ctxt, 
 	    for (p++; *p != '$' && *p != '\0'; p++)
 		continue;
 	    Buf_AddBytesBetween(&buf, plainStart, p);
-	} else {
-	    VarSubstNested(&p, &buf, ctxt, eflags, &errorReported);
 	}
     }
 

Reply via email to