diff --git a/src/function_generators.m4 b/src/function_generators.m4 index 117e27c..187cde8 100644 --- a/src/function_generators.m4 +++ b/src/function_generators.m4 @@ -154,6 +154,8 @@ m4_define([_MAKE_ASSIGN_POSITIONAL_ARGS_FUNCTION], [MAKE_FUNCTION( )], [m4_list_ifempty([_WRAPPED_ADD_SINGLE], [], [m4_do( [m4_set_foreach([_POS_VARNAMES], [varname], [m4_n([_INDENT_()varname=()])])], + [_INDENT_()# shellcheck disable=SC2154 # the _arg_* variables are assigned via eval +], [_INDENT_()m4_list_join([_WRAPPED_ADD_SINGLE], m4_newline([_INDENT_()]))], [ ], diff --git a/src/stuff.m4 b/src/stuff.m4 index e47b614..b795afc 100644 --- a/src/stuff.m4 +++ b/src/stuff.m4 @@ -1225,6 +1225,9 @@ m4_define([_MAKE_DEFAULTS_POSITIONAL], [m4_do( [[_positionals=()]_ENDL_], [m4_lists_foreach_positional([_ARGS_LONG,_POSITIONALS_MINS,_POSITIONALS_DEFAULTS,_ARGS_CATH], [_argname,_min_argn,_defaults,_arg_type], [_MAKE_DEFAULTS_POSITIONALS_LOOP(_argname, _arg_type, _min_argn, _defaults)])], + [dnl Initialize wrapped argument arrays (both _opt and _pos) for all groups to ensure they exist +], + [m4_set_foreach([_ARGS_GROUPS], [agroup], [agroup[]_opt_suffix=()_ENDL_[]agroup[]_pos_suffix=()_ENDL_])], )]) @@ -1250,6 +1253,9 @@ m4_define([_MAKE_DEFAULTS_OPTIONAL], [m4_do( [_arg_varname=_sh_quote(_default)_ENDL_])], [m4_set_contains([HAVE_SUPPLIED], _argname, [[_supplied]_arg_varname=0]_ENDL_, [])], )])], + [dnl Initialize wrapped argument arrays (both _opt and _pos) for all groups to ensure they exist +], + [m4_set_foreach([_ARGS_GROUPS], [agroup], [agroup[]_opt_suffix=()_ENDL_[]agroup[]_pos_suffix=()_ENDL_])], )])