[PD-cvs] pd/src builtins.c,1.1.2.20,1.1.2.21

Mathieu Bouchard matju at users.sourceforge.net
Fri Jun 29 00:56:55 CEST 2007


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

Modified Files:
      Tag: desiredata
	builtins.c 
Log Message:
cleanup of [list]


Index: builtins.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/builtins.c,v
retrieving revision 1.1.2.20
retrieving revision 1.1.2.21
diff -C2 -d -r1.1.2.20 -r1.1.2.21
*** builtins.c	28 Jun 2007 16:46:24 -0000	1.1.2.20
--- builtins.c	28 Jun 2007 22:56:53 -0000	1.1.2.21
***************
*** 674,689 ****
  static void alist_toatoms(t_binbuf *x, t_atom *to) {for (size_t i=0; i<x->n; i++) to[i] = x->v[i];}
  
  t_class *list_append_class;
! struct t_list_append : t_object {
!     t_binbuf *alist;
! };
  static t_pd *list_append_new(t_symbol *s, int argc, t_atom *argv) {
      t_list_append *x = (t_list_append *)pd_new(list_append_class);
!     x->alist = binbuf_new();
!     alist_list(x->alist, 0, argc, argv);
!     outlet_new(x, &s_list);
!     inlet_new(x,x->alist, 0, 0);
      return x;
  }
  static void list_append_list(t_list_append *x, t_symbol *s, int argc, t_atom *argv) {
      t_atom *outv;
--- 674,705 ----
  static void alist_toatoms(t_binbuf *x, t_atom *to) {for (size_t i=0; i<x->n; i++) to[i] = x->v[i];}
  
+ 
+ struct t_list_append : t_object {t_binbuf *alist;};
+ struct t_list_prepend : t_object {t_binbuf *alist;};
+ struct t_list_split : t_object {t_float f;};
+ struct t_list_trim : t_object {};
+ struct t_list_length : t_object {};
+ 
  t_class *list_append_class;
! t_class *list_prepend_class;
! t_class *list_split_class;
! t_class *list_trim_class;
! t_class *list_length_class;
! 
  static t_pd *list_append_new(t_symbol *s, int argc, t_atom *argv) {
      t_list_append *x = (t_list_append *)pd_new(list_append_class);
!     x->alist = binbuf_new(); alist_list(x->alist, 0, argc, argv);
!     outlet_new(x, &s_list); inlet_new(x,x->alist, 0, 0);
      return x;
  }
+ static t_pd *list_prepend_new(t_symbol *s, int argc, t_atom *argv) {
+     t_list_prepend *x = (t_list_prepend *)pd_new(list_prepend_class);
+     x->alist = binbuf_new(); alist_list(x->alist, 0, argc, argv);
+     outlet_new(x, &s_list); inlet_new(x,x->alist,0,0);
+     return x;
+ }
+ static void list_append_free (t_list_append *x)  {binbuf_free(x->alist);}
+ static void list_prepend_free(t_list_prepend *x) {binbuf_free(x->alist);}
+ 
  static void list_append_list(t_list_append *x, t_symbol *s, int argc, t_atom *argv) {
      t_atom *outv;
***************
*** 705,728 ****
      ATOMS_FREEA(outv, outc);
  }
- static void list_append_free(t_list_append *x) {binbuf_free(x->alist);}
- static void list_append_setup() {
-     list_append_class = class_new2("list append",list_append_new,list_append_free,sizeof(t_list_append),0,"*");
-     class_addlist(list_append_class, list_append_list);
-     class_addanything(list_append_class, list_append_anything);
-     class_sethelpsymbol(list_append_class, &s_list);
- }
- 
- t_class *list_prepend_class;
- struct t_list_prepend : t_object {
-     t_binbuf *alist;
- };
- static t_pd *list_prepend_new(t_symbol *s, int argc, t_atom *argv) {
-     t_list_prepend *x = (t_list_prepend *)pd_new(list_prepend_class);
-     x->alist = binbuf_new();
-     alist_list(x->alist, 0, argc, argv);
-     outlet_new(x, &s_list);
-     inlet_new(x,x->alist,0,0);
-     return x;
- }
  static void list_prepend_list(t_list_prepend *x, t_symbol *s, int argc, t_atom *argv) {
      t_atom *outv;
--- 721,724 ----
***************
*** 744,759 ****
      ATOMS_FREEA(outv, outc);
  }
- static void list_prepend_free(t_list_prepend *x) {binbuf_free(x->alist);}
- static void list_prepend_setup() {
-     list_prepend_class = class_new2("list prepend",list_prepend_new,list_prepend_free,sizeof(t_list_prepend),0,"*");
-     class_addlist(list_prepend_class, list_prepend_list);
-     class_addanything(list_prepend_class, list_prepend_anything);
-     class_sethelpsymbol(list_prepend_class, &s_list);
- }
- 
- t_class *list_split_class;
- struct t_list_split : t_object {
-     t_float f;
- };
  static t_pd *list_split_new(t_floatarg f) {
      t_list_split *x = (t_list_split *)pd_new(list_split_class);
--- 740,743 ----
***************
*** 781,793 ****
      ATOMS_FREEA(outv, argc+1);
  }
- static void list_split_setup() {
-     list_split_class = class_new2("list split",list_split_new,0,sizeof(t_list_split),0,"F");
-     class_addlist(list_split_class, list_split_list);
-     class_addanything(list_split_class, list_split_anything);
-     class_sethelpsymbol(list_split_class, &s_list);
- }
  
- t_class *list_trim_class;
- struct t_list_trim : t_object {};
  static t_pd *list_trim_new() {
      t_list_trim *x = (t_list_trim *)pd_new(list_trim_class);
--- 765,769 ----
***************
*** 802,814 ****
      outlet_anything(x->outlet, s, argc, argv);
  }
- static void list_trim_setup() {
-     list_trim_class = class_new2("list trim",list_trim_new,0,sizeof(t_list_trim),0,"");
-     class_addlist(list_trim_class, list_trim_list);
-     class_addanything(list_trim_class, list_trim_anything);
-     class_sethelpsymbol(list_trim_class, &s_list);
- }
  
- t_class *list_length_class;
- struct t_list_length : t_object {};
  static t_pd *list_length_new() {
      t_list_length *x = (t_list_length *)pd_new(list_length_class);
--- 778,782 ----
***************
*** 822,831 ****
      outlet_float(x->outlet, (float)argc+1);
  }
- static void list_length_setup() {
-     list_length_class = class_new2("list length",list_length_new,0,sizeof(t_list_length),0,"");
-     class_addlist(list_length_class, list_length_list);
-     class_addanything(list_length_class, list_length_anything);
-     class_sethelpsymbol(list_length_class, &s_list);
- }
  
  static void *list_new(t_pd *dummy, t_symbol *s, int argc, t_atom *argv) {
--- 790,793 ----
***************
*** 849,852 ****
--- 811,829 ----
  }
  
+ #define LISTOP(name,argspec,freer) \
+   list_##name##_class = class_new2("list " #name,list_##name##_new,freer,sizeof(t_list_##name),0,argspec); \
+     class_addlist(list_##name##_class, list_##name##_list); \
+     class_addanything(list_##name##_class, list_##name##_anything); \
+     class_sethelpsymbol(list_##name##_class, &s_list);
+ 
+ static void list_setup () {
+     LISTOP(append,"*",list_append_free)
+     LISTOP(prepend,"*",list_prepend_free)
+     LISTOP(split,"F",0)
+     LISTOP(trim,"",0)
+     LISTOP(length,"",0)
+     class_addcreator2("list",list_new,"*");
+ }
+ 
  /* miller's "homebrew" linear-congruential algorithm */
  static t_class *random_class;
***************
*** 986,992 ****
  
  static t_class *realtime_class;
! struct t_realtime : t_object {
!     double setrealtime;
! };
  static void realtime_bang(t_realtime *x) {
      x->setrealtime = sys_getrealtime();
--- 963,967 ----
  
  static t_class *realtime_class;
! struct t_realtime : t_object {double setrealtime;};
  static void realtime_bang(t_realtime *x) {
      x->setrealtime = sys_getrealtime();
***************
*** 1218,1224 ****
  
  static t_class *pdint_class;
! struct t_pdint : t_object {
!     t_float f;
! };
  static void *pdint_new(t_floatarg f) {
      t_pdint *x = (t_pdint *)pd_new(pdint_class);
--- 1193,1197 ----
  
  static t_class *pdint_class;
! struct t_pdint : t_object {t_float f;};
  static void *pdint_new(t_floatarg f) {
      t_pdint *x = (t_pdint *)pd_new(pdint_class);
***************
*** 1238,1244 ****
  
  static t_class *pdfloat_class;
! struct t_pdfloat : t_object {
!     t_float f;
! };
  static void *pdfloat_new(t_pd *dummy, t_float f) {
      t_pdfloat *x = (t_pdfloat *)pd_new(pdfloat_class);
--- 1211,1215 ----
  
  static t_class *pdfloat_class;
! struct t_pdfloat : t_object {t_float f;};
  static void *pdfloat_new(t_pd *dummy, t_float f) {
      t_pdfloat *x = (t_pdfloat *)pd_new(pdfloat_class);
***************
*** 1260,1266 ****
  
  static t_class *pdsymbol_class;
! struct t_pdsymbol : t_object {
!     t_symbol *s;
! };
  static void *pdsymbol_new(t_pd *dummy, t_symbol *s) {
      t_pdsymbol *x = (t_pdsymbol *)pd_new(pdsymbol_class);
--- 1231,1235 ----
  
  static t_class *pdsymbol_class;
! struct t_pdsymbol : t_object {t_symbol *s;};
  static void *pdsymbol_new(t_pd *dummy, t_symbol *s) {
      t_pdsymbol *x = (t_pdsymbol *)pd_new(pdsymbol_class);
***************
*** 3107,3110 ****
--- 3076,3080 ----
  }
  
+ 
  void builtins_setup() {
      t_symbol *s = gensym("acoustics.pd");
***************
*** 3179,3188 ****
      class_addlist(binbuf_class, alist_list);
      class_addanything(binbuf_class, alist_anything);
!     list_append_setup();
!     list_prepend_setup();
!     list_split_setup();
!     list_trim_setup();
!     list_length_setup();
!     class_addcreator2("list",list_new,"*");
      arithmetic_setup();
      midi_setup();
--- 3149,3153 ----
      class_addlist(binbuf_class, alist_list);
      class_addanything(binbuf_class, alist_anything);
!     list_setup();
      arithmetic_setup();
      midi_setup();





More information about the Pd-cvs mailing list