summaryrefslogtreecommitdiff
path: root/function.c
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2002-10-25 22:01:47 +0000
committerPaul Smith <psmith@gnu.org>2002-10-25 22:01:47 +0000
commit7ea59395e260a8269818f173c7e5f6269aa51b49 (patch)
tree480e6f04e132649d7346adc8eb92d090f85aabde /function.c
parent073d6b315606ddc55ae28f6ce694002ac6516529 (diff)
downloadmake-7ea59395e260a8269818f173c7e5f6269aa51b49.tar.gz
Fix eval bugs 1516 and 1517.
Diffstat (limited to 'function.c')
-rw-r--r--function.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/function.c b/function.c
index 3282cdfc..5a27406b 100644
--- a/function.c
+++ b/function.c
@@ -1196,8 +1196,18 @@ func_wildcard (char *o, char **argv, const char *funcname)
static char *
func_eval (char *o, char **argv, const char *funcname)
{
+ char *buf;
+ unsigned int len;
+
+ /* Eval the buffer. Pop the current variable buffer setting so that the
+ eval'd code can use its own without conflicting. */
+
+ install_variable_buffer (&buf, &len);
+
eval_buffer (argv[0]);
+ restore_variable_buffer (buf, len);
+
return o;
}