Module Name:    src
Committed By:   rillig
Date:           Sat Aug  1 06:35:00 UTC 2020

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

Log Message:
make(1): remove unnecessary snprintf from Var_ExportVars

String literals can be concatenated at compile time.

Furthermore, MAKE_EXPORTED can now contain percent characters without
invoking undefined behavior.  Not that anyone would ever want to do this.


To generate a diff of this commit:
cvs rdiff -u -r1.368 -r1.369 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.368 src/usr.bin/make/var.c:1.369
--- src/usr.bin/make/var.c:1.368	Fri Jul 31 14:59:53 2020
+++ src/usr.bin/make/var.c	Sat Aug  1 06:35:00 2020
@@ -1,4 +1,4 @@
-/*	$NetBSD: var.c,v 1.368 2020/07/31 14:59:53 rillig Exp $	*/
+/*	$NetBSD: var.c,v 1.369 2020/08/01 06:35:00 rillig Exp $	*/
 
 /*
  * Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
  */
 
 #ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: var.c,v 1.368 2020/07/31 14:59:53 rillig Exp $";
+static char rcsid[] = "$NetBSD: var.c,v 1.369 2020/08/01 06:35:00 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.368 2020/07/31 14:59:53 rillig Exp $");
+__RCSID("$NetBSD: var.c,v 1.369 2020/08/01 06:35:00 rillig Exp $");
 #endif
 #endif /* not lint */
 #endif
@@ -582,7 +582,6 @@ Var_ExportVars(void)
 {
     char tmp[BUFSIZ];
     char *val;
-    int n;
 
     /*
      * Several make's support this sort of mechanism for tracking
@@ -601,26 +600,21 @@ Var_ExportVars(void)
 	Hash_ForEach(&VAR_GLOBAL->context, Var_ExportVars_callback, NULL);
 	return;
     }
-    /*
-     * We have a number of exported vars,
-     */
-    n = snprintf(tmp, sizeof(tmp), "${" MAKE_EXPORTED ":O:u}");
-    if (n < (int)sizeof(tmp)) {
+
+    val = Var_Subst("${" MAKE_EXPORTED ":O:u}", VAR_GLOBAL, VARE_WANTRES);
+    if (*val) {
 	char **av;
 	char *as;
 	int ac;
 	int i;
 
-	val = Var_Subst(tmp, VAR_GLOBAL, VARE_WANTRES);
-	if (*val) {
-	    av = brk_string(val, &ac, FALSE, &as);
-	    for (i = 0; i < ac; i++)
-		Var_Export1(av[i], 0);
-	    free(as);
-	    free(av);
-	}
-	free(val);
+	av = brk_string(val, &ac, FALSE, &as);
+	for (i = 0; i < ac; i++)
+	    Var_Export1(av[i], 0);
+	free(as);
+	free(av);
     }
+    free(val);
 }
 
 /*

Reply via email to