Module Name: src
Committed By: rillig
Date: Sat Aug 8 12:43:06 UTC 2020
Modified Files:
src/usr.bin/make: var.c
Log Message:
make(1): clean up Var_Export
The string from the .export directive can never be NULL.
The test for local single-char variables is already done in Var_Export1.
To generate a diff of this commit:
cvs rdiff -u -r1.421 -r1.422 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.421 src/usr.bin/make/var.c:1.422
--- src/usr.bin/make/var.c:1.421 Sat Aug 8 12:39:48 2020
+++ src/usr.bin/make/var.c Sat Aug 8 12:43:06 2020
@@ -1,4 +1,4 @@
-/* $NetBSD: var.c,v 1.421 2020/08/08 12:39:48 rillig Exp $ */
+/* $NetBSD: var.c,v 1.422 2020/08/08 12:43:06 rillig Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1993
@@ -69,14 +69,14 @@
*/
#ifndef MAKE_NATIVE
-static char rcsid[] = "$NetBSD: var.c,v 1.421 2020/08/08 12:39:48 rillig Exp $";
+static char rcsid[] = "$NetBSD: var.c,v 1.422 2020/08/08 12:43:06 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.421 2020/08/08 12:39:48 rillig Exp $");
+__RCSID("$NetBSD: var.c,v 1.422 2020/08/08 12:43:06 rillig Exp $");
#endif
#endif /* not lint */
#endif
@@ -469,7 +469,7 @@ Var_Delete(const char *name, GNode *ctxt
/*
* Export a single variable.
- * We ignore make internal variables (those which start with '.')
+ * We ignore make internal variables (those which start with '.').
* Also we jump through some hoops to avoid calling setenv
* more than necessary since it can leak.
* We only manipulate flags of vars if 'parent' is set.
@@ -482,9 +482,9 @@ Var_Export1(const char *name, VarExportF
Var *v;
char *val;
- if (*name == '.')
+ if (name[0] == '.')
return FALSE; /* skip internals */
- if (!name[1]) {
+ if (name[1] == '\0') {
/*
* A single char.
* If it is one of the vars that should only appear in
@@ -508,7 +508,7 @@ Var_Export1(const char *name, VarExportF
return FALSE; /* nothing to do */
val = Buf_GetAllZ(&v->val, NULL);
- if (!(flags & VAR_EXPORT_LITERAL) && strchr(val, '$')) {
+ if (!(flags & VAR_EXPORT_LITERAL) && strchr(val, '$') != NULL) {
int n;
if (parent) {
@@ -608,7 +608,7 @@ Var_Export(char *str, int isExport)
VarExportFlags flags;
char *val;
- if (isExport && (!str || !str[0])) {
+ if (isExport && str[0] == '\0') {
var_exportedVars = VAR_EXPORTED_ALL; /* use with caution! */
return;
}
@@ -624,7 +624,7 @@ Var_Export(char *str, int isExport)
}
val = Var_Subst(str, VAR_GLOBAL, VARE_WANTRES);
- if (*val) {
+ if (val[0] != '\0') {
char *as;
int ac;
char **av = brk_string(val, &ac, FALSE, &as);
@@ -632,21 +632,6 @@ Var_Export(char *str, int isExport)
int i;
for (i = 0; i < ac; i++) {
const char *name = av[i];
- if (!name[1]) {
- /*
- * A single char.
- * If it is one of the vars that should only appear in
- * local context, skip it, else we can get Var_Subst
- * into a loop.
- */
- switch (name[0]) {
- case '@':
- case '%':
- case '*':
- case '!':
- continue;
- }
- }
if (Var_Export1(name, flags)) {
if (var_exportedVars != VAR_EXPORTED_ALL)
var_exportedVars = VAR_EXPORTED_YES;