diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2011-10-09 16:36:37 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2011-10-09 16:36:37 +0000 |
commit | 21c068f1916330e90f814bed461fe0821d1665ec (patch) | |
tree | 949b73696fff09a44b8d3eb01b70bae7174cbd14 /pd/src/x_connective.c | |
parent | bf8ced1efe1a032342e864edc635fa4e2676670d (diff) |
checked in pd-0.43-0.src.tar.gz
svn path=/trunk/; revision=15557
Diffstat (limited to 'pd/src/x_connective.c')
-rw-r--r-- | pd/src/x_connective.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/pd/src/x_connective.c b/pd/src/x_connective.c index b9093f46..abd09317 100644 --- a/pd/src/x_connective.c +++ b/pd/src/x_connective.c @@ -508,6 +508,8 @@ static void route_list(t_route *x, t_symbol *sel, int argc, t_atom *argv) { t_float f; if (!argc) return; + if (argv->a_type != A_FLOAT) + goto rejected; f = atom_getfloat(argv); for (nelement = x->x_nelement, e = x->x_vec; nelement--; e++) if (e->e_w.w_float == f) @@ -569,6 +571,7 @@ static void route_list(t_route *x, t_symbol *sel, int argc, t_atom *argv) } } } + rejected: outlet_list(x->x_rejectout, 0, argc, argv); } @@ -600,6 +603,12 @@ static void *route_new(t_symbol *s, int argc, t_atom *argv) e->e_w.w_float = atom_getfloatarg(n, argc, argv); else e->e_w.w_symbol = atom_getsymbolarg(n, argc, argv); } + if (argc == 1) + { + if (argv->a_type == A_FLOAT) + floatinlet_new(&x->x_obj, &x->x_vec->e_w.w_float); + else symbolinlet_new(&x->x_obj, &x->x_vec->e_w.w_symbol); + } x->x_rejectout = outlet_new(&x->x_obj, &s_list); return (x); } @@ -1002,8 +1011,7 @@ static void trigger_anything(t_trigger *x, t_symbol *s, int argc, t_atom *argv) outlet_bang(u->u_outlet); else if (u->u_type == TR_ANYTHING) outlet_anything(u->u_outlet, s, argc, argv); - else pd_error(x, "trigger: can only convert 's' to 'b' or 'a'", - s->s_name); + else pd_error(x, "trigger: can only convert 's' to 'b' or 'a'"); } } @@ -1260,12 +1268,15 @@ static void makefilename_float(t_makefilename *x, t_floatarg f) char buf[MAXPDSTRING]; if (x->x_accept == A_FLOAT) { if (x->x_intconvert) - sprintf(buf, x->x_format->s_name, (int)f); - else - sprintf(buf, x->x_format->s_name, f); + sprintf(buf, x->x_format->s_name, (int)f); + else sprintf(buf, x->x_format->s_name, f); } else - sprintf(buf, x->x_format->s_name, ""); + { + char buf2[MAXPDSTRING]; + sprintf(buf2, "%g", f); + sprintf(buf, x->x_format->s_name, buf2); + } if (buf[0]!=0) outlet_symbol(x->x_obj.ob_outlet, gensym(buf)); } |