[PD-cvs] externals/zexy/src msgfile.c,1.14,1.15

IOhannes m zmölnig zmoelnig at users.sourceforge.net
Tue Oct 10 17:04:57 CEST 2006


Update of /cvsroot/pure-data/externals/zexy/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11851

Modified Files:
	msgfile.c 
Log Message:
use pd_error() to make errors findable;
changed behaviour of "read" message (no more appending of file to current buffer)
added "read2" message (appends file to current buffer == old "read" behaviour)


Index: msgfile.c
===================================================================
RCS file: /cvsroot/pure-data/externals/zexy/src/msgfile.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** msgfile.c	5 Jul 2006 15:14:50 -0000	1.14
--- msgfile.c	10 Oct 2006 15:04:55 -0000	1.15
***************
*** 287,291 ****
  static void msgfile_delete(t_msgfile *x, t_symbol *s, int ac, t_atom *av)
  {
-   ZEXY_USEVAR(s);
    if (ac==1) {
      int pos = atom_getfloat(av);
--- 287,290 ----
***************
*** 313,317 ****
  static void msgfile_add(t_msgfile *x, t_symbol *s, int ac, t_atom *av)
  {
-   ZEXY_USEVAR(s);
    msgfile_end(x);
    add_currentnode(x);
--- 312,315 ----
***************
*** 320,324 ****
  static void msgfile_add2(t_msgfile *x, t_symbol *s, int ac, t_atom *av)
  {
-   ZEXY_USEVAR(s);
    msgfile_end(x);
    if (x->current->previous) x->current = x->current->previous;
--- 318,321 ----
***************
*** 328,332 ****
  static void msgfile_append(t_msgfile *x, t_symbol *s, int ac, t_atom *av)
  {
-   ZEXY_USEVAR(s);
    add_currentnode(x);
    write_currentnode(x, ac, av);
--- 325,328 ----
***************
*** 340,344 ****
  {
    t_msglist *cur = x->current;
-   ZEXY_USEVAR(s);
    insert_currentnode(x);
    write_currentnode(x, ac, av);
--- 336,339 ----
***************
*** 348,352 ****
  {
    t_msglist *cur = x->current;
-   ZEXY_USEVAR(s);
    if ((x->current) && (x->current->previous)) x->current = x->current->previous;
    write_currentnode(x, ac, av);
--- 343,346 ----
***************
*** 362,366 ****
  static void msgfile_replace(t_msgfile *x, t_symbol *s, int ac, t_atom *av)
  {
-   ZEXY_USEVAR(s);
    freebytes(x->current->thislist, sizeof(x->current->thislist));
    x->current->thislist = 0;
--- 356,359 ----
***************
*** 520,524 ****
  }
  
! static void msgfile_read(t_msgfile *x, t_symbol *filename, t_symbol *format)
  {
    int rmode = 0;
--- 513,517 ----
  }
  
! static void msgfile_read2(t_msgfile *x, t_symbol *filename, t_symbol *format)
  {
    int rmode = 0;
***************
*** 546,550 ****
  
      if((fd=open(filename->s_name, rmode)) < 0) {
!       error("%s: can't open in %s", filename->s_name, dirname);
        return;
      }
--- 539,543 ----
  
      if((fd=open(filename->s_name, rmode)) < 0) {
!       pd_error(x, "%s: can't open in %s", filename->s_name, dirname);
        return;
      }
***************
*** 561,565 ****
      dollarmode=1;
    } else if (*format->s_name)
!     error("msgfile_read: unknown flag: %s", format->s_name);
  
    switch (mode) {
--- 554,558 ----
      dollarmode=1;
    } else if (*format->s_name)
!     pd_error(x, "msgfile_read: unknown flag: %s", format->s_name);
  
    switch (mode) {
***************
*** 580,584 ****
    if ((length = lseek(fd, 0, SEEK_END)) < 0 || lseek(fd, 0,SEEK_SET) < 0
        || !(readbuf = t_getbytes(length))) {
!     error("msgfile_read: unable to lseek %s", filnam);
      close(fd);
      return;
--- 573,577 ----
    if ((length = lseek(fd, 0, SEEK_END)) < 0 || lseek(fd, 0,SEEK_SET) < 0
        || !(readbuf = t_getbytes(length))) {
!     pd_error(x, "msgfile_read: unable to lseek %s", filnam);
      close(fd);
      return;
***************
*** 587,591 ****
    /* read */
    if ((readlength = read(fd, readbuf, length)) < length) {
!     error("msgfile_read: unable to read %s", filnam);
      close(fd);
      t_freebytes(readbuf, length);
--- 580,584 ----
    /* read */
    if ((readlength = read(fd, readbuf, length)) < length) {
!     pd_error(x, "msgfile_read: unable to read %s", filnam);
      close(fd);
      t_freebytes(readbuf, length);
***************
*** 609,613 ****
    while (readlength--) {
      if(pos>=length+MSGFILE_HEADROOM){
!       error("msgfile: read error (headroom %d too small!)", MSGFILE_HEADROOM);
        goto read_error;
        break;
--- 602,606 ----
    while (readlength--) {
      if(pos>=length+MSGFILE_HEADROOM){
!       pd_error(x, "msgfile: read error (headroom %d too small!)", MSGFILE_HEADROOM);
        goto read_error;
        break;
***************
*** 639,642 ****
--- 632,640 ----
    t_freebytes(charbinbuf, length+MSGFILE_HEADROOM);
  }
+ static void msgfile_read(t_msgfile *x, t_symbol *filename, t_symbol *format)
+ {
+   msgfile_clear(x);
+   msgfile_read2(x, filename, format);
+ }
  
  static void msgfile_write(t_msgfile *x, t_symbol *filename, t_symbol *format)
***************
*** 669,683 ****
  		      buf, MAXPDSTRING);
  
!   if(gensym("cr")==format) {
!     mode = CR_MODE;
!   } else if(gensym("csv")==format) {
!     mode = CSV_MODE;
!   } else if(gensym("pd")==format) {
!     mode = PD_MODE;
!   } else if(gensym("$$")==format) {
!     mode = PD_MODE;
!     dollarmode=1;
!   } else if(format&&format->s_name) {
!     error("msgfile_write: ignoring unknown flag: %s", format->s_name);
    }
   
--- 667,683 ----
  		      buf, MAXPDSTRING);
  
!   if(format&&gensym("")!=format) {
!     if(gensym("cr")==format) {
!       mode = CR_MODE;
!     } else if(gensym("csv")==format) {
!       mode = CSV_MODE;
!     } else if(gensym("pd")==format) {
!       mode = PD_MODE;
!     } else if(gensym("$$")==format) {
!       mode = PD_MODE;
!       dollarmode=1;
!     } else if(format&&format->s_name) {
!       pd_error(x, "msgfile_write: ignoring unknown flag: %s", format->s_name);
!     }
    }
   
***************
*** 706,710 ****
      else if ((*dumtext==';') && (dumtext[1]=='\n'))
        *dumtext = eol;
!     else if(dollarmode && (*dumtext=='$') && (dumtext[1]=='$'))
        *dumtext='\\';
      dumtext++;
--- 706,710 ----
      else if ((*dumtext==';') && (dumtext[1]=='\n'))
        *dumtext = eol;
!     else if(dollarmode && (*dumtext=='$') && (dumtext[1]=='$')) /* only works with pd<0.40 */
        *dumtext='\\';
      dumtext++;
***************
*** 714,722 ****
    sys_bashfilename(filename->s_name, filnam);
    if (!(f = fopen(filnam, "w"))) {
!     error("msgfile : failed to open %s", filnam);
    } else {
    /* write */
      if (fwrite(mytext, textlen*sizeof(char), 1, f) < 1) {
!       error("msgfile : failed to write %s", filnam);
      }
    }
--- 714,722 ----
    sys_bashfilename(filename->s_name, filnam);
    if (!(f = fopen(filnam, "w"))) {
!     pd_error(x, "msgfile : failed to open %s", filnam);
    } else {
    /* write */
      if (fwrite(mytext, textlen*sizeof(char), 1, f) < 1) {
!       pd_error(x, "msgfile : failed to write %s", filnam);
      }
    }
***************
*** 729,733 ****
  static void msgfile_help(t_msgfile *x)
  {
-   ZEXY_USEVAR(x);
    post("\n%c msgfile\t:: handle and store files of lists", HEARTSYMBOL);
    post("goto <n>\t: goto line <n>"
--- 729,732 ----
***************
*** 770,793 ****
  {
      t_msgfile *x = (t_msgfile *)pd_new(msgfile_class);
-     ZEXY_USEVAR(s);
  
      /* an empty node indicates the end of our listbuffer */
      x->current = 0;
!     /*
!       x->curent = (t_msglist *)getbytes(sizeof(t_msglist));
!       x->current->n = 0;
!       x->current->thislist = 0;
!       x->current->previous = x->current->next = 0;
!     */
  
      if ((argc==1) && (argv->a_type == A_SYMBOL)) {
!       if (!strcmp(argv->a_w.w_symbol->s_name, "cr")) x->mode = CR_MODE;
!       else if (!strcmp(argv->a_w.w_symbol->s_name, "csv")) x->mode = CSV_MODE;
!       else if (!strcmp(argv->a_w.w_symbol->s_name, "pd")) x->mode = PD_MODE;
        else {
! 	error("msgfile: unknown argument %s", argv->a_w.w_symbol->s_name);
! 	x->mode = PD_MODE;
        }
!     } else x->mode = PD_MODE;
  
      outlet_new(&x->x_obj, &s_list);
--- 769,786 ----
  {
      t_msgfile *x = (t_msgfile *)pd_new(msgfile_class);
  
      /* an empty node indicates the end of our listbuffer */
      x->current = 0;
!     x->mode=PD_MODE; /* that's the default */
  
      if ((argc==1) && (argv->a_type == A_SYMBOL)) {
!       t_symbol*mode=atom_getsymbol(argv);
!       if      (gensym("cr") == mode) x->mode = CR_MODE;
!       else if (gensym("csv")== mode) x->mode = CSV_MODE;
!       else if (gensym("pd") == mode) x->mode = PD_MODE;
        else {
! 	pd_error(x, "msgfile: unknown argument %s", argv->a_w.w_symbol->s_name);
        }
!     }
  
      outlet_new(&x->x_obj, &s_list);
***************
*** 832,835 ****
--- 825,829 ----
  
    class_addmethod(msgfile_class, (t_method)msgfile_read, gensym("read"), A_SYMBOL, A_DEFSYM, 0);
+   class_addmethod(msgfile_class, (t_method)msgfile_read2, gensym("read2"), A_SYMBOL, A_DEFSYM, 0);
    class_addmethod(msgfile_class, (t_method)msgfile_write, gensym("write"), A_SYMBOL, A_DEFSYM, 0);
    class_addmethod(msgfile_class, (t_method)msgfile_print, gensym("print"), 0);





More information about the Pd-cvs mailing list