// Tests typedef through function pointers %module typedef_funcptr %warnfilter(SWIGWARN_RUBY_WRONG_NAME) addf; /* Ruby, wrong constant name */ %warnfilter(SWIGWARN_RUBY_WRONG_NAME) subf; /* Ruby, wrong constant name */ %{ int addf(int x, int y) { return x+y; } int subf(int x, int y) { return x-y; } %} %inline %{ typedef int Integer; extern "C" Integer do_op(Integer x, Integer y, Integer (*op)(Integer, Integer)) { return (*op)(x,y); } typedef int (*FnPtr_int_td)(int, int); int do_op_typedef_int(int x, int y, FnPtr_int_td op) { return (*op)(x,y); } typedef Integer (*FnPtr_Integer_td)(Integer, Integer); Integer do_op_typedef_Integer(Integer x, Integer y, FnPtr_Integer_td op) { return (*op)(x,y); } %} %constant int addf(int x, int y); %constant Integer subf(Integer x, Integer y);