]> git.ipfire.org Git - thirdparty/make.git/commitdiff
Formerly variable.c.~13~
authorRoland McGrath <roland@redhat.com>
Mon, 23 Nov 1992 20:53:24 +0000 (20:53 +0000)
committerRoland McGrath <roland@redhat.com>
Mon, 23 Nov 1992 20:53:24 +0000 (20:53 +0000)
variable.c

index 46b691e58ba11b4b5c43c4c8ae9170b70b53ed01..60daf81b7530b62b1d325fdaea17a59b8ebf99b0 100644 (file)
@@ -500,9 +500,7 @@ target_environment (file)
   return result;
 }
 \f
-/* Try to interpret LINE (a null-terminated string)
-   as a variable definition.  If it is one, define the
-   variable and return 1.  Otherwise return 0.
+/* Try to interpret LINE (a null-terminated string) as a variable definition.
 
    ORIGIN may be o_file, o_override, o_env, o_env_override,
    or o_command specifying that the variable definition comes
@@ -528,9 +526,9 @@ try_variable_definition (line, origin)
   register char *beg;
   register char *end;
   register int recursive;
+  char *name, *expanded_name;
+  struct variable *v;
 
-  if (*p == '\t')
-    return 0;
   while (1)
     {
       c = *p++;
@@ -560,9 +558,18 @@ try_variable_definition (line, origin)
     --end;
   p = next_token (p);
 
-  return define_variable (beg, end - beg,
-                         recursive ? p : variable_expand (p),
-                         origin, recursive);
+  /* Expand the name, so "$(foo)bar = baz" works.  */
+  name = savestring (beg, end - beg);
+  expanded_name = allocated_variable_expand (name);
+  free (name);
+
+  v = define_variable (expanded_name, strlen (expanded_name),
+                      recursive ? p : variable_expand (p),
+                      origin, recursive);
+
+  free (expanded_name);
+
+  return v;
 }
 \f
 /* Print information for variable V, prefixing it with PREFIX.  */