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>