[PD-cvs] pd/src kernel.c,1.1.2.48,1.1.2.49

Mathieu Bouchard matju at users.sourceforge.net
Wed Jul 11 21:39:12 CEST 2007


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

Modified Files:
      Tag: desiredata
	kernel.c 
Log Message:
cleanup


Index: kernel.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/kernel.c,v
retrieving revision 1.1.2.48
retrieving revision 1.1.2.49
diff -C2 -d -r1.1.2.48 -r1.1.2.49
*** kernel.c	11 Jul 2007 19:04:50 -0000	1.1.2.48
--- kernel.c	11 Jul 2007 19:39:10 -0000	1.1.2.49
***************
*** 29,34 ****
  #endif
  
! #define a_float  a_w.w_float
! #define a_symbol a_w.w_symbol
  
  /* T.Grill - bit alignment for signal vectors (must be a multiple of 8!) */
--- 29,35 ----
  #endif
  
! #define a_float    a_w.w_float
! #define a_symbol   a_w.w_symbol
! #define a_gpointer a_w.w_gpointer
  
  /* T.Grill - bit alignment for signal vectors (must be a multiple of 8!) */
***************
*** 650,658 ****
      if (!argc) return;
      for (count = argc-1, ap = argv+1; ip && count--; ap++, ip = ip->next) {
!         if      (ap->a_type == A_POINTER) pd_pointer(ip,ap->a_w.w_gpointer);
          else if (ap->a_type == A_FLOAT)     pd_float(ip,ap->a_float);
          else                               pd_symbol(ip,ap->a_symbol);
      }
!     if      (argv->a_type == A_POINTER) pd_pointer(x, argv->a_w.w_gpointer);
      else if (argv->a_type == A_FLOAT)     pd_float(x, argv->a_float);
      else                                 pd_symbol(x, argv->a_symbol);
--- 651,659 ----
      if (!argc) return;
      for (count = argc-1, ap = argv+1; ip && count--; ap++, ip = ip->next) {
!         if      (ap->a_type == A_POINTER) pd_pointer(ip,ap->a_gpointer);
          else if (ap->a_type == A_FLOAT)     pd_float(ip,ap->a_float);
          else                               pd_symbol(ip,ap->a_symbol);
      }
!     if      (argv->a_type == A_POINTER) pd_pointer(x, argv->a_gpointer);
      else if (argv->a_type == A_FLOAT)     pd_float(x, argv->a_float);
      else                                 pd_symbol(x, argv->a_symbol);
