[PD-cvs] pd/src x_list.c, 1.2.2.8, 1.2.2.9 x_connective.c, 1.3.4.1.2.9, 1.3.4.1.2.10

Mathieu Bouchard matju at users.sourceforge.net
Wed Nov 29 17:06:31 CET 2006


Update of /cvsroot/pure-data/pd/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25491

Modified Files:
      Tag: devel_0_39
	x_list.c x_connective.c 
Log Message:
fixing yesterday's new bug.


Index: x_connective.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_connective.c,v
retrieving revision 1.3.4.1.2.9
retrieving revision 1.3.4.1.2.10
diff -C2 -d -r1.3.4.1.2.9 -r1.3.4.1.2.10
*** x_connective.c	28 Nov 2006 15:46:09 -0000	1.3.4.1.2.9
--- x_connective.c	29 Nov 2006 16:06:29 -0000	1.3.4.1.2.10
***************
*** 9,12 ****
--- 9,19 ----
  #include <string.h>
  #include <stdio.h>
+ extern t_pd *newest;
+ 
+ #ifdef DESIRE
+ void pd_set_newest(t_pd *);
+ #else
+ #define pd_set_newest(x) (newest=(x))
+ #endif
  
  /* -------------------------- int ------------------------------ */
***************
*** 66,69 ****
--- 73,77 ----
      outlet_new(&x->x_obj, &s_float);
      floatinlet_new(&x->x_obj, &x->x_f);
+     pd_set_newest((t_pd *)x);
      return (x);
  }
***************
*** 108,111 ****
--- 116,120 ----
      outlet_new(&x->x_obj, &s_symbol);
      symbolinlet_new(&x->x_obj, &x->x_s);
+     pd_set_newest((t_pd *)x);
      return (x);
  }
***************
*** 163,166 ****
--- 172,176 ----
      t_bang *x = (t_bang *)pd_new(bang_class);
      outlet_new(&x->x_obj, &s_bang);
+     pd_set_newest((t_pd *)x);
      return (x);
  }

Index: x_list.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_list.c,v
retrieving revision 1.2.2.8
retrieving revision 1.2.2.9
diff -C2 -d -r1.2.2.8 -r1.2.2.9
*** x_list.c	28 Nov 2006 15:36:03 -0000	1.2.2.8
--- x_list.c	29 Nov 2006 16:06:29 -0000	1.2.2.9
***************
*** 21,24 ****
--- 21,27 ----
  #endif
  
+ extern t_pd *newest;
+ 
+ 
  /* the "list" object family.
  
***************
*** 393,408 ****
  static void *list_new(t_pd *dummy, t_symbol *s, int argc, t_atom *argv)
  {
      if (!argc || argv[0].a_type != A_SYMBOL)
!         return list_append_new(s, argc, argv);
      else
      {
          t_symbol *s2 = argv[0].a_w.w_symbol;
!         if (s2 == gensym("append"))  return list_append_new(s, argc-1, argv+1);
!         if (s2 == gensym("prepend")) return list_prepend_new(s, argc-1, argv+1);
!         if (s2 == gensym("split"))   return list_split_new(atom_getfloatarg(1, argc, argv));
!         if (s2 == gensym("trim"))    return list_trim_new();
!         error("list %s: unknown function", s2->s_name);
!         return 0;
      }
  }
  
--- 396,427 ----
  static void *list_new(t_pd *dummy, t_symbol *s, int argc, t_atom *argv)
  {
+ #ifdef DESIRE
+     void pd_set_newest(t_pd *);
+     t_pd *newest = 0; /* hide global var */
+ #endif
      if (!argc || argv[0].a_type != A_SYMBOL)
!         newest = list_append_new(s, argc, argv);
      else
      {
          t_symbol *s2 = argv[0].a_w.w_symbol;
!         if (s2 == gensym("append"))
!             newest = list_append_new(s, argc-1, argv+1);
!         else if (s2 == gensym("prepend"))
!             newest = list_prepend_new(s, argc-1, argv+1);
!          else if (s2 == gensym("split"))
!             newest = list_split_new(atom_getfloatarg(1, argc, argv));
!          else if (s2 == gensym("trim"))
!             newest = list_trim_new();
!         else 
!         {
!             error("list %s: unknown function", s2->s_name);
!             newest = 0;
!         }
      }
+ #ifdef DESIRE
+     /* workaround for bug in m_class.c */
+     pd_set_newest(newest);
+ #endif
+     return (newest);
  }
  





More information about the Pd-cvs mailing list