diff options
author | Eric Blake <ebb9@byu.net> | 2008-05-03 15:22:23 -0600 |
---|---|---|
committer | Eric Blake <ebb9@byu.net> | 2008-05-05 20:54:23 -0600 |
commit | c2a2811a8b81dac7b090dcd6f584742fed6dd085 (patch) | |
tree | 3372e5534c38521ecfd9c3b93672fc8d51b4b134 /NEWS | |
parent | bc9b4d7bf16c7571efe03debaf2c6f1d52a6a08d (diff) | |
download | m4-c2a2811a8b81dac7b090dcd6f584742fed6dd085.tar.gz |
Stage 22: allow builtin token concatenation outside $@.
* m4/m4module.h (m4_is_arg_composite): New prototype.
(m4_symbol_value_copy): Change return type.
(m4_arg_text): Add parameter.
(M4ARG): Adjust callers.
* m4/m4private.h: Adjust comments.
* m4/symtab.c (m4_symbol_value_copy): Detect when builtins are
flattened.
* m4/input.c (init_builtin_token): Add parameter, and allow
concatenating builtins.
(m4__next_token): Adjust caller.
* m4/macro.c (m4_is_arg_composite): New function.
(expand_argument): Allow builtin concatenation.
(m4_arg_text): Add parameter.
(m4__arg_adjust_refcount, m4__arg_print): Adjust callers.
(m4_arg_equal): Fix comparison of builtin tokens.
* modules/m4.c (define, pushdef): Warn when flattening builtins.
* doc/m4.texinfo (Define): Remove dead comment.
(Defn): Update to reflect code changes.
* tests/builtins.at (defn): Remove xfail.
* NEWS: Document this change.
Signed-off-by: Eric Blake <ebb9@byu.net>
Diffstat (limited to 'NEWS')
-rw-r--r-- | NEWS | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -216,6 +216,10 @@ promoted to 2.0. using `builtin' or `indir' to perform nested `shift' calls triggered an assertion failure. +** Fix regression introduced in 1.4.10b (but not present in 1.4.11) where + the command-line option -dV, as well as the builtin `debugmode(V)', + failed to enable `t' and `c' debug options. + ** Fix the `m4wrap' builtin to accumulate wrapped text in FIFO order, as required by POSIX. The manual mentions a way to restore the LIFO order present in earlier GNU M4 versions. NOTE: this change exposes a bug @@ -236,9 +240,19 @@ promoted to 2.0. then apply this patch: http://git.sv.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=56d42fa71 +** The `defn' builtin now warns when operating on an undefined macro name. + To simulate 1.4.x behavior, use: + pushdef(`defn', `ifdef(`$1', `builtin(`defn', `$1')')') + ** Enhance the `ifdef', `ifelse', and `shift' builtins, as well as all user macros, to transparently handle builtin tokens generated by `defn'. +** Allow the concatenation of builtin macros with arbitrary text in + several contexts, via the `defn' builtin or argument expansion, rather + than warning and converting the builtin token to an empty string. + However, it is still not possible to use a concatenated builtin when + defining a macro. + ** Enhance the `defn', `dumpdef', `ifdef', `popdef', `traceon', `traceoff', and `undefine' macros to warn when encountering a builtin token in the context of a macro name, rather than acting on the empty string. This |