X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=m4%2Fpsi_macro.m4;h=0bae220459423111f84c2679b704c67e651cf3c4;hb=5abcb8724ac7046d62203ea643e9ce69f63a6a8a;hp=0de4fdf7894ef92873286199f993a2c6cb16bed8;hpb=4b5ceb304b924c50eaf8263ad394493ff806fed4;p=m6w6%2Fext-psi diff --git a/m4/psi_macro.m4 b/m4/psi_macro.m4 index 0de4fdf..0bae220 100644 --- a/m4/psi_macro.m4 +++ b/m4/psi_macro.m4 @@ -4,20 +4,31 @@ AC_DEFUN(PSI_MACRO, [ $3 macro_type="PSI_VAR_TYPE($1)" macro_name="PSI_VAR_NAME($1)" - ifelse([$2], [], [ - macro_decl="()" - macro_call="" - ], [ - macro_decl="$2" - macro_call="(m4_map_args_sep([PSI_VAR_NAME(], [)], [, ], m4_bregexp($2, [(\(.*\))], [\1])))" - ]) + m4_case([$2], + [(void)], [ + macro_decl="(void)" + macro_call="()" + ], + [()], [ + macro_decl="()" + macro_call="()" + ], + [], [ + macro_decl="()" + macro_call="" + ], + [ + macro_decl="$2" + macro_call="(m4_map_args_sep([PSI_VAR_NAME(], [)], [, ], m4_bregexp($2, [(\(.*\))], [\1])))" + ] + ) ifelse(PSI_VAR_TYPE($1), [void], [ macro_body="$macro_name$macro_call;" ], [ macro_body="return $macro_name$macro_call;" ]) psi_macro="$macro_type psi_macro_$macro_name$macro_decl { $macro_body }" - PSI_MACROS="$PSI_MACROS $psi_macro" + cat >>$PSI_MACROS <<<"$psi_macro" PSI_REDIR($macro_name, psi_macro_$macro_name) ], [], PSI_INCLUDES) ])