Module Name: src Committed By: rillig Date: Sun Dec 20 15:31:29 UTC 2020
Modified Files: src/usr.bin/make: var.c Log Message: make(1): use FStr for memory management in Var_SetWithFlags To generate a diff of this commit: cvs rdiff -u -r1.747 -r1.748 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.747 src/usr.bin/make/var.c:1.748 --- src/usr.bin/make/var.c:1.747 Sun Dec 20 15:26:40 2020 +++ src/usr.bin/make/var.c Sun Dec 20 15:31:29 2020 @@ -1,4 +1,4 @@ -/* $NetBSD: var.c,v 1.747 2020/12/20 15:26:40 rillig Exp $ */ +/* $NetBSD: var.c,v 1.748 2020/12/20 15:31:29 rillig Exp $ */ /* * Copyright (c) 1988, 1989, 1990, 1993 @@ -131,7 +131,7 @@ #include "metachar.h" /* "@(#)var.c 8.3 (Berkeley) 3/19/94" */ -MAKE_RCSID("$NetBSD: var.c,v 1.747 2020/12/20 15:26:40 rillig Exp $"); +MAKE_RCSID("$NetBSD: var.c,v 1.748 2020/12/20 15:31:29 rillig Exp $"); typedef enum VarFlags { VAR_NONE = 0, @@ -949,27 +949,25 @@ Var_SetWithFlags(const char *name, const VarSetFlags flags) { const char *unexpanded_name = name; - char *name_freeIt = NULL; + FStr varname = FStr_InitRefer(name); assert(val != NULL); - if (strchr(name, '$') != NULL) { - (void)Var_Subst(name, ctxt, VARE_WANTRES, &name_freeIt); + if (strchr(varname.str, '$') != NULL) { + char *expanded; + (void)Var_Subst(varname.str, ctxt, VARE_WANTRES, &expanded); /* TODO: handle errors */ - name = name_freeIt; + varname = FStr_InitOwn(expanded); } - if (name[0] == '\0') { + if (varname.str[0] == '\0') { DEBUG2(VAR, "Var_Set(\"%s\", \"%s\", ...) " "name expands to empty string - ignored\n", unexpanded_name, val); - free(name_freeIt); - return; - } - - SetVar(name, val, ctxt, flags); + } else + SetVar(varname.str, val, ctxt, flags); - free(name_freeIt); + FStr_Done(&varname); } /*