From a414995534a486eeeef1795e9019e9c2f1d4f718 Mon Sep 17 00:00:00 2001
From: Ivica Ico Bukvic <ico@vt.edu>
Date: Thu, 21 Mar 2013 15:28:06 -0400
Subject: [PATCH] fixed regression from IOhannes' proposed fix (see
 e7acc4796b655100b650f898bb10687fb9f7355d commit) that affects propagation of
 scalar pointers through the trigger object. Use scalar-help.pd to test.

---
 pd/src/m_class.c      | 2 +-
 pd/src/x_connective.c | 7 ++++---
 2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/pd/src/m_class.c b/pd/src/m_class.c
index 9fc05fc2f..e70cf1bef 100644
--- a/pd/src/m_class.c
+++ b/pd/src/m_class.c
@@ -669,7 +669,7 @@ void pd_typedmess(t_pd *x, t_symbol *s, int argc, t_atom *argv)
     int narg = 0;
     t_pd *bonzo;
     
-	//fprinf(stderr,"\nstart %s %d\n", s->s_name, c->c_nmethod);
+	//fprintf(stderr,"\nstart %s %d\n", s->s_name, c->c_nmethod);
 
         /* check for messages that are handled by fixed slots in the class
         structure.  We don't catch "pointer" though so that sending "pointer"
diff --git a/pd/src/x_connective.c b/pd/src/x_connective.c
index 2ca8ef53a..d001a4bef 100644
--- a/pd/src/x_connective.c
+++ b/pd/src/x_connective.c
@@ -1078,8 +1078,6 @@ static void trigger_list(t_trigger *x, t_symbol *s, int argc, t_atom *argv)
         else if (u->u_type == TR_SYMBOL)
             outlet_symbol(u->u_outlet,
                 (argc ? atom_getsymbol(argv) : &s_symbol));
-        else if (u->u_type == TR_ANYTHING)
-            outlet_anything(u->u_outlet, s, argc, argv);
         else if (u->u_type == TR_POINTER)
         {
             if (!argc || argv->a_type != TR_POINTER)
@@ -1100,14 +1098,17 @@ static void trigger_list(t_trigger *x, t_symbol *s, int argc, t_atom *argv)
 
 static void trigger_anything(t_trigger *x, t_symbol *s, int argc, t_atom *argv)
 {
+	//fprintf(stderr,"trigger_anything %s\n", s->s_name);
     t_triggerout *u;
     int i;
     for (i = x->x_n, u = x->x_vec + i; u--, i--;)
     {
         if (u->u_type == TR_BANG)
             outlet_bang(u->u_outlet);
-        else if (u->u_type == TR_ANYTHING)
+        else if (u->u_type == TR_ANYTHING) {
+			//fprintf(stderr,"TR_ANYTHING\n");
             outlet_anything(u->u_outlet, s, argc, argv);
+		}
 		else if (u->u_type == TR_STATIC_FLOAT)
 		{
 			outlet_float(u->u_outlet, u->u_float);	
-- 
GitLab