Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 18 May 2013 13:07:01 +0000 (UTC)
From:      "Simon J. Gerraty" <sjg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r250770 - head/contrib/bmake
Message-ID:  <201305181307.r4ID71ab058004@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sjg
Date: Sat May 18 13:07:01 2013
New Revision: 250770
URL: http://svnweb.freebsd.org/changeset/base/250770

Log:
  Var_Delete: expand name to delete if needed.

Modified:
  head/contrib/bmake/var.c

Modified: head/contrib/bmake/var.c
==============================================================================
--- head/contrib/bmake/var.c	Sat May 18 12:54:37 2013	(r250769)
+++ head/contrib/bmake/var.c	Sat May 18 13:07:01 2013	(r250770)
@@ -540,11 +540,20 @@ void
 Var_Delete(const char *name, GNode *ctxt)
 {
     Hash_Entry 	  *ln;
-
-    ln = Hash_FindEntry(&ctxt->context, name);
+    char *cp;
+    
+    if (strchr(name, '$')) {
+	cp = Var_Subst(NULL, name, VAR_GLOBAL, 0);
+    } else {
+	cp = name;
+    }
+    ln = Hash_FindEntry(&ctxt->context, cp);
     if (DEBUG(VAR)) {
 	fprintf(debug_file, "%s:delete %s%s\n",
-	    ctxt->name, name, ln ? "" : " (not found)");
+	    ctxt->name, cp, ln ? "" : " (not found)");
+    }
+    if (cp != name) {
+	free(cp);
     }
     if (ln != NULL) {
 	Var 	  *v;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201305181307.r4ID71ab058004>