+print_type(FILE *fp, Type *t)
+{
+ char *s;
+ int i;
+ s = remove_sep(t->name);
+ out_printf(fp,"%s ",s);
+ g_free(s);
+
+ for(i=0;i<t->stars;i++)
+ out_printf(fp,"*");
+}
+
+static void
+print_method(FILE *fp, char *typeprefix, char *nameprefix,
+ char *namepostfix,char *postfix, Method *m,
+ gboolean no_funcbase)
+{
+ GList *li;
+
+ out_printf(fp,"%s",typeprefix);
+ print_type(fp,m->mtype);
+ if(no_funcbase)
+ out_printf(fp,"%s%s%s(",
+ nameprefix,m->id,namepostfix);
+ else
+ out_printf(fp,"%s%s_%s%s(",
+ nameprefix,funcbase,m->id,namepostfix);
+
+ if(m->args) {
+ for(li=m->args;li;li=g_list_next(li)) {
+ FuncArg *arg = li->data;
+ print_type(fp,arg->atype);
+ if(li->next)
+ out_printf(fp,"%s, ",arg->name);
+ else
+ out_printf(fp,"%s",arg->name);
+
+ }
+ if(m->vararg)
+ out_printf(fp,", ...");
+ } else {
+ out_printf(fp,"void");
+ }
+ out_printf(fp,")%s",postfix);
+}
+
+
+static void
+make_method_pointers(Class *c)