summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2000-01-11 07:31:42 +0000
committerPaul Smith <psmith@gnu.org>2000-01-11 07:31:42 +0000
commitb7b83d6398e8e552dd1b9d70d18d7262753e03d4 (patch)
treecd93d86916bbfca0bac321a121ad67dcd6eb37df /ChangeLog
parentaf44f16799fa185e2729cda1653c80d29b598642 (diff)
downloadgunmake-b7b83d6398e8e552dd1b9d70d18d7262753e03d4.tar.gz
* Change $(call...) to not expand arguments by default.
* Unify the way arguments are passed to builtin functions in function.c.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog37
1 files changed, 36 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 9dbdb6b..175081c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,38 @@
+2000-01-11 Paul D. Smith <psmith@gnu.org>
+
+ Resolve PR/xxxx: don't automatically evaluate the $(call ...)
+ function's arguments. While we're here, clean up argument passing
+ protocol to always use simple nul-terminated strings, instead of
+ sometimes using offset pointers to mark the end of arguments.
+ This change also fixes PR/1517.
+ Both PR's by Damien GIBOU <damien.gibou@st.com>.
+
+ * function.c (struct function_table_entry): Remove the negative
+ required_args hack; put in explicit min and max # of arguments.
+ (function_table): Add in the max value. Turn off the expand bit
+ for func_call.
+ (expand_builtin_function): Test against minimum_args instead of
+ the obsolete required_args.
+ (handle_function): Rewrite this. We don't try to be fancy and
+ pass one style of arguments to expanded functions and another
+ style to non-expanded functions: pass pointers to nul-terminated
+ strings to all functions.
+ (func_call): Rewrite this. If we are invoking a builtin function
+ and it's supposed to have its arguments expanded, do that (since
+ it's not done by handle_function for $(call ...) anymore). For
+ non-builtins, just add the variables as before but mark them as
+ recursive so they'll be expanded later, as needed.
+ (func_if): All arguments are vanilla nul-terminated strings:
+ remove trickery with "argv[1]-1".
+ (func_foreach): Ditto.
+
+ * expand.c (expand_argument): If the second arg is NULL, expand
+ the entire first argument.
+
+ * job.c (new_job): Zero the child struct. This change was just
+ made to keep some heap checking software happy, not because there
+ was an actual bug (the important memory was being cleared properly).
+
1999-12-15 Paul D. Smith <psmith@gnu.org>
* variable.c (print_variable): Print the variable with += if the
@@ -12,7 +47,7 @@
* dir.c (dir_setup_glob): On 64 bit ReliantUNIX (5.44 and above)
in LFS mode, stat() is actually a macro for stat64(). Assignment
- doesn't work in that case. So, if stat() is a macro, make a local
+ doesn't work in that case. So, stat is a macro, make a local
wrapper function to invoke it.
(local_stat): Wrapper function, if needed.
Reported by Andrej Borsenkow <Andrej.Borsenkow@mow.siemens.ru>.