diff --git a/pd/src/g_editor.c b/pd/src/g_editor.c index a2376d563d77e5446f3c6f866f6515af0ad31d51..dafc0b2904b890342b80875a32e7184535235587 100644 --- a/pd/src/g_editor.c +++ b/pd/src/g_editor.c @@ -3805,7 +3805,7 @@ int canvas_doconnect_doit(t_canvas *x, t_gobj *y1, t_gobj *y2, error("preset_node does not work with messages."); return(1); } - if (obj_noutlets(ob2) == 0) + if (obj_noutlets(ob2) == 0 && pd_class(&y2->g_pd) != print_class) { error("preset_node does not work with objects with zero " "or undefined number of outlets\n"); @@ -3880,7 +3880,11 @@ int canvas_doconnect_doit(t_canvas *x, t_gobj *y1, t_gobj *y2, { //fprintf(stderr,"gotta do auto-connect back to preset_node\n"); + // second check is to make sure we are not connected to the + // second outlet of the preset_node in which case we should not + // connect back to it if (!canvas_isconnected(x, ob2, 0, ob1, 0) && + !canvas_isconnected(x, ob1, 1, ob2, 0) && pd_class(&y2->g_pd) != print_class) { oc2 = obj_connect(ob2, 0, ob1, 0); diff --git a/pd/src/x_preset.c b/pd/src/x_preset.c index 3e73ba49f8dbbc244d974e970d07c7b45203e49b..31c5cd26c54c9445e7c27474713e6dc78114b306 100644 --- a/pd/src/x_preset.c +++ b/pd/src/x_preset.c @@ -529,7 +529,7 @@ static int preset_node_location_changed(t_preset_node *x) static void preset_node_anything(t_preset_node *x, t_symbol *s, int argc, t_atom *argv) { - if (PH_DEBUG) fprintf(stderr,"preset_node_anything %lx\n", (t_int)x); + if (PH_DEBUG) fprintf(stderr,"preset_node_anything %lx %s %d\n", (t_int)x, s->s_name, argc); int i; alist_list(&x->pn_val, 0, argc, argv); if (PH_DEBUG)