[PD-cvs] externals/mrpeach/str str.c,1.1,1.2

Martin Peach mrpeach at users.sourceforge.net
Sun Feb 11 18:01:47 CET 2007


Update of /cvsroot/pure-data/externals/mrpeach/str
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29872

Modified Files:
	str.c 
Log Message:
Modified str.c to build a dummy object if pd is not patched for string type.


Index: str.c
===================================================================
RCS file: /cvsroot/pure-data/externals/mrpeach/str/str.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** str.c	28 Jan 2007 21:21:59 -0000	1.1
--- str.c	11 Feb 2007 17:01:45 -0000	1.2
***************
*** 1,5 ****
! /* str.c by Martin Peach, started 20061227 */
  /* version 20070101 no more resizing memory */
- /* The str object uses the t_string type */
  #include <stdio.h>
  #include <stdlib.h>
--- 1,4 ----
! /* str.c MP 20061227 */
  /* version 20070101 no more resizing memory */
  #include <stdio.h>
  #include <stdlib.h>
***************
*** 8,14 ****
  #include "m_pd.h"
  
! #ifndef t_string
! #error "str needs t_string support in pd source"
! #endif
  
  typedef enum
--- 7,36 ----
  #include "m_pd.h"
  
! #ifndef PD_STRINGS /* PD_STRINGS is not defined in m_pd.h: No PD string support: Make a dummy str object */
! typedef struct _str
! {
!     t_object        x_obj;
! } t_str;
! static t_class *str_class;
! 
! void str_setup(void);
! static void *str_new(t_symbol *s, int argc, t_atom *argv);
! 
! static void *str_new(t_symbol *s, int argc, t_atom *argv)
! {
!     t_str           *x;
! 
!     x = (t_str *)pd_new(str_class);
!     if (x == NULL) return (x);
!     post("This str is a dummy str.");
!     return (x);
! }
! 
! void str_setup(void)
! {
!     str_class = class_new(gensym("str"), (t_newmethod)str_new, 0, sizeof(t_str), 0, 0);
! }
! #else //ifndef PD_STRINGS
! /* Make a _real_ str object: */
  
  typedef enum
***************
*** 53,63 ****
  } t_str;
  
! /*
! * typedef struct _string //pointer to a string
! * {
! *     unsigned long s_length; // length of string in bytes
! *     unsigned char *s_data; // pointer to 1st byte of string
! * } t_string;
! */
  
  static t_class *str_class;
--- 75,83 ----
  } t_str;
  
! //typedef struct _string /* pointer to a string */
! //{
! //   unsigned long s_length; /* length of string in bytes */
! //   unsigned char *s_data; /* pointer to 1st byte of string */
! //} t_string;
  
  static t_class *str_class;
***************
*** 322,331 ****
      limit = (dest->s_length < x->x_buf.s_length)? dest->s_length: x->x_buf.s_length;
      if (limit > x->x_buf_end) limit = x->x_buf_end;/* normally the case */
! /*    post("str_buf_to_string: limit %lu", limit); */
      for (i = 0; i < limit; ++i)
      {
          dest->s_data[i] = x->x_buf.s_data[i];
      }
! /*    post("str_buf_to_string: new length %lu", dest->s_length); */
      return;
  }
--- 342,351 ----
      limit = (dest->s_length < x->x_buf.s_length)? dest->s_length: x->x_buf.s_length;
      if (limit > x->x_buf_end) limit = x->x_buf_end;/* normally the case */
! //    post("str_buf_to_string: limit %lu", limit);
      for (i = 0; i < limit; ++i)
      {
          dest->s_data[i] = x->x_buf.s_data[i];
      }
! //    post("str_buf_to_string: new length %lu", dest->s_length);
      return;
  }
