--- x_interface.c 2006/08/11 20:09:07 1.3 +++ x_interface.c 2007/11/26 05:53:29 1.3.6.2 @@ -15,11 +15,23 @@ t_symbol *x_sym; } t_print; -static void *print_new(t_symbol *s) +static void *print_new(t_symbol *s, int argc, t_atom *argv) { + int bufsize; + char *buf; t_print *x = (t_print *)pd_new(print_class); - if (*s->s_name) x->x_sym = s; - else x->x_sym = gensym("print"); + if (*s->s_name) + { + t_binbuf *bb = binbuf_new(); + binbuf_add(bb, argc, argv); + binbuf_gettext(bb, &buf, &bufsize); + x->x_sym = gensym(buf); + binbuf_free(bb); + } + else + { + x->x_sym = gensym("print"); + } return (x); } @@ -60,7 +72,7 @@ static void print_setup(void) { print_class = class_new(gensym("print"), (t_newmethod)print_new, 0, - sizeof(t_print), 0, A_DEFSYM, 0); + sizeof(t_print), 0, A_GIMME, 0); class_addbang(print_class, print_bang); class_addfloat(print_class, print_float); class_addpointer(print_class, print_pointer);