[PD-cvs] pd/src desire.h, 1.1.2.49.2.19, 1.1.2.49.2.20 desire.c, 1.1.2.217.2.98, 1.1.2.217.2.99 kernel.c, 1.1.2.18, 1.1.2.19

Mathieu Bouchard matju at users.sourceforge.net
Sun Dec 31 17:39:20 CET 2006


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

Modified Files:
      Tag: desiredata
	desire.h desire.c kernel.c 
Log Message:
introducing pd_eval_text


Index: kernel.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/kernel.c,v
retrieving revision 1.1.2.18
retrieving revision 1.1.2.19
diff -C2 -d -r1.1.2.18 -r1.1.2.19
*** kernel.c	31 Dec 2006 09:14:28 -0000	1.1.2.18
--- kernel.c	31 Dec 2006 16:39:17 -0000	1.1.2.19
***************
*** 1851,1865 ****
  }
  
  void binbuf_text(t_binbuf *x, char *t, size_t size) {
  	char *end=t+size;
  	binbuf_clear(x);
! 	if (0) {
! 		while (t!=end) t=binbuf_text_matju(x,t,end);
! 	} else {
! 		while (t!=end) t=binbuf_text_miller(x,t,end);
! 	}
  	binbuf_capa(x,x->n);
  }
  
  /* convert a binbuf to text; no null termination. */
  void binbuf_gettext(t_binbuf *x, char **bufp, int *lengthp) {
--- 1851,1877 ----
  }
  
+ int sys_syntax = 0;
+ 
  void binbuf_text(t_binbuf *x, char *t, size_t size) {
  	char *end=t+size;
  	binbuf_clear(x);
! 	while (t!=end) t = sys_syntax ? binbuf_text_matju(x,t,end) : binbuf_text_miller(x,t,end);
  	binbuf_capa(x,x->n);
  }
  