***************
*** 456,460 ****
  static void str_anything(t_str *x, t_symbol *s, int argc, t_atom *argv)
  {
! /*    post("str_anything"); */
      x->x_buf_end = sprintf((char *)x->x_buf.s_data, "%s", s->s_name); /* the selector is just another word... */
      str_list_to_buf(x, argv, argc);
--- 476,480 ----
  static void str_anything(t_str *x, t_symbol *s, int argc, t_atom *argv)
  {
! //    post("str_anything");
      x->x_buf_end = sprintf((char *)x->x_buf.s_data, "%s", s->s_name); /* the selector is just another word... */
      str_list_to_buf(x, argv, argc);
***************
*** 467,471 ****
  static void str_list(t_str *x, t_symbol *s, int argc, t_atom *argv)
  {
! /*    post("str_list"); */
      x->x_buf_end = 0L;
      str_list_to_buf(x, argv, argc);
--- 487,491 ----
  static void str_list(t_str *x, t_symbol *s, int argc, t_atom *argv)
  {
! //    post("str_list");
      x->x_buf_end = 0L;
      str_list_to_buf(x, argv, argc);
***************
*** 478,482 ****
  static void str_symbol(t_str *x, t_symbol *s)
  {
! /*    post("str_symbol");*/
      x->x_buf_end = sprintf((char *)x->x_buf.s_data, "%s", s->s_name);
      x->x_string_in1_end = x->x_buf_end;
--- 498,502 ----
  static void str_symbol(t_str *x, t_symbol *s)
  {
! //    post("str_symbol");
      x->x_buf_end = sprintf((char *)x->x_buf.s_data, "%s", s->s_name);
      x->x_string_in1_end = x->x_buf_end;
***************
*** 490,494 ****
      x->x_buf_end = 0L;
  
! /*    post("str_float");*/
      str_float_to_buf(x, f);
      x->x_string_in1_end = x->x_buf_end;
--- 510,514 ----
      x->x_buf_end = 0L;
  
! //    post("str_float");
      str_float_to_buf(x, f);
      x->x_string_in1_end = x->x_buf_end;
***************
*** 500,504 ****
  static void str_bang(t_str *x)
  {
! /*    post("str_bang");*/
      if((x->x_function == add) && (x->x_string_in2_end != 0))str_do_out3(x);
      else str_do_string(x);
--- 520,524 ----
  static void str_bang(t_str *x)
  {
! //    post("str_bang");
      if((x->x_function == add) && (x->x_string_in2_end != 0))str_do_out3(x);
      else str_do_string(x);
***************
*** 512,516 ****
      size_t  true_length = x->x_string_in1.s_length;
      x->x_string_in1.s_length = x->x_string_in1_end;
! /*    post("str_do_out0: x->x_string_in1.s_data[0] = %d", x->x_string_in1.s_data[0]);*/
      outlet_string(x->x_outlet_1, &x->x_string_in1);
      x->x_string_in1.s_length = true_length;
--- 532,536 ----
      size_t  true_length = x->x_string_in1.s_length;
      x->x_string_in1.s_length = x->x_string_in1_end;
! //    post("str_do_out0: x->x_string_in1.s_data[0] = %d", x->x_string_in1.s_data[0]);
      outlet_string(x->x_outlet_1, &x->x_string_in1);
      x->x_string_in1.s_length = true_length;
***************
*** 522,526 ****
     size_t  true_length = x->x_string_out1.s_length;
      x->x_string_out1.s_length = x->x_string_out1_end;
! /*    post("str_do_out1: x->x_string_out1.s_data[0] = %d", x->x_string_out1.s_data[0]);*/
      outlet_string(x->x_outlet_1, &x->x_string_out1);
      x->x_string_out1.s_length = true_length;
--- 542,546 ----
     size_t  true_length = x->x_string_out1.s_length;
      x->x_string_out1.s_length = x->x_string_out1_end;
! //    post("str_do_out1: x->x_string_out1.s_data[0] = %d", x->x_string_out1.s_data[0]);
      outlet_string(x->x_outlet_1, &x->x_string_out1);
      x->x_string_out1.s_length = true_length;
***************
*** 532,536 ****
      size_t  true_length = x->x_string_out2.s_length;
      x->x_string_out2.s_length = x->x_string_out2_end;
! /*    post("str_do_out2: x->x_string_out2.s_data[0] = %d", x->x_string_out2.s_data[0]);*/
      outlet_string(x->x_outlet_2, &x->x_string_out2);
      x->x_string_out2.s_length = true_length;
--- 552,556 ----
      size_t  true_length = x->x_string_out2.s_length;
      x->x_string_out2.s_length = x->x_string_out2_end;
! //    post("str_do_out2: x->x_string_out2.s_data[0] = %d", x->x_string_out2.s_data[0]);
      outlet_string(x->x_outlet_2, &x->x_string_out2);
      x->x_string_out2.s_length = true_length;
***************
*** 619,623 ****
  static void str_free(t_str *x)
  {
! /*    post("str_free");*/
      freebytes(x->x_string_out1.s_data, x->x_string_out1.s_length);
      freebytes(x->x_string_out2.s_data, x->x_string_out2.s_length);
--- 639,643 ----
  static void str_free(t_str *x)
  {
! //    post("str_free");
      freebytes(x->x_string_out1.s_data, x->x_string_out1.s_length);
      freebytes(x->x_string_out2.s_data, x->x_string_out2.s_length);
***************
*** 669,673 ****
              {
                  x->x_function = i;
! /*                post("str_new: x_function is %s", str_function_names[x->x_function]);*/
                  next = 1;
                  if ((x->x_function == nsplit) || (x->x_function == csplit))
--- 689,693 ----
              {
                  x->x_function = i;
! //                post("str_new: x_function is %s", str_function_names[x->x_function]);
                  next = 1;
                  if ((x->x_function == nsplit) || (x->x_function == csplit))
***************
*** 724,727 ****
--- 744,748 ----
      class_addmethod(str_class, (t_method)str_set_second, gensym(""), A_STRING, 0);
  }
+ #endif // ifndef PD_STRINGS
  /* end str.c */
  





More information about the Pd-cvs mailing list