***************
*** 1460,1464 ****
                  else {
                      if (argv->a_type!=A_POINTER) goto badarg;
!                     *ap = (t_int)(argv->a_w.w_gpointer);
                      argc--;
                      argv++;
--- 1461,1465 ----
                  else {
                      if (argv->a_type!=A_POINTER) goto badarg;
!                     *ap = (t_int)(argv->a_gpointer);
                      argc--;
                      argv++;
***************
*** 1526,1530 ****
      int nargs = 0;
      char *fp = fmt;
- 
      va_start(ap, fmt);
      while (1) {
--- 1527,1530 ----
***************
*** 1551,1561 ****
      if (argc) {
          t_atomtype t = argv->a_type;
!         if (t == A_SYMBOL) pd_typedmess(x, argv->a_symbol, argc-1, argv+1);
!         else if (t == A_POINTER) {
!             if (argc == 1) pd_pointer(x, argv->a_w.w_gpointer); else pd_list(x, &s_list, argc, argv);
!         }
! 	else if (t == A_FLOAT) {
!             if (argc == 1)   pd_float(x, argv->a_float);    else pd_list(x, &s_list, argc, argv);
!         }
          else bug("pd_forwardmess");
      }
--- 1551,1557 ----
      if (argc) {
          t_atomtype t = argv->a_type;
!         if      (t == A_SYMBOL)   pd_typedmess(x, argv->a_symbol, argc-1, argv+1);
!         else if (t == A_POINTER) {if (argc==1) pd_pointer(x, argv->a_gpointer); else pd_list(x, &s_list, argc, argv);}
! 	else if (t == A_FLOAT)   {if (argc==1) pd_float(  x, argv->a_float);    else pd_list(x, &s_list, argc, argv);}
          else bug("pd_forwardmess");
      }
***************
*** 1793,1798 ****
      char string[MAXPDSTRING];
      t_atom *ap = x->v;
!     int indx;
!     for (indx = x->n; indx--; ap++) {
          if ((ap->a_type == A_SEMI || ap->a_type == A_COMMA) && length && buf[length-1] == ' ') length--;
          atom_string(ap, string, MAXPDSTRING);
--- 1789,1793 ----
      char string[MAXPDSTRING];
      t_atom *ap = x->v;
!     for (int i=x->n; i--; ap++) {
          if ((ap->a_type == A_SEMI || ap->a_type == A_COMMA) && length && buf[length-1] == ' ') length--;
          atom_string(ap, string, MAXPDSTRING);
***************
*** 1904,1916 ****
  
  void binbuf_restore(t_binbuf *x, int argc, t_atom *argv) {
!     int newsize = x->n + argc, i;
!     t_atom *ap;
!     ap = (t_atom *)realloc(x->v,(newsize+1)*sizeof(*x->v));
!     if (!ap) {
!         error("binbuf_addmessage: out of space");
!         return;
!     }
      x->v = ap;
!     for (ap = x->v + x->n, i = argc; i--; ap++) {
          if (argv->a_type == A_SYMBOL) {
              char *str = argv->a_symbol->name, *str2;
--- 1899,1908 ----
  
  void binbuf_restore(t_binbuf *x, int argc, t_atom *argv) {
!     int newsize = x->n + argc;
!     t_atom *ap = (t_atom *)realloc(x->v,(newsize+1)*sizeof(*x->v));
!     if (!ap) {error("binbuf_addmessage: out of space"); return;}
      x->v = ap;
!     ap = x->v + x->n;
!     for (int i = argc; i--; ap++) {
          if (argv->a_type == A_SYMBOL) {
              char *str = argv->a_symbol->name, *str2;
***************
*** 1937,1941 ****
  }
  
- 
  #define MSTACKSIZE 2048
  
--- 1929,1932 ----
***************
*** 2005,2009 ****
      char buf2[MAXPDSTRING];
      char*str=s->name;
-     char*substr;
      int next=0, i=MAXPDSTRING;
      t_atom dollarnull;
--- 1996,1999 ----
***************
*** 2011,2019 ****
      while(i--)buf2[i]=0;
      /* JMZ: currently, a symbol is detected to be A_DOLLSYM if it starts with '$'
!      * the leading $ is stripped and the rest stored in "s"
!      * i would suggest to NOT strip the leading $
!      * and make everything a A_DOLLSYM that contains(!) a $
!      * whenever this happened, enable this code */
!     substr=strchr(str, '$');
      if(!substr || substr-str >= MAXPDSTRING) return s;
      strncat(buf2, str, (substr-str));
--- 2001,2007 ----
      while(i--)buf2[i]=0;
      /* JMZ: currently, a symbol is detected to be A_DOLLSYM if it starts with '$'
!      * the leading $ is stripped and the rest stored in "s". i would suggest to NOT strip the leading $
!      * and make everything a A_DOLLSYM that contains(!) a $ whenever this happened, enable this code */
!     char *substr=strchr(str, '$');
      if(!substr || substr-str >= MAXPDSTRING) return s;
      strncat(buf2, str, (substr-str));
***************
*** 2029,2033 ****
  	str+=next;
  	substr=strchr(str, '$');
! 	if(substr){
  	  strncat(buf2, str, (substr-str));
  	  str=substr+1;
--- 2017,2021 ----
  	str+=next;
  	substr=strchr(str, '$');
! 	if(substr) {
  	  strncat(buf2, str, (substr-str));
  	  str=substr+1;
***************
*** 2128,2133 ****
                      error("%s: argument number out of range", at->a_symbol->name);
                      SETSYMBOL(msp, at->a_symbol);
!                 }
!                 else SETSYMBOL(msp, s9);
                  break;
              default:
--- 2116,2120 ----
                      error("%s: argument number out of range", at->a_symbol->name);
                      SETSYMBOL(msp, at->a_symbol);
!                 } else SETSYMBOL(msp, s9);
                  break;
              default:
***************
*** 2143,2153 ****
          if (nargs) {
              switch (stackwas->a_type) {
!             case A_SYMBOL:
!                 typedmess(target, stackwas->a_symbol, nargs-1, stackwas+1);
!                 break;
!             case A_FLOAT:
!                 if (nargs == 1) pd_float(target, stackwas->a_float);
!                 else pd_list(target, 0, nargs, stackwas);
!                 break;
              default: {}
              }
--- 2130,2135 ----
          if (nargs) {
              switch (stackwas->a_type) {
!             case A_SYMBOL: typedmess(target, stackwas->a_symbol, nargs-1, stackwas+1); break;
!             case A_FLOAT:  if (nargs == 1) pd_float(target, stackwas->a_float); else pd_list(target, 0, nargs, stackwas); break;
              default: {}
              }
***************
*** 2310,2314 ****
      for (nextindex = 0; nextindex < n; ) {
          int endmess, natom;
-         char *first, *second;
          for (endmess = nextindex; endmess < n && vec[endmess].a_type != A_SEMI; endmess++) {}
          if (endmess == n) break;
--- 2292,2295 ----
***************
*** 2321,2326 ****
          if (natom > MAXSTACK-10) natom = MAXSTACK-10;
          nextmess = vec + nextindex;
!         first = nextmess->a_symbol->name;
!         second = (nextmess+1)->a_symbol->name;
          if (maxtopd) { /* case 1: importing a ".pat" file into Pd. */
              /* dollar signs in file translate to symbols */
--- 2302,2307 ----
          if (natom > MAXSTACK-10) natom = MAXSTACK-10;
          nextmess = vec + nextindex;
!         char *first  =  nextmess   ->a_symbol->name;
!         char *second = (nextmess+1)->a_symbol->name;
          if (maxtopd) { /* case 1: importing a ".pat" file into Pd. */
              /* dollar signs in file translate to symbols */
***************
*** 2345,2350 ****
                      stackdepth++;
                      nobj = 0;
!                     binbuf_addv(newb,"ttfffff;","#N","canvas", GETF(2), GETF(3),
!                             GETF(4)-GETF(2), GETF(5)-GETF(3), 10.);
                  }
              }
--- 2326,2330 ----
                      stackdepth++;
                      nobj = 0;
!                     binbuf_addv(newb,"ttfffff;","#N","canvas", GETF(2), GETF(3), GETF(4)-GETF(2), GETF(5)-GETF(3), 10.);
                  }
              }
***************
*** 2367,2372 ****
                      if (classname == gensym("trigger") || classname == gensym("t")) {
                          for (i = 7; i < natom; i++)
!                             if (nextmess[i].a_type == A_SYMBOL &&
!                                 nextmess[i].a_symbol == gensym("i"))
                                      nextmess[i].a_symbol = gensym("f");
                      }
--- 2347,2351 ----
                      if (classname == gensym("trigger") || classname == gensym("t")) {
                          for (i = 7; i < natom; i++)
!                             if (nextmess[i].a_type == A_SYMBOL && nextmess[i].a_symbol == gensym("i"))
                                      nextmess[i].a_symbol = gensym("f");
                      }
***************
*** 2407,2416 ****
                      nobj++;
                  } else if (!strcmp(second, "inlet")) {
!                     binbuf_addv(newb,"ttfft;","#X","obj",GETF(2),GETF(3),
!                     	(char *)(natom > 5 ? "inlet~" : "inlet"));
                      nobj++;
                  } else if (!strcmp(second, "outlet")) {
!                     binbuf_addv(newb,"ttfft;","#X","obj", GETF(2), GETF(3),
!                         (char *)(natom > 5 ? "outlet~" : "outlet"));
                      nobj++;
                  } else if (!strcmp(second, "user")) {
--- 2386,2393 ----
                      nobj++;
                  } else if (!strcmp(second, "inlet")) {
!                     binbuf_addv(newb,"ttfft;","#X","obj",GETF(2),GETF(3), natom > 5 ? "inlet~" : "inlet");
                      nobj++;
                  } else if (!strcmp(second, "outlet")) {
!                     binbuf_addv(newb,"ttfft;","#X","obj",GETF(2),GETF(3), natom > 5 ? "outlet~" : "outlet");
                      nobj++;
                  } else if (!strcmp(second, "user")) {
***************
*** 2418,2423 ****
                      nobj++;
                  } else if (!strcmp(second, "connect") || !strcmp(second, "fasten")) {
!                     binbuf_addv(newb,"ttffff;","#X","connect",
!                         nobj-GETF(2)-1, GETF(3), nobj-GETF(4)-1, GETF(5));
                  }
              }
--- 2395,2399 ----
                      nobj++;
                  } else if (!strcmp(second, "connect") || !strcmp(second, "fasten")) {
!                     binbuf_addv(newb,"ttffff;","#X","connect", nobj-GETF(2)-1, GETF(3), nobj-GETF(4)-1, GETF(5));
                  }
              }
***************
*** 2445,2486 ****
                  } else if (!strcmp(second, "obj")) {
                      t_symbol *classname = atom_getsymbolarg(4, natom, nextmess);
!                     if (classname == gensym("inlet"))
!                         binbuf_addv(newb,"ttfff;","#P","inlet", GETF(2), GETF(3), 15.);
!                     else if (classname == gensym("inlet~"))
!                         binbuf_addv(newb,"ttffff;","#P","inlet", GETF(2), GETF(3), 15., 1.);
!                     else if (classname == gensym("outlet"))
!                         binbuf_addv(newb,"ttfff;","#P","outlet", GETF(2), GETF(3), 15.);
!                     else if (classname == gensym("outlet~"))
!                         binbuf_addv(newb,"ttffff;","#P","outlet", GETF(2), GETF(3), 15., 1.);
!                     else if (classname == gensym("bng"))
!                         binbuf_addv(newb,"ttffff;","#P","button", GETF(2), GETF(3), GETF(5), 0.);
!                     else if (classname == gensym("tgl"))
!                         binbuf_addv(newb,"ttffff;","#P","toggle", GETF(2), GETF(3), GETF(5), 0.);
!                     else if (classname == gensym("vsl"))
!                         binbuf_addv(newb,"ttffffff;","#P","slider", GETF(2), GETF(3), GETF(5), GETF(6),
!                             (GETF(8)-GETF(7)) / (GETF(6)==1?1:GETF(6)-1), GETF(7));
                      else {
!                         SETSYMBOL(outmess, gensym("#P"));
!                         SETSYMBOL(outmess + 1, gensym("newex"));
!                         outmess[2] = nextmess[2];
!                         outmess[3] = nextmess[3];
!                         SETFLOAT(outmess + 4, 50);
!                         SETFLOAT(outmess + 5, 1);
!                         for (i = 4; i < natom; i++) outmess[i+2] = nextmess[i];
!                         SETSEMI(outmess + natom + 2);
!                         binbuf_add(newb, natom + 3, outmess);
                      }
                      nobj++;
                  } else if (!strcmp(second, "msg") || !strcmp(second, "text")) {
!                     SETSYMBOL(outmess, gensym("#P"));
!                     SETSYMBOL(outmess + 1, gensym((char *)(strcmp(second, "msg") ? "comment" : "message")));
!                     outmess[2] = nextmess[2];
!                     outmess[3] = nextmess[3];
!                     SETFLOAT(outmess + 4, 50);
!                     SETFLOAT(outmess + 5, 1);
!                     for (i = 4; i < natom; i++)
!                         outmess[i+2] = nextmess[i];
!                     SETSEMI(outmess + natom + 2);
!                     binbuf_add(newb, natom + 3, outmess);
                      nobj++;
                  } else if (!strcmp(second, "floatatom")) {
--- 2421,2444 ----
                  } else if (!strcmp(second, "obj")) {
                      t_symbol *classname = atom_getsymbolarg(4, natom, nextmess);
!                     if      (classname == gensym("inlet"))    binbuf_addv(newb,"ttfff;","#P","inlet", GETF(2), GETF(3), 15.);
!                     else if (classname == gensym("inlet~"))   binbuf_addv(newb,"ttffff;","#P","inlet", GETF(2), GETF(3), 15., 1.);
!                     else if (classname == gensym("outlet"))   binbuf_addv(newb,"ttfff;","#P","outlet", GETF(2), GETF(3), 15.);
!                     else if (classname == gensym("outlet~"))  binbuf_addv(newb,"ttffff;","#P","outlet", GETF(2), GETF(3), 15., 1.);
!                     else if (classname == gensym("bng"))      binbuf_addv(newb,"ttffff;","#P","button", GETF(2), GETF(3), GETF(5), 0.);
!                     else if (classname == gensym("tgl"))      binbuf_addv(newb,"ttffff;","#P","toggle", GETF(2), GETF(3), GETF(5), 0.);
!                     else if (classname == gensym("vsl"))      binbuf_addv(newb,"ttffffff;","#P","slider", 
!                     	GETF(2), GETF(3), GETF(5), GETF(6), (GETF(8)-GETF(7)) / (GETF(6)==1?1:GETF(6)-1), GETF(7));
                      else {
!                     	binbuf_addv(newb,"ttffff","#P","newex", GETF(2), GETF(3), 50., 1.);
!                         for (int i=4; i<natom; i++) outmess[i-4] = nextmess[i];
!                         binbuf_add(newb, natom-4, outmess);
!                         binbuf_addv(newb,";");
                      }
                      nobj++;
                  } else if (!strcmp(second, "msg") || !strcmp(second, "text")) {
!                     binbuf_addv(newb,"ttffff","#P",strcmp(second, "msg") ? "comment" : "message",GETF(2),GETF(3),50.,1.);
!                     for (int i=4; i<natom; i++) outmess[i-4] = nextmess[i];
!                     binbuf_add(newb, natom-4, outmess);
!                     binbuf_addv(newb,";");
                      nobj++;
                  } else if (!strcmp(second, "floatatom")) {
***************
*** 2488,2493 ****
                      nobj++;
                  } else if (!strcmp(second, "connect")) {
!                     binbuf_addv(newb, "ttffff;", "#P", "connect",
!                         nobj-GETF(2)-1, GETF(3), nobj-GETF(4)-1, GETF(5));
                  }
              }
--- 2446,2450 ----
                      nobj++;
                  } else if (!strcmp(second, "connect")) {
!                     binbuf_addv(newb, "ttffff;", "#P", "connect", nobj-GETF(2)-1, GETF(3), nobj-GETF(4)-1, GETF(5));
                  }
              }





More information about the Pd-cvs mailing list