Update of /cvsroot/pure-data/externals/zexy/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20439
Modified Files: msgfile.c Log Message: increased the headroom for converting the buffer from the text-format to a binbuf-readable one; LATER see how this is done in [textfile]
Index: msgfile.c =================================================================== RCS file: /cvsroot/pure-data/externals/zexy/src/msgfile.c,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** msgfile.c 6 Mar 2007 16:38:54 -0000 1.16 --- msgfile.c 6 Mar 2007 17:33:12 -0000 1.17 *************** *** 532,535 **** --- 532,536 ---- char buf[MAXPDSTRING], *bufptr, *readbuf; char *charbinbuf=NULL, *cbb; + int charbinbuflength=0; char*dirname=canvas_getdir(x->x_canvas)->s_name;
*************** *** 539,543 **** t_binbuf *bbuf = binbuf_new();
- #ifdef __WIN32__ rmode |= O_BINARY; --- 540,543 ---- *************** *** 599,611 ****
# define MSGFILE_HEADROOM 1024
! charbinbuf=(char*)getbytes(length+MSGFILE_HEADROOM); cbb=charbinbuf; ! for(pos=0; pos<length+MSGFILE_HEADROOM; pos++)charbinbuf[pos]=0;
*cbb++=';'; pos=1; while (readlength--) { ! if(pos>=length+MSGFILE_HEADROOM){ pd_error(x, "msgfile: read error (headroom %d too small!)", MSGFILE_HEADROOM); goto read_error; --- 599,613 ----
# define MSGFILE_HEADROOM 1024 + charbinbuflength=2*length+MSGFILE_HEADROOM;
! charbinbuf=(char*)getbytes(charbinbuflength); ! cbb=charbinbuf; ! for(pos=0; pos<charbinbuflength; pos++)charbinbuf[pos]=0;
*cbb++=';'; pos=1; while (readlength--) { ! if(pos>=charbinbuflength){ pd_error(x, "msgfile: read error (headroom %d too small!)", MSGFILE_HEADROOM); goto read_error; *************** *** 627,631 ****
/* convert to binbuf */ ! binbuf_text(bbuf, charbinbuf, length+MSGFILE_HEADROOM); msgfile_binbuf2listbuf(x, bbuf);
--- 629,633 ----
/* convert to binbuf */ ! binbuf_text(bbuf, charbinbuf, charbinbuflength); msgfile_binbuf2listbuf(x, bbuf);
*************** *** 633,637 **** binbuf_free(bbuf); t_freebytes(readbuf, length); ! t_freebytes(charbinbuf, length+MSGFILE_HEADROOM); } static void msgfile_read(t_msgfile *x, t_symbol *filename, t_symbol *format) --- 635,639 ---- binbuf_free(bbuf); t_freebytes(readbuf, length); ! t_freebytes(charbinbuf, charbinbuflength); } static void msgfile_read(t_msgfile *x, t_symbol *filename, t_symbol *format)