+ void pd_eval_text(char *t) {
+ 	t_binbuf *x = binbuf_new();
+ 	char *end = t + strlen(t);
+ 	while (t!=end) {
+ 		t = sys_syntax ? binbuf_text_matju(x,t,end) : binbuf_text_miller(x,t,end);
+ 		if (x->n && x->vec[x->n-1].a_type == A_SEMI) {
+ 			fprintf(stderr,"pd_eval_text semi n=%d\n",x->n);
+ 			binbuf_eval(x,0,0,0);
+ 			binbuf_clear(x);
+ 		}
+ 	}
+ 	binbuf_free(x);
+ }
+ 
  /* convert a binbuf to text; no null termination. */
  void binbuf_gettext(t_binbuf *x, char **bufp, int *lengthp) {
***************
*** 2256,2269 ****
  int binbuf_read(t_binbuf *b, char *filename, char *dirname, int crflag) {
      long length;
-     int fd;
-     int readret;
      char *buf;
      char namebuf[MAXPDSTRING];
      if (*dirname) sprintf(namebuf,"%s/%s",dirname,filename);
      else          sprintf(namebuf,   "%s",        filename);
!     if ((fd = binbuf_doopen(namebuf, 0)) < 0) {
!         error("open: %s: %s",namebuf,strerror(errno));
!         return 1;
!     }
      if ((length = lseek(fd, 0, SEEK_END)) < 0 || lseek(fd, 0, SEEK_SET) < 0 
          || !(buf = (char *)t_getbytes(length))) {
--- 2268,2277 ----
  int binbuf_read(t_binbuf *b, char *filename, char *dirname, int crflag) {
      long length;
      char *buf;
      char namebuf[MAXPDSTRING];
      if (*dirname) sprintf(namebuf,"%s/%s",dirname,filename);
      else          sprintf(namebuf,   "%s",        filename);
!     int fd = binbuf_doopen(namebuf, 0);
!     if (fd < 0) {error("open: %s: %s",namebuf,strerror(errno)); return 1;}
      if ((length = lseek(fd, 0, SEEK_END)) < 0 || lseek(fd, 0, SEEK_SET) < 0 
          || !(buf = (char *)t_getbytes(length))) {
***************
*** 2272,2276 ****
          return 1;
      }
!     if ((readret = read(fd, buf, length)) < length) {
          error("read (%d %ld) -> %d; %s: %s\n", fd, length, readret, namebuf, strerror(errno));
          close(fd);
--- 2280,2285 ----
          return 1;
      }
!     int readret = read(fd, buf, length);
!     if (readret < length) {
          error("read (%d %ld) -> %d; %s: %s\n", fd, length, readret, namebuf, strerror(errno));
          close(fd);
***************
*** 2278,2286 ****
          return 1;
      }
!         /* optionally map carriage return to semicolon */
!     if (crflag) {
!         int i;
!         for (i = 0; i < length; i++) if (buf[i] == '\n') buf[i] = ';';
!     }
      binbuf_text(b, buf, length);
      t_freebytes(buf, length);
--- 2287,2291 ----
          return 1;
      }
!     if (crflag) for (int i=0; i<length; i++) if (buf[i]=='\n') buf[i] = ';';
      binbuf_text(b, buf, length);
      t_freebytes(buf, length);
***************
*** 2289,2312 ****
  }
  
!     /* read a binbuf from a file, via the search patch of a canvas */
  int binbuf_read_via_canvas(t_binbuf *b, char *filename, t_canvas *canvas, int crflag) {
-     int filedesc;
      char buf[MAXPDSTRING], *bufptr;
!     if ((filedesc = canvas_open(canvas, filename, "", buf, &bufptr, MAXPDSTRING, 0)) < 0) {
!         error("%s: can't open", filename);
!         return 1;
!     } else close(filedesc);
      return !!binbuf_read(b, bufptr, buf, crflag);
  }
  
!     /* old version */
  int binbuf_read_via_path(t_binbuf *b, char *filename, char *dirname, int crflag) {
-     int filedesc;
      char buf[MAXPDSTRING], *bufptr;
!     if ((filedesc = open_via_path(dirname, filename, "", buf, &bufptr, MAXPDSTRING, 0)) < 0) {
!         error("%s: can't open", filename);
!         return 1;
!     }
!     else close (filedesc);
      return !!binbuf_read(b, bufptr, buf, crflag);
  }
--- 2294,2312 ----
  }
  
! /* read a binbuf from a file, via the search patch of a canvas */
  int binbuf_read_via_canvas(t_binbuf *b, char *filename, t_canvas *canvas, int crflag) {
      char buf[MAXPDSTRING], *bufptr;
!     int filedesc = canvas_open(canvas, filename, "", buf, &bufptr, MAXPDSTRING, 0);
!     if (filedesc<0) {error("%s: can't open", filename); return 1;}
!     close(filedesc);
      return !!binbuf_read(b, bufptr, buf, crflag);
  }
  
! /* old version */
  int binbuf_read_via_path(t_binbuf *b, char *filename, char *dirname, int crflag) {
      char buf[MAXPDSTRING], *bufptr;
!     int filedesc = open_via_path(dirname, filename, "", buf, &bufptr, MAXPDSTRING, 0);
!     if (filedesc<0) {error("%s: can't open", filename); return 1;}
!     close(filedesc);
      return !!binbuf_read(b, bufptr, buf, crflag);
  }

Index: desire.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.h,v
retrieving revision 1.1.2.49.2.19
retrieving revision 1.1.2.49.2.20
diff -C2 -d -r1.1.2.49.2.19 -r1.1.2.49.2.20
*** desire.h	31 Dec 2006 07:26:33 -0000	1.1.2.49.2.19
--- desire.h	31 Dec 2006 16:39:15 -0000	1.1.2.49.2.20
***************
*** 266,271 ****
  #define PLOTSTYLE_BEZ 2
  
! /* from m_pd.c */
  EXTERN void gobj_save(t_gobj *x, t_binbuf *b);
  
  /* from desire.c */
--- 266,273 ----
  #define PLOTSTYLE_BEZ 2
  
! /* from kernel.c */
  EXTERN void gobj_save(t_gobj *x, t_binbuf *b);
+ EXTERN void pd_eval_text(char *t);
+ EXTERN int sys_syntax;
  
  /* from desire.c */

Index: desire.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/desire.c,v
retrieving revision 1.1.2.217.2.98
retrieving revision 1.1.2.217.2.99
diff -C2 -d -r1.1.2.217.2.98 -r1.1.2.217.2.99
*** desire.c	31 Dec 2006 08:05:55 -0000	1.1.2.217.2.98
--- desire.c	31 Dec 2006 16:39:15 -0000	1.1.2.217.2.99
***************
*** 1437,1450 ****
  
  static t_pd *garray_arraytemplatecanvas;
- static char garray_arraytemplatefile[] = "\
- #N canvas 0 0 458 153 10;\n\
- #X obj 43 31 struct _float_array array z float float style\n\
- float linewidth float color;\n\
- #X obj 43 70 plot z color linewidth 0 0 1 style;\n\
- ";
- static char garray_floattemplatefile[] = "\
- #N canvas 0 0 458 153 10;\n\
- #X obj 39 26 struct float float y;\n\
- ";
  
  /* create invisible, built-in canvases to determine the templates for floats
--- 1437,1440 ----
***************
*** 1456,1465 ****
      t_binbuf *b = binbuf_new();
      glob_setfilename(0, gensym("_float"), gensym("."));
!     binbuf_text(b, garray_floattemplatefile, strlen(garray_floattemplatefile));
!     binbuf_eval(b, 0, 0, 0);
      vmess(s__X.s_thing, gensym("pop"), "i", 0);
      glob_setfilename(0, gensym("_float_array"), gensym("."));
!     binbuf_text(b, garray_arraytemplatefile, strlen(garray_arraytemplatefile));
!     binbuf_eval(b, 0, 0, 0);
      garray_arraytemplatecanvas = s__X.s_thing;
      vmess(s__X.s_thing, gensym("pop"), "i", 0);
--- 1446,1458 ----
      t_binbuf *b = binbuf_new();
      glob_setfilename(0, gensym("_float"), gensym("."));
!     pd_eval_text(
! 	"#N canvas 0 0 458 153 10;\n"
! 	"#X obj 43 31 struct _float_array array z float float style float linewidth float color;\n"
! 	"#X obj 43 70 plot z color linewidth 0 0 1 style;\n");
      vmess(s__X.s_thing, gensym("pop"), "i", 0);
      glob_setfilename(0, gensym("_float_array"), gensym("."));
!     pd_eval_text(
! 	"#N canvas 0 0 458 153 10;\n"
! 	"#X obj 39 26 struct float float y;\n");
      garray_arraytemplatecanvas = s__X.s_thing;
      vmess(s__X.s_thing, gensym("pop"), "i", 0);
***************
*** 6476,6479 ****
--- 6469,6473 ----
  		binbuf_addv(b, "ttii", "#X","restore", (t_int)x->x, (t_int)x->y);
  		if (x->binbuf) {
+ 			pd_print(x,"pd_upload");
  			binbuf_addbinbuf(b, x->binbuf);
  		} else {





More information about the Pd-cvs mailing list