+++ /dev/null
-# arg_names(typed args)
-arg_names() {
- AS_ECHO_N([$1]) \
- | tr -cd '()' \
- | $AWK -F, '{for (i=1;i<NF;++i) print $i ","; print $NF}' \
- | $AWK '{print $NF}' \
- | xargs
-}
-PSI_MACROS=
-# gen_macro(ret type, symbol, args)
-gen_macro() {
- local dargs="$3"
- test -z "$3" && dargs="()"
- AS_ECHO_N(["static $1 psi_macro_$2$dargs {"])
- if test "$1" != "void"; then
- AS_ECHO_N(["return "])
- fi
- arg_names "$3"
- AS_ECHO_N(["$2`arg_names \"$3\"`;}"])
-}
-# add_macro(ret type, symbol, args)
-add_macro() {
- local psi_macro
- psi_macro=`gen_macro "$1" "$2" "$3"`
- PSI_MACROS="$psi_macro $PSI_MACROS"
- PSI_REDIR([$2], [psi_macro_$2])
-}
-
-dnl PSI_MACRO(macro, decl args, action-if-true)
-AC_DEFUN(PSI_MACRO, [
- AC_CHECK_DECL($1$2, $3, [], PSI_INCLUDES)
-])
-
-dnl PSI_EXTVAR(var, type)
-AC_DEFUN(PSI_EXTVAR, [
- AC_CHECK_DECL($1, [
- add_macro "$2" "$1"
- ], [], PSI_INCLUDES)
-])