Stage 17: pass argv through quoted strings.
commit10801988a863c045aa0dc06b56575f1cc52bc586
authorEric Blake <ebb9@byu.net>
Thu, 15 Nov 2007 21:56:36 +0000 (15 14:56 -0700)
committerEric Blake <ebb9@byu.net>
Fri, 22 Feb 2008 13:02:50 +0000 (22 06:02 -0700)
treef88ba93d60062afd761130d92d191572cf5650a8
parentd59ecd1edf7a7f56a4f15e2a378a7871a746bc7f
Stage 17: pass argv through quoted strings.

* src/input.c (append_quote_token): Allow an argv ref inside
quotes.
(init_argv_token): Populate new fields.
(push_macro): Ensure a macro is actually pushed.
* src/m4.h (struct token_chain): Add has_func member.
(struct token_data): Add wrapper and has_func members.
* src/macro.c (struct macro_arguments): Add flatten and has_func
members.
(expand_argument, collect_arguments, make_argv_ref_token)
(make_argv_ref): Populate new fields.
(arg_equal, arg_len) Handle embedded argv.
(arg_token, arg_mark, arg_type): Use new fields.

(cherry picked from commit 4ecf71f4afd15778cc8f0d10aaf4c344bf2b2b57)

Signed-off-by: Eric Blake <ebb9@byu.net>
ChangeLog
src/input.c
src/m4.h
src/macro.c