[PD-cvs] pd/src configure.in, 1.21.2.1, 1.21.2.1.4.1 d_array.c, 1.6.2.1, 1.6.2.1.4.1 d_soundfile.c, 1.12, 1.12.6.1 g_all_guis.c, 1.9, 1.9.6.1 g_all_guis.h, 1.5, 1.5.10.1 g_bang.c, 1.5, 1.5.6.1 g_canvas.c, 1.18, 1.18.6.1 g_editor.c, 1.20, 1.20.6.1 g_graph.c, 1.10, 1.10.6.1 g_hdial.c, 1.7, 1.7.6.1 g_hslider.c, 1.6, 1.6.6.1 g_mycanvas.c, 1.5, 1.5.20.1 g_numbox.c, 1.8, 1.8.6.1 g_rtext.c, 1.6, 1.6.6.1 g_scalar.c, 1.8, 1.8.10.1 g_template.c, 1.18, 1.18.6.1 g_text.c, 1.15, 1.15.6.1 g_toggle.c, 1.5, 1.5.6.1 g_vdial.c, 1.6, 1.6.6.1 g_vslider.c, 1.6, 1.6.6.1 g_vumeter.c, 1.5, 1.5.10.1 m_atom.c, 1.4, 1.4.6.1 m_binbuf.c, 1.13, 1.13.6.1 m_class.c, 1.7, 1.7.6.1 m_imp.h, 1.4, 1.4.10.1 m_obj.c, 1.4, 1.4.10.1 m_pd.c, 1.4, 1.4.10.1 m_pd.h, 1.16.2.2, 1.16.2.2.2.1 makefile.dependencies, 1.10, 1.10.10.1 makefile.in, 1.14, 1.14.6.1 s_entry.c, 1.3, 1.3.12.1 s_file.c, 1.9, 1.9.6.1 s_inter.c, 1.18.2.1, 1.18.2.1.2.1 s_loader.c, 1.13.2.1, 1.13.2.1.4.1 s_main.c, 1.28, 1.28.6.1 s_print.c, 1.3, 1.3.10.1 s_stuff.h, 1.10, 1.10.6.1 u_main.tk, 1.25, 1.25.6.1 x_connective.c, 1.9, 1.9.6.1 x_midi.c, 1.4, 1.4.6.1 x_misc.c, 1.3, 1.3.6.1

Hans-Christoph Steiner eighthave at users.sourceforge.net
Sun Nov 4 19:00:22 CET 2007


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

Modified Files:
      Tag: branch-v0-40-extended
	configure.in d_array.c d_soundfile.c g_all_guis.c g_all_guis.h 
	g_bang.c g_canvas.c g_editor.c g_graph.c g_hdial.c g_hslider.c 
	g_mycanvas.c g_numbox.c g_rtext.c g_scalar.c g_template.c 
	g_text.c g_toggle.c g_vdial.c g_vslider.c g_vumeter.c m_atom.c 
	m_binbuf.c m_class.c m_imp.h m_obj.c m_pd.c m_pd.h 
	makefile.dependencies makefile.in s_entry.c s_file.c s_inter.c 
	s_loader.c s_main.c s_print.c s_stuff.h u_main.tk 
	x_connective.c x_midi.c x_misc.c 
Log Message:
checked in all patches from packages/patches in order to start working from the branch

Index: m_binbuf.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_binbuf.c,v
retrieving revision 1.13
retrieving revision 1.13.6.1
diff -C2 -d -r1.13 -r1.13.6.1
*** m_binbuf.c	4 Oct 2006 19:35:06 -0000	1.13
--- m_binbuf.c	4 Nov 2007 18:00:20 -0000	1.13.6.1
***************
*** 673,676 ****
--- 673,680 ----
                  typedmess(target, stackwas->a_w.w_symbol, nargs-1, stackwas+1);
                  break;
+             case A_STRING: /* MP 20070106 string type */
+                 if (nargs == 1) pd_string(target, stackwas->a_w.w_string);
+                 else pd_list(target, 0, nargs, stackwas);
+                 break;
              case A_FLOAT:
                  if (nargs == 1) pd_float(target, stackwas->a_w.w_float);

Index: u_main.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
retrieving revision 1.25
retrieving revision 1.25.6.1
diff -C2 -d -r1.25 -r1.25.6.1
*** u_main.tk	9 Oct 2006 04:36:12 -0000	1.25
--- u_main.tk	4 Nov 2007 18:00:20 -0000	1.25.6.1
***************
*** 1,13 ****
  #!/usr/bin/wish
- 
- # set pd_nt (bad name) 0 for unix, 1 for microsoft, and 2 for Mac OSX.
- if { $tcl_platform(platform) == "windows" }  {
-          set pd_nt 1
- } elseif { $tcl_platform(os) == "Darwin" } {  
-          set pd_nt 2
- } else { 
-          set pd_nt 0
- }        
[...1128 lines suppressed...]
      if [winfo exists $name.popup] {destroy $name.popup}
      menu $name.popup -tearoff false
+     if {$pd_nt == 1} {
+ 	$name.popup configure -font menuFont
+     }
  #    puts stderr [concat $devlist ]
      for {set x 0} {$x<[llength $devlist]} {incr x} {
***************
*** 3799,3804 ****
--- 3963,3972 ----
  # create a popup menu
  proc midi_popup {name buttonname varname devlist} {
+     global pd_nt
      if [winfo exists $name.popup] {destroy $name.popup}
      menu $name.popup -tearoff false
+     if {$pd_nt == 1} {
+ 	$name.popup configure -font menuFont
+     }
  #    puts stderr [concat $devlist ]
      for {set x 0} {$x<[llength $devlist]} {incr x} {

Index: s_stuff.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_stuff.h,v
retrieving revision 1.10
retrieving revision 1.10.6.1
diff -C2 -d -r1.10 -r1.10.6.1
*** s_stuff.h	15 Aug 2006 04:54:15 -0000	1.10
--- s_stuff.h	4 Nov 2007 18:00:20 -0000	1.10.6.1
***************
*** 53,56 ****
--- 53,58 ----
  /* s_loader.c */
  int sys_load_lib(t_canvas *canvas, char *filename);
+ typedef int (*loader_t)(t_canvas *canvas, char *classname);
+ EXTERN void sys_register_loader(loader_t loader);
  
  /* s_audio.c */

Index: g_rtext.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_rtext.c,v
retrieving revision 1.6
retrieving revision 1.6.6.1
diff -C2 -d -r1.6 -r1.6.6.1
*** g_rtext.c	11 Aug 2006 20:09:07 -0000	1.6
--- g_rtext.c	4 Nov 2007 18:00:20 -0000	1.6.6.1
***************
*** 16,23 ****
  #include "t_tk.h"
  
! #define LMARGIN 1
! #define RMARGIN 1
! #define TMARGIN 2
! #define BMARGIN 2
  
  #define SEND_FIRST 1
--- 16,29 ----
  #include "t_tk.h"
  
! #define LMARGIN 2
! #define RMARGIN 2
! /* for some reason, it draws text 1 pixel lower on Mac OS X */
! #ifdef __APPLE__
! #define TMARGIN 3
! #define BMARGIN 1
! #else
! #define TMARGIN 4
! #define BMARGIN 0
! #endif
  
  #define SEND_FIRST 1
***************
*** 243,247 ****
              outchars, tempbuf, sys_hostfontsize(font),
              (glist_isselected(x->x_glist,
!                 &x->x_glist->gl_gobj)? "blue" : "black"));
      else if (action == SEND_UPDATE)
      {
--- 249,253 ----
              outchars, tempbuf, sys_hostfontsize(font),
              (glist_isselected(x->x_glist,
!                 &x->x_glist->gl_gobj)? "$select_color" : "$text_color"));
      else if (action == SEND_UPDATE)
      {
***************
*** 379,383 ****
      t_canvas *canvas = glist_getcanvas(glist);
      sys_vgui(".x%lx.c itemconfigure %s -fill %s\n", canvas, 
!         x->x_tag, (state? "blue" : "black"));
      canvas_editing = canvas;
  }
--- 385,389 ----
      t_canvas *canvas = glist_getcanvas(glist);
      sys_vgui(".x%lx.c itemconfigure %s -fill %s\n", canvas, 
!         x->x_tag, (state? "$select_color" : "$text_color"));
      canvas_editing = canvas;
  }
***************
*** 440,444 ****
          x->x_bufsize = newsize;
  
!         if (n == '\n' || isprint(n))
          {
              newsize = x->x_bufsize+1;
--- 446,452 ----
          x->x_bufsize = newsize;
  
! /* at guenter's suggestion, this gets european characters working */
! /*         if (n == '\n' || isprint(n)) */
!         if ((n == '\n' || n > 31) && n != 127)
          {
              newsize = x->x_bufsize+1;

Index: m_imp.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_imp.h,v
retrieving revision 1.4
retrieving revision 1.4.10.1
diff -C2 -d -r1.4 -r1.4.10.1
*** m_imp.h	19 Aug 2005 23:28:03 -0000	1.4
--- m_imp.h	4 Nov 2007 18:00:20 -0000	1.4.10.1
***************
*** 26,29 ****
--- 26,30 ----
  typedef void (*t_floatmethod)(t_pd *x, t_float f);
  typedef void (*t_symbolmethod)(t_pd *x, t_symbol *s);
+ typedef void (*t_stringmethod)(t_pd *x, t_string *st); /* MP20061226 string type */
  typedef void (*t_listmethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv);
  typedef void (*t_anymethod)(t_pd *x, t_symbol *s, int argc, t_atom *argv);
***************
*** 42,45 ****
--- 43,47 ----
      t_floatmethod c_floatmethod;
      t_symbolmethod c_symbolmethod;
+     t_stringmethod c_stringmethod;  /* MP20061226 string type */
      t_listmethod c_listmethod;
      t_anymethod c_anymethod;

Index: m_class.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_class.c,v
retrieving revision 1.7
retrieving revision 1.7.6.1
diff -C2 -d -r1.7 -r1.7.6.1
*** m_class.c	15 Aug 2006 04:54:15 -0000	1.7
--- m_class.c	4 Nov 2007 18:00:20 -0000	1.7.6.1
***************
*** 21,24 ****
--- 21,25 ----
  static t_symbol *class_loadsym;     /* name under which an extern is invoked */
  static void pd_defaultfloat(t_pd *x, t_float f);
+ static void pd_defaultstring(t_pd *x, t_string *st); /* MP20061226 string type */
  static void pd_defaultlist(t_pd *x, t_symbol *s, int argc, t_atom *argv);
  t_pd pd_objectmaker;    /* factory for creating "object" boxes */
***************
*** 39,42 ****
--- 40,48 ----
  }
  
+ static void pd_defaultstring(t_pd *x, t_string *st) /* MP 20061226 string type */
+ { /* for now just reject it, later convert to symbol/float/list */
+     pd_error(x, "%s: no method for string so far...", (*x)->c_name->s_name);
+ }
+ 
  static void pd_defaultpointer(t_pd *x, t_gpointer *gp)
  {
***************
*** 206,209 ****
--- 212,216 ----
      c->c_floatmethod = pd_defaultfloat;
      c->c_symbolmethod = pd_defaultsymbol;
+     c->c_stringmethod = pd_defaultstring; /* MP 20061226 string type */
      c->c_listmethod = pd_defaultlist;
      c->c_anymethod = pd_defaultanything;
***************
*** 289,292 ****
--- 296,305 ----
          class_addsymbol(c, fn);
      }
+     else if (sel == &s_string) /* MP 20070106 string type */
+     {
+         post("class_addmethod: %p", fn);
+         if (argtype != A_STRING || va_arg(ap, t_atomtype)) goto phooey;
+         class_addstring(c, fn);
+     }
      else if (sel == &s_list)
      {
***************
*** 347,350 ****
--- 360,368 ----
  }
  
+ void class_addstring(t_class *c, t_method fn) /* MP 20061226 string type */
+ {
+     c->c_stringmethod = (t_stringmethod)fn;
+ }
+ 
  void class_addlist(t_class *c, t_method fn)
  {
***************
*** 510,513 ****
--- 528,533 ----
  
  void canvas_popabstraction(t_canvas *x);
+ void canvas_initbang(t_canvas *x);
+ 
  extern t_pd *newest;
  
***************
*** 544,550 ****
--- 564,572 ----
              canvas_setargs(argc, argv);
              binbuf_evalfile(gensym(nameptr), gensym(dirbuf));
+             canvas_initbang((t_canvas *)(s__X.s_thing));/* JMZ*/
              if (s__X.s_thing != current)
                  canvas_popabstraction((t_canvas *)(s__X.s_thing));
              canvas_setargs(0, 0);
+ 
          }
          else error("%s: can't load abstraction within itself\n", s->s_name);
***************
*** 565,571 ****
  t_symbol  s_y =         {"y", 0, 0};
  t_symbol  s_ =          {"", 0, 0};
  
  static t_symbol *symlist[] = { &s_pointer, &s_float, &s_symbol, &s_bang,
!     &s_list, &s_anything, &s_signal, &s__N, &s__X, &s_x, &s_y, &s_};
  
  void mess_init(void)
--- 587,594 ----
  t_symbol  s_y =         {"y", 0, 0};
  t_symbol  s_ =          {"", 0, 0};
+ t_symbol  s_string =    {"string", 0, 0}; /* MP 20061223 string type */
  
  static t_symbol *symlist[] = { &s_pointer, &s_float, &s_symbol, &s_bang,
!     &s_list, &s_anything, &s_signal, &s__N, &s__X, &s_x, &s_y, &s_, &s_string}; /* MP 20061223 added s_string */
  
  void mess_init(void)
***************
*** 655,658 ****
--- 678,688 ----
          return;
      }
+     if (s == &s_string) /* MP 20061226 string type */
+     {
+         /*post("pd_typedmess argc = %d\n", argc);*//* MP 20061226 debug */
+         if (argc == 1) (*c->c_stringmethod)(x, argv->a_w.w_string);
+         else goto badarg;
+         return;
+     }
      for (i = c->c_nmethod, m = c->c_methods; i--; m++)
          if (m->me_name == s)
***************
*** 699,702 ****
--- 729,745 ----
                  dp++;
                  break;
+             case A_STRING:/* MP 20070106 string type */
+                 /*post("pd_typedmess A_STRING");*/
+                 if (!argc) goto badarg;
+                 if (argv->a_type == A_STRING)
+                 {
+                     /*post("argv->a_type == A_STRING, argc = %d, narg= %d", argc, narg);*/
+                     *ap = (t_int)(argv->a_w.w_string);
+                 }
+                 argc--;
+                 argv++;
+                 narg++;
+                 ap++;
+                 break;
              case A_SYMBOL:
                  if (!argc) goto badarg;
***************
*** 773,776 ****
--- 816,823 ----
          case 'f': SETFLOAT(at, va_arg(ap, double)); break;
          case 's': SETSYMBOL(at, va_arg(ap, t_symbol *)); break;
+         case 't':
+             SETSTRING(at, va_arg(ap, t_string *));
+             /*post("pd_vmess: arg[0].a_w.w_string = %p", arg[0].a_w.w_string);*/
+             break; /* MP 20061226 string type */
          case 'i': SETFLOAT(at, va_arg(ap, t_int)); break;       
          case 'p': SETPOINTER(at, va_arg(ap, t_gpointer *)); break;

Index: g_vslider.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_vslider.c,v
retrieving revision 1.6
retrieving revision 1.6.6.1
diff -C2 -d -r1.6 -r1.6.6.1
*** g_vslider.c	8 Sep 2006 23:45:30 -0000	1.6
--- g_vslider.c	4 Nov 2007 18:00:20 -0000	1.6.6.1
***************
*** 60,67 ****
               xpos + x->x_gui.x_w, r, x->x_gui.x_fcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
          sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
--- 60,68 ----
               xpos + x->x_gui.x_w, r, x->x_gui.x_fcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, 
! 			 x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
          sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
***************
*** 123,128 ****
      t_canvas *canvas=glist_getcanvas(glist);
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
--- 124,129 ----
      t_canvas *canvas=glist_getcanvas(glist);
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, 
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
***************
*** 278,282 ****
      iemgui_properties(&x->x_gui, srl);
  
!     sprintf(buf, "pdtk_iemgui_dialog %%s VSLIDER \
              --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \
              -----------output-range:----------- %g bottom: %g top: %d \
--- 279,283 ----
      iemgui_properties(&x->x_gui, srl);
  
!     sprintf(buf, "pdtk_iemgui_dialog %%s |vsl| \
              --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \
              -----------output-range:----------- %g bottom: %g top: %d \
***************
*** 563,567 ****
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, "courier"); }
      if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
      x->x_gui.x_ldx = ldx;
--- 564,568 ----
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, sys_font); }
      if(x->x_gui.x_fsf.x_rcv_able) pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
      x->x_gui.x_ldx = ldx;

Index: g_vumeter.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_vumeter.c,v
retrieving revision 1.5
retrieving revision 1.5.10.1
diff -C2 -d -r1.5 -r1.5.10.1
*** g_vumeter.c	16 Aug 2005 04:06:28 -0000	1.5
--- g_vumeter.c	4 Nov 2007 18:00:20 -0000	1.5.10.1
***************
*** 117,123 ****
          if(((i+2)&3) && (x->x_scale))
              sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!                      -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n",
!                      canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
!                      x->x_gui.x_lcol, x, i);
      }
      if(x->x_scale)
--- 117,124 ----
          if(((i+2)&3) && (x->x_scale))
              sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!                      -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n",
!                      canvas, end, yyy+k3, iemgui_vu_scale_str[i], 
! 					 x->x_gui.x_font, x->x_gui.x_fontsize,
!                      sys_fontweight, x->x_gui.x_lcol, x, i);
      }
      if(x->x_scale)
***************
*** 126,131 ****
          yyy = k4 + k1*(k2-i);
          sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!                  -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n",
!                  canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
                   x->x_gui.x_lcol, x, i);
      }
--- 127,133 ----
          yyy = k4 + k1*(k2-i);
          sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!                  -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n",
!                  canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, 
! 				 x->x_gui.x_fontsize, sys_fontweight,
                   x->x_gui.x_lcol, x, i);
      }
***************
*** 137,144 ****
               mid, ypos+10, x->x_led_size, x->x_gui.x_bcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
      {
--- 139,147 ----
               mid, ypos+10, x->x_led_size, x->x_gui.x_bcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
! 			 x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
      {
***************
*** 275,280 ****
                   x->x_led_size);
          if(((i+2)&3) && (x->x_scale))
!             sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {%s %d bold} -fill #%6.6x\n",
!                      canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
                       x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol);
      }
--- 278,284 ----
                   x->x_led_size);
          if(((i+2)&3) && (x->x_scale))
!             sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} %d %s} -fill #%6.6x\n",
!                      canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, 
! 					 x->x_gui.x_fontsize, sys_fontweight, 
                       x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol);
      }
***************
*** 282,291 ****
      {
          i=IEM_VU_STEPS+1;
!         sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {%s %d bold} -fill #%6.6x\n",
!                  canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
                   x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol);
      }
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
--- 286,296 ----
      {
          i=IEM_VU_STEPS+1;
!         sys_vgui(".x%lx.c itemconfigure %lxSCALE%d -text {%s} -font {{%s} %d %s} -fill #%6.6x\n",
!                  canvas, x, i, iemgui_vu_scale_str[i], x->x_gui.x_font, 
! 				 x->x_gui.x_fontsize, sys_fontweight,
                   x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol);
      }
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
***************
*** 477,490 ****
                  if((i+2)&3)
                      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!                              -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n",
!                              canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
!                              x->x_gui.x_lcol, x, i);
              }
              i=IEM_VU_STEPS+1;
              yyy = k4 + k1*(k2-i);
              sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!                      -font {%s %d bold} -fill #%6.6x -tags %lxSCALE%d\n",
!                      canvas, end, yyy+k3, iemgui_vu_scale_str[i], x->x_gui.x_font, x->x_gui.x_fontsize,
!                      x->x_gui.x_lcol, x, i);
          }
      }
--- 482,497 ----
                  if((i+2)&3)
                      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!                              -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n",
!                              canvas, end, yyy+k3, iemgui_vu_scale_str[i], 
! 							 x->x_gui.x_font, x->x_gui.x_fontsize,
!                              sys_fontweight, x->x_gui.x_lcol, x, i);
              }
              i=IEM_VU_STEPS+1;
              yyy = k4 + k1*(k2-i);
              sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!                      -font {{%s} %d %s} -fill #%6.6x -tags %lxSCALE%d\n",
!                      canvas, end, yyy+k3, iemgui_vu_scale_str[i], 
! 					 x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
!                      sys_fontweight, x->x_gui.x_lcol, x, i);
          }
      }
***************
*** 498,502 ****
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s VU-METER \
              --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \
              empty 0.0 empty 0.0 empty %d \
--- 505,509 ----
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s |vu| \
              --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \
              empty 0.0 empty 0.0 empty %d \
***************
*** 628,632 ****
      int bflcol[]={-66577, -1, -1};
      int w=IEM_GUI_DEFAULTSIZE, h=IEM_VU_STEPS*IEM_VU_DEFAULTSIZE;
!     int ldx=-1, ldy=-8, f=0, fs=8, scale=1;
      int ftbreak=IEM_BNG_DEFAULTBREAKFLASHTIME, fthold=IEM_BNG_DEFAULTHOLDFLASHTIME;
      char str[144];
--- 635,639 ----
      int bflcol[]={-66577, -1, -1};
      int w=IEM_GUI_DEFAULTSIZE, h=IEM_VU_STEPS*IEM_VU_DEFAULTSIZE;
!     int ldx=-1, ldy=-8, f=0, fs=10, scale=1;
      int ftbreak=IEM_BNG_DEFAULTBREAKFLASHTIME, fthold=IEM_BNG_DEFAULTHOLDFLASHTIME;
      char str[144];
***************
*** 668,672 ****
          strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, "courier"); }
      if(x->x_gui.x_fsf.x_rcv_able)
          pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
--- 675,679 ----
          strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, sys_font); }
      if(x->x_gui.x_fsf.x_rcv_able)
          pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);

Index: g_toggle.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_toggle.c,v
retrieving revision 1.5
retrieving revision 1.5.6.1
diff -C2 -d -r1.5 -r1.5.6.1
*** g_toggle.c	8 Sep 2006 23:45:30 -0000	1.5
--- g_toggle.c	4 Nov 2007 18:00:20 -0000	1.5.6.1
***************
*** 62,70 ****
               (x->x_on!=0.0)?x->x_gui.x_fcol:x->x_gui.x_bcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xx+x->x_gui.x_ldx,
               yy+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
          sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
--- 62,71 ----
               (x->x_on!=0.0)?x->x_gui.x_fcol:x->x_gui.x_bcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xx+x->x_gui.x_ldx,
               yy+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
! 			 x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
          sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
***************
*** 121,126 ****
      t_canvas *canvas=glist_getcanvas(glist);
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
--- 122,127 ----
      t_canvas *canvas=glist_getcanvas(glist);
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
***************
*** 226,230 ****
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s TOGGLE \
              ----------dimensions(pix):----------- %d %d size: 0 0 empty \
              -----------non-zero-value:----------- %g value: 0.0 empty %g \
--- 227,231 ----
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s |tgl| \
              ----------dimensions(pix):----------- %d %d size: 0 0 empty \
              -----------non-zero-value:----------- %g value: 0.0 empty %g \
***************
*** 408,412 ****
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, "courier"); }
      x->x_nonzero = (nonzero!=0.0)?nonzero:1.0;
      if(x->x_gui.x_isa.x_loadinit)
--- 409,413 ----
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, sys_font); }
      x->x_nonzero = (nonzero!=0.0)?nonzero:1.0;
      if(x->x_gui.x_isa.x_loadinit)

Index: makefile.dependencies
===================================================================
RCS file: /cvsroot/pure-data/pd/src/Attic/makefile.dependencies,v
retrieving revision 1.10
retrieving revision 1.10.10.1
diff -C2 -d -r1.10 -r1.10.10.1
*** makefile.dependencies	21 Aug 2005 17:46:52 -0000	1.10
--- makefile.dependencies	4 Nov 2007 18:00:20 -0000	1.10.10.1
***************
*** 0 ****
--- 1,1883 ----
+ g_canvas.o: g_canvas.c /usr/include/stdlib.h /usr/include/sys/cdefs.h \
+   /usr/include/_types.h /usr/include/sys/_types.h \
+   /usr/include/machine/_types.h /usr/include/i386/_types.h \
+   /usr/include/sys/wait.h /usr/include/sys/signal.h \
+   /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+   /usr/include/i386/signal.h /usr/include/sys/resource.h \
+   /usr/include/machine/endian.h /usr/include/i386/endian.h \
+   /usr/include/sys/_endian.h \
+   /usr/lib/gcc/i686-apple-darwin8/4.0.1/include/stdint.h \
[...1854 lines suppressed...]
+   /usr/include/mach/thread_switch.h /usr/include/mach/rpc.h \
+   /usr/include/mach/machine/rpc.h /usr/include/mach/i386/rpc.h \
+   /usr/include/mach/mach_error.h /usr/include/mach/error.h \
+   /usr/include/mach/mach_time.h /usr/include/mach/clock.h \
+   ../portmidi/porttime/porttime.h
+ d_fft_mayer.o: d_fft_mayer.c m_pd.h \
+   /usr/lib/gcc/i686-apple-darwin8/4.0.1/include/stddef.h
+ d_fftroutine.o: d_fftroutine.c /usr/include/stdio.h /usr/include/_types.h \
+   /usr/include/sys/_types.h /usr/include/sys/cdefs.h \
+   /usr/include/machine/_types.h /usr/include/i386/_types.h \
+   /usr/include/math.h /usr/include/architecture/i386/math.h \
+   /usr/include/stdlib.h /usr/include/sys/wait.h /usr/include/sys/signal.h \
+   /usr/include/sys/appleapiopts.h /usr/include/machine/signal.h \
+   /usr/include/i386/signal.h /usr/include/sys/resource.h \
+   /usr/include/machine/endian.h /usr/include/i386/endian.h \
+   /usr/include/sys/_endian.h \
+   /usr/lib/gcc/i686-apple-darwin8/4.0.1/include/stdint.h \
+   /usr/include/libkern/OSByteOrder.h \
+   /usr/include/libkern/i386/OSByteOrder.h /usr/include/alloca.h \
+   /usr/include/machine/types.h /usr/include/i386/types.h m_pd.h

Index: s_print.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_print.c,v
retrieving revision 1.3
retrieving revision 1.3.10.1
diff -C2 -d -r1.3 -r1.3.10.1
*** s_print.c	18 May 2005 04:28:51 -0000	1.3
--- s_print.c	4 Nov 2007 18:00:20 -0000	1.3.10.1
***************
*** 78,83 ****
      for (i = 0; i < argc; i++)
      {
!         char buf[80];
!         atom_string(argv+i, buf, 80);
          poststring(buf);
      }
--- 78,83 ----
      for (i = 0; i < argc; i++)
      {
!         char buf[MAXPDSTRING];
!         atom_string(argv+i, buf, MAXPDSTRING);
          poststring(buf);
      }

Index: d_array.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_array.c,v
retrieving revision 1.6.2.1
retrieving revision 1.6.2.1.4.1
diff -C2 -d -r1.6.2.1 -r1.6.2.1.4.1
*** d_array.c	19 Jan 2007 04:30:57 -0000	1.6.2.1
--- d_array.c	4 Nov 2007 18:00:20 -0000	1.6.2.1.4.1
***************
*** 9,12 ****
--- 9,13 ----
  #include "m_pd.h"
  
+ #define ASTRIDE (sizeof(union word)/sizeof(t_sample))
  
  /* ------------------------- tabwrite~ -------------------------- */
***************
*** 53,59 ****
      {
          int nxfer = endphase - phase;
!         float *fp = x->x_vec + phase;
          if (nxfer > n) nxfer = n;
!         phase += nxfer;
          while (nxfer--)
          {
--- 54,60 ----
      {
          int nxfer = endphase - phase;
!         float *fp = x->x_vec + phase*ASTRIDE;
          if (nxfer > n) nxfer = n;
!         phase += nxfer*ASTRIDE;
          while (nxfer--)
          {
***************
*** 61,65 ****
              if (PD_BIGORSMALL(f))
                  f = 0;
!             *fp++ = f;
          }
          if (phase >= endphase)
--- 62,67 ----
              if (PD_BIGORSMALL(f))
                  f = 0;
!             *fp = f;
!             fp += ASTRIDE;
          }
          if (phase >= endphase)
***************
*** 177,187 ****
      
      nxfer = endphase - phase;
!     fp = x->x_vec + phase;
      if (nxfer > n)
          nxfer = n;
      n3 = n - nxfer;
      phase += nxfer;
!     while (nxfer--)
!         *out++ = *fp++;
      if (phase >= endphase)
      {
--- 179,191 ----
      
      nxfer = endphase - phase;
!     fp = x->x_vec + phase*ASTRIDE;
      if (nxfer > n)
          nxfer = n;
      n3 = n - nxfer;
      phase += nxfer;
!     while (nxfer--) {
!         *out++ = *fp;
!         fp += ASTRIDE;
!     }
      if (phase >= endphase)
      {
***************
*** 309,313 ****
          else if (index > maxindex)
              index = maxindex;
!         *out++ = buf[index];
      }
      return (w+5);
--- 313,317 ----
          else if (index > maxindex)
              index = maxindex;
!         *out++ = buf[index* ASTRIDE];
      }
      return (w+5);
***************
*** 426,434 ****
              index = maxindex, frac = 1;
          else frac = findex - index;
!         fp = buf + index;
!         a = fp[-1];
          b = fp[0];
!         c = fp[1];
!         d = fp[2];
          /* if (!i && !(count++ & 1023))
              post("fp = %lx,  shit = %lx,  b = %f",  fp, buf->b_shit,  b); */
--- 430,438 ----
              index = maxindex, frac = 1;
          else frac = findex - index;
!         fp = buf + index* ASTRIDE;
!         a = fp[-1* ASTRIDE];
          b = fp[0];
!         c = fp[1* ASTRIDE];
!         d = fp[2* ASTRIDE];
          /* if (!i && !(count++ & 1023))
              post("fp = %lx,  shit = %lx,  b = %f",  fp, buf->b_shit,  b); */
***************
*** 594,604 ****
          tf.tf_d = dphase;
          dphase += *in++ * conv;
!         addr = tab + (tf.tf_i[HIOFFSET] & mask);
          tf.tf_i[HIOFFSET] = normhipart;
          frac = tf.tf_d - UNITBIT32;
          a = addr[0];
!         b = addr[1];
!         c = addr[2];
!         d = addr[3];
          cminusb = c-b;
          *out++ = b + frac * (
--- 598,608 ----
          tf.tf_d = dphase;
          dphase += *in++ * conv;
!         addr = tab + (tf.tf_i[HIOFFSET] & mask)* ASTRIDE;
          tf.tf_i[HIOFFSET] = normhipart;
          frac = tf.tf_d - UNITBIT32;
          a = addr[0];
!         b = addr[1* ASTRIDE];
!         c = addr[2* ASTRIDE];
!         d = addr[3* ASTRIDE];
          cminusb = c-b;
          *out++ = b + frac * (
***************
*** 721,725 ****
          if (PD_BIGORSMALL(f))
              f = 0;
!          *dest++ = f;
      }
      if (!i--)
--- 725,730 ----
          if (PD_BIGORSMALL(f))
              f = 0;
!          *dest = f;
!          dest +=  ASTRIDE;
      }
      if (!i--)
***************
*** 790,795 ****
      {
          int vecsize = x->x_vecsize;
!         while (vecsize--)
!             *out++ = *from++;
          vecsize = n - x->x_vecsize;
          while (vecsize--)
--- 795,802 ----
      {
          int vecsize = x->x_vecsize;
!         while (vecsize--){
!             *out++ = *from;
!             from +=  ASTRIDE;
!         }
          vecsize = n - x->x_vecsize;
          while (vecsize--)
***************
*** 861,865 ****
          if (n < 0) n = 0;
          else if (n >= npoints) n = npoints - 1;
!         outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n] : 0));
      }
  }
--- 868,872 ----
          if (n < 0) n = 0;
          else if (n >= npoints) n = npoints - 1;
!         outlet_float(x->x_obj.ob_outlet, (npoints ? vec[n*ASTRIDE] : 0));
      }
  }
***************
*** 910,916 ****
          outlet_float(x->x_obj.ob_outlet, 0);
      else if (f <= 1)
!         outlet_float(x->x_obj.ob_outlet, vec[1]);
      else if (f >= npoints - 2)
!         outlet_float(x->x_obj.ob_outlet, vec[npoints - 2]);
      else
      {
--- 917,923 ----
          outlet_float(x->x_obj.ob_outlet, 0);
      else if (f <= 1)
!         outlet_float(x->x_obj.ob_outlet, vec[ 1*ASTRIDE]);
      else if (f >= npoints - 2)
!         outlet_float(x->x_obj.ob_outlet, vec[(npoints - 2)* ASTRIDE]);
      else
      {
***************
*** 919,928 ****
          if (n >= npoints - 2)
              n = npoints - 3;
!         fp = vec + n;
          frac = f - n;
!         a = fp[-1];
!         b = fp[0];
!         c = fp[1];
!         d = fp[2];
          cminusb = c-b;
          outlet_float(x->x_obj.ob_outlet, b + frac * (
--- 926,935 ----
          if (n >= npoints - 2)
              n = npoints - 3;
!         fp = vec + n* ASTRIDE;
          frac = f - n;
!         a = fp[-1*ASTRIDE];
!         b = fp[0*ASTRIDE];
!         c = fp[1*ASTRIDE];
!         d = fp[2*ASTRIDE];
          cminusb = c-b;
          outlet_float(x->x_obj.ob_outlet, b + frac * (
***************
*** 982,986 ****
          else if (n >= vecsize)
              n = vecsize-1;
!         vec[n] = f;
          garray_redraw(a);
      }
--- 989,993 ----
          else if (n >= vecsize)
              n = vecsize-1;
!         vec[n*ASTRIDE] = f;
          garray_redraw(a);
      }

Index: g_template.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_template.c,v
retrieving revision 1.18
retrieving revision 1.18.6.1
diff -C2 -d -r1.18 -r1.18.6.1
*** g_template.c	9 Oct 2006 04:36:12 -0000	1.18
--- g_template.c	4 Nov 2007 18:00:20 -0000	1.18.6.1
***************
*** 2127,2132 ****
          sys_vgui(".x%lx.c create text %d %d -anchor nw -fill %s -text {%s}",
                  glist_getcanvas(glist), xloc, yloc, colorstring, buf);
!         sys_vgui(" -font -*-courier-bold--normal--%d-*",
!             sys_hostfontsize(glist_getfont(glist)));
          sys_vgui(" -tags drawnumber%lx\n", data);
      }
--- 2127,2132 ----
          sys_vgui(".x%lx.c create text %d %d -anchor nw -fill %s -text {%s}",
                  glist_getcanvas(glist), xloc, yloc, colorstring, buf);
!         sys_vgui(" -font {{%s} %d %s}", sys_font,
! 				 sys_hostfontsize(glist_getfont(glist)), sys_fontweight);
          sys_vgui(" -tags drawnumber%lx\n", data);
      }

Index: g_hdial.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_hdial.c,v
retrieving revision 1.7
retrieving revision 1.7.6.1
diff -C2 -d -r1.7 -r1.7.6.1
*** g_hdial.c	8 Sep 2006 23:45:30 -0000	1.7
--- g_hdial.c	4 Nov 2007 18:00:20 -0000	1.7.6.1
***************
*** 74,81 ****
      }
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xx11b+x->x_gui.x_ldx, yy11+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
--- 74,81 ----
      }
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xx11b+x->x_gui.x_ldx, yy11+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
               x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
***************
*** 142,147 ****
      int n=x->x_number, i;
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
--- 142,147 ----
      int n=x->x_number, i;
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
***************
*** 265,269 ****
      if (pd_class(&x->x_gui.x_obj.ob_pd) == hradio_old_class)
          hchange = x->x_change;
!     sprintf(buf, "pdtk_iemgui_dialog %%s hradio \
              ----------dimensions(pix):----------- %d %d size: 0 0 empty \
              empty 0.0 empty 0.0 empty %d \
--- 265,269 ----
      if (pd_class(&x->x_gui.x_obj.ob_pd) == hradio_old_class)
          hchange = x->x_change;
!     sprintf(buf, "pdtk_iemgui_dialog %%s |hradio| \
              ----------dimensions(pix):----------- %d %d size: 0 0 empty \
              empty 0.0 empty 0.0 empty %d \
***************
*** 590,594 ****
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, "courier"); }
      if(num < 1)
          num = 1;
--- 590,594 ----
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, sys_font); }
      if(num < 1)
          num = 1;

Index: m_atom.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_atom.c,v
retrieving revision 1.4
retrieving revision 1.4.6.1
diff -C2 -d -r1.4 -r1.4.6.1
*** m_atom.c	11 Aug 2006 20:09:07 -0000	1.4
--- m_atom.c	4 Nov 2007 18:00:20 -0000	1.4.6.1
***************
*** 29,32 ****
--- 29,40 ----
  }
  
+ t_string *atom_getstring(t_atom *a)  /* MP 20070108 */
+ {
+     static unsigned char c = 0;/* a default string to avoid null pointers. This should be somewhere else...? */
+     static t_string st = {1L, &c};
+     if (a->a_type == A_STRING) return (a->a_w.w_string);
+     else return (&st);
+ }
+ 
  t_symbol *atom_gensym(t_atom *a)  /* this works  better for graph labels */
  {

Index: g_all_guis.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_all_guis.c,v
retrieving revision 1.9
retrieving revision 1.9.6.1
diff -C2 -d -r1.9 -r1.9.6.1
*** g_all_guis.c	11 Aug 2006 20:09:07 -0000	1.9
--- g_all_guis.c	4 Nov 2007 18:00:20 -0000	1.9.6.1
***************
*** 439,443 ****
      {
          f = 0;
!         strcpy(iemgui->x_font, "courier");
      }
      iemgui->x_fsf.x_font_style = f;
--- 439,443 ----
      {
          f = 0;
!         strcpy(iemgui->x_font, sys_font);
      }
      iemgui->x_fsf.x_font_style = f;
***************
*** 447,452 ****
      iemgui->x_fontsize = f;
      if(glist_isvisible(iemgui->x_glist))
!         sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold}\n",
!                  glist_getcanvas(iemgui->x_glist), x, iemgui->x_font, iemgui->x_fontsize);
  }
  
--- 447,453 ----
      iemgui->x_fontsize = f;
      if(glist_isvisible(iemgui->x_glist))
!         sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s}\n",
!                  glist_getcanvas(iemgui->x_glist), x, iemgui->x_font, 
! 				 iemgui->x_fontsize, sys_fontweight);
  }
  
***************
*** 623,627 ****
      {
          f = 0;
!         strcpy(iemgui->x_font, "courier");
      }
      iemgui->x_fsf.x_font_style = f;
--- 624,628 ----
      {
          f = 0;
!         strcpy(iemgui->x_font, sys_font);
      }
      iemgui->x_fsf.x_font_style = f;

Index: makefile.in
===================================================================
RCS file: /cvsroot/pure-data/pd/src/makefile.in,v
retrieving revision 1.14
retrieving revision 1.14.6.1
diff -C2 -d -r1.14 -r1.14.6.1
*** makefile.in	8 Sep 2006 23:45:30 -0000	1.14
--- makefile.in	4 Nov 2007 18:00:20 -0000	1.14.6.1
***************
*** 1,2 ****
--- 1,9 ----
+ # On Mac OS X, this needs to be defined to enable dlopen and weak linking
+ # support.  Its safe on other platforms since gcc only checks this env var on
+ # Apple's gcc.  <hans at at.or.at>
+ ifeq ($(shell uname -s),Darwin)
+ export MACOSX_DEPLOYMENT_TARGET = 10.3
+ endif
+ 
  VPATH = ../obj:./
  OBJ_DIR = ../obj
***************
*** 39,42 ****
--- 46,53 ----
  SYSSRC += @SYSSRC@
  
+ ASIOSRC = @ASIOSRC@
+ 
+ ASIOOBJ = $(ASIOSRC:.cpp=.o)
+ 
  SRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \
      g_scalar.c g_traversal.c g_guiconnect.c g_readwrite.c g_editor.c \
***************
*** 92,95 ****
--- 103,109 ----
  	$(CC) $(CFLAGS) $(GFLAGS) $(GINCLUDE) -c -o $(OBJ_DIR)/$*.o $*.c 
  
+ $(ASIOOBJ): %.o : %.cpp
+ 	$(CXX) $(CFLAGS) $(INCLUDE) -c -o $(OBJ_DIR)/$*.o $*.cpp
+ 
  pd: $(PDEXEC)
  
***************
*** 134,137 ****
--- 148,157 ----
  		../bin/libPdTcl.dylib
  
+ # this is for Windows/MinGW (only?)
+ $(BIN_DIR)/pdtcl.dll: $(GOBJ)
+ 	cd $(BIN_DIR); dllwrap --export-all-symbols --output-def pdtcl.def \
+ 	--output-lib=pdtcl.a --dllname=$(GUINAME) $(OBJ_DIR)/t_tkcmd.o $(LIB) $(GLIB)
+ 	strip --strip-unneeded $(BIN_DIR)/pdtcl.dll
+ 
  externs: 
  	cd ../extra/bonk~;make @EXTERNTARGET@

Index: g_mycanvas.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_mycanvas.c,v
retrieving revision 1.5
retrieving revision 1.5.20.1
diff -C2 -d -r1.5 -r1.5.20.1
*** g_mycanvas.c	6 Sep 2004 20:20:34 -0000	1.5
--- g_mycanvas.c	4 Nov 2007 18:00:20 -0000	1.5.20.1
***************
*** 45,52 ****
               x->x_gui.x_bcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x);
  }
  
--- 45,53 ----
               x->x_gui.x_bcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
! 			 x->x_gui.x_lcol, x);
  }
  
***************
*** 85,90 ****
      sys_vgui(".x%lx.c itemconfigure %lxBASE -outline #%6.6x\n", canvas, x,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_bcol);
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
  }
--- 86,92 ----
      sys_vgui(".x%lx.c itemconfigure %lxBASE -outline #%6.6x\n", canvas, x,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_bcol);
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
! 			 x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
  }
***************
*** 153,157 ****
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s MY_CANVAS \
              ------selectable_dimensions(pix):------ %d %d size: 0.0 0.0 empty \
              ------visible_rectangle(pix)(pix):------ %d width: %d height: %d \
--- 155,159 ----
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s |cnv| \
              ------selectable_dimensions(pix):------ %d %d size: 0.0 0.0 empty \
              ------visible_rectangle(pix)(pix):------ %d width: %d height: %d \
***************
*** 332,336 ****
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, "courier"); }
      if (x->x_gui.x_fsf.x_rcv_able)
          pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
--- 334,338 ----
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, sys_font); }
      if (x->x_gui.x_fsf.x_rcv_able)
          pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);

Index: configure.in
===================================================================
RCS file: /cvsroot/pure-data/pd/src/configure.in,v
retrieving revision 1.21.2.1
retrieving revision 1.21.2.1.4.1
diff -C2 -d -r1.21.2.1 -r1.21.2.1.4.1
*** configure.in	28 Oct 2006 19:16:41 -0000	1.21.2.1
--- configure.in	4 Nov 2007 18:00:19 -0000	1.21.2.1.4.1
***************
*** 21,24 ****
--- 21,25 ----
  AC_SUBST(OSNUMBER)
  AC_SUBST(EXTERNTARGET)
+ AC_SUBST(ASIOSRC)
  
  dnl other defaults
***************
*** 42,45 ****
--- 43,48 ----
  AC_ARG_ENABLE(fftw,   [  --enable-fftw           use FFTW package],
      fftw=$enableval)
+ AC_ARG_ENABLE(fat,		[  --disable-fat    build fat binary on Mac OS X], 
+     fat=$enableval, fat="yes")
  
  dnl Checks for programs.
***************
*** 81,85 ****
  dnl Checking for `pthread_create' function in -pthread
  AC_CHECK_LIB(pthread, pthread_create,PDLIB="$PDLIB -lpthread",
!          echo "pthreads required" || exit 1)
  
  dnl Check for fftw package
--- 84,91 ----
  dnl Checking for `pthread_create' function in -pthread
  AC_CHECK_LIB(pthread, pthread_create,PDLIB="$PDLIB -lpthread",
!     AC_CHECK_LIB(pthreadGC2, pthread_create, PDLIB="$PDLIB -lpthreadGC2",
!         AC_CHECK_LIB(pthreadGC1, pthread_create, PDLIB="$PDLIB -lpthreadGC1",
!             AC_CHECK_LIB(pthreadGC, pthread_create, PDLIB="$PDLIB -lpthreadGC",
!          echo "pthreads required"; exit 1))))
  
  dnl Check for fftw package
***************
*** 119,122 ****
--- 125,133 ----
  if test $foundit == "no";
  then
+     AC_CHECK_HEADER(tcl8.4/tcl.h,
+     	GUIFLAGS="$GUIFLAGS -I/usr/local/include/tcl8.4";foundit=yes,)
+ fi
+ if test $foundit == "no";
+ then
      AC_CHECK_HEADER(tcl8.3/tcl.h,
      	GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.3";foundit=yes,)
***************
*** 130,154 ****
  then
      echo no tcl header found
!     exit -1
  fi
  
! AC_CHECK_LIB(tcl8.7, main,,
!     AC_CHECK_LIB(tcl8.6, main,,
  	AC_CHECK_LIB(tcl8.5, main,,
  	    AC_CHECK_LIB(tcl8.4, main,,
  		AC_CHECK_LIB(tcl8.3, main,,
  		    AC_CHECK_LIB(tcl8.2, main,,
!         		AC_CHECK_LIB(tcl8.0, main,,echo no tcl library found || exit 1)))))))
  
! AC_CHECK_LIB(tk8.7, main,,
!     AC_CHECK_LIB(tk8.6, main,,
  	AC_CHECK_LIB(tk8.5, main,,
  	    AC_CHECK_LIB(tk8.4, main,,
  		AC_CHECK_LIB(tk8.3, main,,
  		    AC_CHECK_LIB(tk8.2, main,,
!         		AC_CHECK_LIB(tk8.0, main,,echo no tk library found || exit 1)))))))
  
  
! if test `uname -s` = Linux;
  then
      dnl Ckecking for ALSA
--- 141,168 ----
  then
      echo no tcl header found
! 	 echo bolding trying without...
! #    exit -1
  fi
  
! AC_CHECK_LIB(tcl85, main,,
  	AC_CHECK_LIB(tcl8.5, main,,
+         AC_CHECK_LIB(tcl84, main,,
  	    AC_CHECK_LIB(tcl8.4, main,,
  		AC_CHECK_LIB(tcl8.3, main,,
  		    AC_CHECK_LIB(tcl8.2, main,,
!         		            AC_CHECK_LIB(tcl8.0, main,,
!                             echo no tcl library found; exit 1)))))))
  
! AC_CHECK_LIB(tk85, main,,
  	AC_CHECK_LIB(tk8.5, main,,
+        AC_CHECK_LIB(tk84, main,,
  	    AC_CHECK_LIB(tk8.4, main,,
  		AC_CHECK_LIB(tk8.3, main,,
  		    AC_CHECK_LIB(tk8.2, main,,
!         		            AC_CHECK_LIB(tk8.0, main,,
!                             echo no tk library found; exit 1)))))))
  
  
! if test `uname -s` == Linux;
  then
      dnl Ckecking for ALSA
***************
*** 239,243 ****
  fi
  
! if test `uname -s` = Darwin;
  then
      LDFLAGS="-Wl -framework CoreAudio \
--- 253,257 ----
  fi
  
! if test `uname -s` == Darwin;
  then
      LDFLAGS="-Wl -framework CoreAudio \
***************
*** 250,262 ****
  	-I../portmidi/porttime \
  	-DUSEAPI_PORTAUDIO -DPA19 -DPA_USE_COREAUDIO"
      if test `uname -r` = 7.9.0;
      then
!         MORECFLAGS="-DMACOSX3 -DPA_BIG_ENDIAN -Wno-error"
!     	EXTERNTARGET=d_ppc
!     else
          MORECFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
              -arch i386 -arch ppc -Wno-error"
      	EXTERNTARGET=d_fat
          LDFLAGS=$LDFLAGS" -arch i386 -arch ppc"
      fi
      SYSSRC="s_midi_pm.c s_audio_pa.c \
--- 264,281 ----
  	-I../portmidi/porttime \
  	-DUSEAPI_PORTAUDIO -DPA19 -DPA_USE_COREAUDIO"
+ dnl for Mac OS X 10.3 (i.e. < 10.4)
      if test `uname -r` = 7.9.0;
      then
! 	fat="no"
!     fi
!     if test "x$fat" == "xyes";
!     then
          MORECFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk \
              -arch i386 -arch ppc -Wno-error"
      	EXTERNTARGET=d_fat
          LDFLAGS=$LDFLAGS" -arch i386 -arch ppc"
+     else
+         MORECFLAGS="-DMACOSX3 -Wno-error"
+     	EXTERNTARGET=d_ppc
      fi
      SYSSRC="s_midi_pm.c s_audio_pa.c \
***************
*** 317,320 ****
--- 336,372 ----
  fi
  
+ # only Windows uses ASIO, for the rest, set to blank
+ ASIOSRC=
+ 
+ if test `uname -s` == MINGW32_NT-5.0;
+ then
+     EXT=dll
+     MORECFLAGS="-DUSEAPI_PORTAUDIO -DPA19 -DMSW -DPA_NO_DS -DPD_INTERNAL \
+         -I../portaudio/pa_common -I../portaudio/pablio \
+         -mwindows -mms-bitfields "$MORECFLAGS
+     PDLIB=$PDLIB" -lwsock32 -lwinmm -lole32 -lstdc++"
+ 
+     SYSSRC="s_audio_pa.c s_audio_pablio.c s_audio_paring.c \
+         s_audio_mmio.c s_midi_mmio.c \
+         ../portaudio/pa_common/pa_allocation.c  \
+         ../portaudio/pa_common/pa_converters.c  \
+         ../portaudio/pa_common/pa_cpuload.c     \
+         ../portaudio/pa_common/pa_dither.c      \
+         ../portaudio/pa_common/pa_front.c       \
+         ../portaudio/pa_common/pa_process.c     \
+         ../portaudio/pa_common/pa_skeleton.c    \
+         ../portaudio/pa_common/pa_stream.c      \
+         ../portaudio/pa_common/pa_trace.c       \
+         ../portaudio/pa_win/pa_win_util.c       \
+         ../portaudio/pa_win/pa_win_hostapis.c   \
+         ../portaudio/pa_win_wmme/pa_win_wmme.c"
+ 	 ASIOSRC="../portaudio/pa_asio/iasiothiscallresolver.cpp \
+ 	 ../portaudio/pa_asio/pa_asio.cpp ../asio/asio.cpp \
+ 	 ../asio/asiodrivers.cpp ../asio/asiolist.cpp"
+     STRIPFLAG="--strip-unneeded"
+     GUINAME="pdtcl.dll"
+     GUIFLAGS=
+ fi
+ 
  # support for jack, on either linux or darwin:
  

Index: g_all_guis.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_all_guis.h,v
retrieving revision 1.5
retrieving revision 1.5.10.1
diff -C2 -d -r1.5 -r1.5.10.1
*** g_all_guis.h	16 Aug 2005 04:06:28 -0000	1.5
--- g_all_guis.h	4 Nov 2007 18:00:20 -0000	1.5.10.1
***************
*** 145,149 ****
      int                x_ldx;
      int                x_ldy;
!     char               x_font[16];
      t_iem_fstyle_flags x_fsf;
      int                x_fontsize;
--- 145,149 ----
      int                x_ldx;
      int                x_ldy;
!     char               x_font[MAXPDSTRING]; /* font names can be long! */
      t_iem_fstyle_flags x_fsf;
      int                x_fontsize;

Index: x_midi.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_midi.c,v
retrieving revision 1.4
retrieving revision 1.4.6.1
diff -C2 -d -r1.4 -r1.4.6.1
*** x_midi.c	8 Sep 2006 23:45:31 -0000	1.4
--- x_midi.c	4 Nov 2007 18:00:20 -0000	1.4.6.1
***************
*** 161,165 ****
          (t_method)notein_free, sizeof(t_notein), CLASS_NOINLET, A_DEFFLOAT, 0);
      class_addlist(notein_class, notein_list);
-     class_sethelpsymbol(notein_class, gensym("midi"));
      notein_sym = gensym("#notein");
  }
--- 161,164 ----
***************
*** 235,239 ****
              CLASS_NOINLET, A_GIMME, 0);
      class_addlist(ctlin_class, ctlin_list);
-     class_sethelpsymbol(ctlin_class, gensym("midi"));
      ctlin_sym = gensym("#ctlin");
  }
--- 234,237 ----
***************
*** 302,306 ****
              CLASS_NOINLET, A_DEFFLOAT, 0);
      class_addlist(pgmin_class, pgmin_list);
-     class_sethelpsymbol(pgmin_class, gensym("midi"));
      pgmin_sym = gensym("#pgmin");
  }
--- 300,303 ----
***************
*** 367,371 ****
          (t_method)bendin_free, sizeof(t_bendin), CLASS_NOINLET, A_DEFFLOAT, 0);
      class_addlist(bendin_class, bendin_list);
-     class_sethelpsymbol(bendin_class, gensym("midi"));
      bendin_sym = gensym("#bendin");
  }
--- 364,367 ----
***************
*** 726,730 ****
          sizeof(t_noteout), 0, A_DEFFLOAT, 0);
      class_addfloat(noteout_class, noteout_float);
-     class_sethelpsymbol(noteout_class, gensym("midi"));
  }
  
--- 722,725 ----
***************
*** 766,770 ****
          sizeof(t_ctlout), 0, A_DEFFLOAT, A_DEFFLOAT, 0);
      class_addfloat(ctlout_class, ctlout_float);
-     class_sethelpsymbol(ctlout_class, gensym("midi"));
  }
  
--- 761,764 ----
***************
*** 806,810 ****
          sizeof(t_pgmout), 0, A_DEFFLOAT, 0);
      class_addfloat(pgmout_class, pgmout_float);
-     class_sethelpsymbol(pgmout_class, gensym("midi"));
  }
  
--- 800,803 ----
***************
*** 843,847 ****
          sizeof(t_bendout), 0, A_DEFFLOAT, 0);
      class_addfloat(bendout_class, bendout_float);
-     class_sethelpsymbol(bendout_class, gensym("midi"));
  }
  
--- 836,839 ----

Index: s_entry.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_entry.c,v
retrieving revision 1.3
retrieving revision 1.3.12.1
diff -C2 -d -r1.3 -r1.3.12.1
*** s_entry.c	11 Nov 2004 04:58:21 -0000	1.3
--- s_entry.c	4 Nov 2007 18:00:20 -0000	1.3.12.1
***************
*** 4,8 ****
  int sys_main(int argc, char **argv);
  
! #ifdef MSW
  #include <windows.h>
  #include <stdio.h>
--- 4,12 ----
  int sys_main(int argc, char **argv);
  
! /* 
!  * gcc does not support the __try stuff, only MSVC.  Also, MinGW allows you to
!  * use main() instead of WinMain(). <hans at at.or.at>
!  */
! #ifdef _MSC_VER
  #include <windows.h>
  #include <stdio.h>
***************
*** 22,31 ****
  }
  
! #else /* not MSW */
  int main(int argc, char **argv)
  {
      return (sys_main(argc, argv));
  }
! #endif
  
  
--- 26,35 ----
  }
  
! #else /* not _MSC_VER */
  int main(int argc, char **argv)
  {
      return (sys_main(argc, argv));
  }
! #endif /* _MSC_VER */
  
  

Index: g_hslider.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_hslider.c,v
retrieving revision 1.6
retrieving revision 1.6.6.1
diff -C2 -d -r1.6 -r1.6.6.1
*** g_hslider.c	8 Sep 2006 23:45:30 -0000	1.6
--- g_hslider.c	4 Nov 2007 18:00:20 -0000	1.6.6.1
***************
*** 77,85 ****
               ypos + x->x_gui.x_h, x->x_gui.x_fcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xpos+x->x_gui.x_ldx,
               ypos+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
          sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
--- 77,86 ----
               ypos + x->x_gui.x_h, x->x_gui.x_fcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xpos+x->x_gui.x_ldx,
               ypos+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
! 			 x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
          sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
***************
*** 137,142 ****
      t_canvas *canvas=glist_getcanvas(glist);
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
--- 138,143 ----
      t_canvas *canvas=glist_getcanvas(glist);
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
***************
*** 286,290 ****
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s HSLIDER \
              --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \
              -----------output-range:----------- %g left: %g right: %g \
--- 287,291 ----
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s |hsl| \
              --------dimensions(pix)(pix):-------- %d %d width: %d %d height: \
              -----------output-range:----------- %g left: %g right: %g \
***************
*** 587,591 ****
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, "courier"); }
      if(x->x_gui.x_fsf.x_rcv_able)
          pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
--- 588,592 ----
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, sys_font); }
      if(x->x_gui.x_fsf.x_rcv_able)
          pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);

Index: s_loader.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v
retrieving revision 1.13.2.1
retrieving revision 1.13.2.1.4.1
diff -C2 -d -r1.13.2.1 -r1.13.2.1.4.1
*** s_loader.c	25 Oct 2006 19:50:49 -0000	1.13.2.1
--- s_loader.c	4 Nov 2007 18:00:20 -0000	1.13.2.1.4.1
***************
*** 199,205 ****
  }
  
- /* callback type definition */
- typedef int (*loader_t)(t_canvas *canvas, char *classname);
- 
  /* linked list of loaders */
  typedef struct loader_queue {
--- 199,202 ----

Index: g_text.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_text.c,v
retrieving revision 1.15
retrieving revision 1.15.6.1
diff -C2 -d -r1.15 -r1.15.6.1
*** g_text.c	4 Oct 2006 19:35:06 -0000	1.15
--- g_text.c	4 Nov 2007 18:00:20 -0000	1.15.6.1
***************
*** 146,151 ****
              atom_getintarg(1, argc, argv), 0, b);
      }
!     else
!     {
          t_binbuf *b = binbuf_new();
          int xpix, ypix;
--- 146,154 ----
              atom_getintarg(1, argc, argv), 0, b);
      }
!     else if(!glist_isvisible(gl)){
!       /* JMZ: not a good idea to go into interactive mode in a closed canvas... */
!       post("unable to create stub object in closed canvas!");
!       return;
!     } else {
          t_binbuf *b = binbuf_new();
          int xpix, ypix;
***************
*** 277,280 ****
--- 280,288 ----
  }
  
+ static void messresponder_string(t_messresponder *x, t_string *st)
+ { /* MP 20070107 string type */
+     outlet_string(x->mr_outlet, st);
+ }
+ 
  static void messresponder_list(t_messresponder *x, 
      t_symbol *s, int argc, t_atom *argv)
***************
*** 308,311 ****
--- 316,326 ----
  }
  
+ static void message_string(t_message *x, t_string *st)
+ {
+     t_atom at;
+     SETSTRING(&at, st);
+     binbuf_eval(x->m_text.te_binbuf, &x->m_messresponder.mr_pd, 1, &at);
+ }
+ 
  static void message_list(t_message *x, t_symbol *s, int argc, t_atom *argv)
  {
***************
*** 418,421 ****
--- 433,441 ----
      {
          int xpix, ypix;
+         /* JMZ: not a good idea to go into interactive mode in a closed canvas... */
+         if(!glist_isvisible(gl)){
+           post("unable to create stub message in closed canvas!");
+           return;
+         }
          pd_vmess(&gl->gl_pd, gensym("editmode"), "i", 1);
          glist_noselect(gl);
***************
*** 800,804 ****
                  canvas_realizedollar(x->a_glist, x->a_label)->s_name,
                  sys_hostfontsize(glist_getfont(glist)),
!                 "black");
          }
          else sys_vgui(".x%lx.c delete %lx.l\n", glist_getcanvas(glist), x);
--- 820,824 ----
                  canvas_realizedollar(x->a_glist, x->a_label)->s_name,
                  sys_hostfontsize(glist_getfont(glist)),
!                 "$text_color");
          }
          else sys_vgui(".x%lx.c delete %lx.l\n", glist_getcanvas(glist), x);
***************
*** 933,937 ****
          int fontwidth = sys_fontwidth(font), fontheight = sys_fontheight(font);
          width = (x->te_width > 0 ? x->te_width : 6) * fontwidth + 2;
!         height = fontheight + 1; /* borrowed from TMARGIN, etc, in g_rtext.c */
      }
          /* if we're invisible we don't know our size so we just lie about
--- 953,957 ----
          int fontwidth = sys_fontwidth(font), fontheight = sys_fontheight(font);
          width = (x->te_width > 0 ? x->te_width : 6) * fontwidth + 2;
!         height = fontheight + 2; /* borrowed from TMARGIN, etc, in g_rtext.c */
      }
          /* if we're invisible we don't know our size so we just lie about
***************
*** 981,988 ****
      t_text *x = (t_text *)z;
      t_rtext *y = glist_findrtext(glist, x);
      rtext_select(y, state);
      if (glist_isvisible(glist) && text_shouldvis(x, glist))
!         sys_vgui(".x%lx.c itemconfigure %sR -fill %s\n", glist, 
!             rtext_gettag(y), (state? "blue" : "black"));
  }
  
--- 1001,1013 ----
      t_text *x = (t_text *)z;
      t_rtext *y = glist_findrtext(glist, x);
+     char *outline;
      rtext_select(y, state);
+     if (pd_class(&x->te_pd) == text_class)
+         outline = "$dash_outline";
+     else
+         outline = "$box_outline";
      if (glist_isvisible(glist) && text_shouldvis(x, glist))
!         sys_vgui(".x%lx.c itemconfigure %sR -outline %s\n", glist, 
!                  rtext_gettag(y), (state? "$select_color" : outline));
  }
  
***************
*** 1163,1179 ****
      int n = obj_noutlets(ob), nplus = (n == 1 ? 1 : n-1), i;
      int width = x2 - x1;
      for (i = 0; i < n; i++)
      {
          int onset = x1 + (width - IOWIDTH) * i / nplus;
          if (firsttime)
!             sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %so%d\n",
!                 glist_getcanvas(glist),
!                 onset, y2 - 1,
!                 onset + IOWIDTH, y2,
                  tag, i);
          else
              sys_vgui(".x%lx.c coords %so%d %d %d %d %d\n",
                  glist_getcanvas(glist), tag, i,
!                 onset, y2 - 1,
                  onset + IOWIDTH, y2);
      }
--- 1188,1209 ----
      int n = obj_noutlets(ob), nplus = (n == 1 ? 1 : n-1), i;
      int width = x2 - x1;
+     int issignal;
      for (i = 0; i < n; i++)
      {
          int onset = x1 + (width - IOWIDTH) * i / nplus;
          if (firsttime)
!         {
!             issignal = obj_issignaloutlet(ob,i);
!             sys_vgui(".x%lx.c create rectangle %d %d %d %d \
!                       -fill %s -outline %s -tags %so%d\n",
!                 glist_getcanvas(glist), onset, y2 - 2, onset + IOWIDTH, y2,
!                 (issignal ? "$signal_nlet" : "$msg_nlet"),
!                 (issignal ? "$signal_cord" : "$msg_cord"),
                  tag, i);
+         }
          else
              sys_vgui(".x%lx.c coords %so%d %d %d %d %d\n",
                  glist_getcanvas(glist), tag, i,
!                 onset, y2 - 2,
                  onset + IOWIDTH, y2);
      }
***************
*** 1184,1192 ****
          int onset = x1 + (width - IOWIDTH) * i / nplus;
          if (firsttime)
!             sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %si%d\n",
!                 glist_getcanvas(glist),
!                 onset, y1,
!                 onset + IOWIDTH, y1 + EXTRAPIX,
                  tag, i);
          else
              sys_vgui(".x%lx.c coords %si%d %d %d %d %d\n",
--- 1214,1226 ----
          int onset = x1 + (width - IOWIDTH) * i / nplus;
          if (firsttime)
!         {
!             issignal = obj_issignalinlet(ob,i);
!             sys_vgui(".x%lx.c create rectangle %d %d %d %d \
!                       -fill %s -outline %s -tags %si%d\n",
!                 glist_getcanvas(glist), onset, y1, onset + IOWIDTH, y1 + EXTRAPIX,
!                 (issignal ? "$signal_nlet" : "$msg_nlet"),
!                 (issignal ? "$signal_cord" : "$msg_cord"),
                  tag, i);
+         }
          else
              sys_vgui(".x%lx.c coords %si%d %d %d %d %d\n",
***************
*** 1201,1205 ****
  {
      t_object *ob;
!     int x1, y1, x2, y2, width, height;
      text_getrect(&x->te_g, glist, &x1, &y1, &x2, &y2);
      width = x2 - x1;
--- 1235,1239 ----
  {
      t_object *ob;
!     int x1, y1, x2, y2, width, height, msg_draw_const, atom_draw_const;
      text_getrect(&x->te_g, glist, &x1, &y1, &x2, &y2);
      width = x2 - x1;
***************
*** 1207,1233 ****
      if (x->te_type == T_OBJECT)
      {
!         char *pattern = ((pd_class(&x->te_pd) == text_class) ? "-" : "\"\"");
          if (firsttime)
!             sys_vgui(".x%lx.c create line\
!  %d %d %d %d %d %d %d %d %d %d -dash %s -tags %sR\n",
                  glist_getcanvas(glist),
!                     x1, y1,  x2, y1,  x2, y2,  x1, y2,  x1, y1,  pattern, tag);
          else
          {
!             sys_vgui(".x%lx.c coords %sR\
!  %d %d %d %d %d %d %d %d %d %d\n",
                  glist_getcanvas(glist), tag,
                      x1, y1,  x2, y1,  x2, y2,  x1, y2,  x1, y1);
!             sys_vgui(".x%lx.c itemconfigure %sR -dash %s\n",
!                 glist_getcanvas(glist), tag, pattern);
          }
      }
      else if (x->te_type == T_MESSAGE)
      {
          if (firsttime)
!             sys_vgui(".x%lx.c create line\
!  %d %d %d %d %d %d %d %d %d %d %d %d %d %d -tags %sR\n",
                  glist_getcanvas(glist),
!                 x1, y1,  x2+4, y1,  x2, y1+4,  x2, y2-4,  x2+4, y2,
                  x1, y2,  x1, y1,
                      tag);
--- 1241,1281 ----
      if (x->te_type == T_OBJECT)
      {
!         char *pattern; char *outline;
!         if (pd_class(&x->te_pd) == text_class)
!         {
!             pattern = "-";
!             outline = "$dash_outline";
!         }
!         else
!         {
!             pattern = "\"\"";
!             outline = "$box_outline";
!         }
          if (firsttime)
!             sys_vgui(".x%lx.c create polygon %d %d %d %d %d %d %d %d %d %d \
!                       -dash %s -outline %s -fill $obj_box_fill -tags %sR\n", 
                  glist_getcanvas(glist),
!                      x1, y1,  x2, y1,  x2, y2,  x1, y2,  x1, y1,  
!                      pattern, outline, tag);
          else
          {
!             sys_vgui(".x%lx.c coords %sR %d %d %d %d %d %d %d %d %d %d\n",
                  glist_getcanvas(glist), tag,
                      x1, y1,  x2, y1,  x2, y2,  x1, y2,  x1, y1);
!             sys_vgui(".x%lx.c itemconfigure %sR -dash %s -outline %s\n",
!                      glist_getcanvas(glist), tag, pattern, outline);
          }
      }
      else if (x->te_type == T_MESSAGE)
      {
+         msg_draw_const = ((y2-y1)/4);
+         if (msg_draw_const > 10) msg_draw_const = 10; /* looks bad if too big */
          if (firsttime)
!             sys_vgui(".x%lx.c create polygon \
!                      %d %d %d %d %d %d %d %d %d %d %d %d %d %d \
!                      -outline $box_outline -fill $msg_box_fill -tags %sR\n",
                  glist_getcanvas(glist),
!                      x1, y1,  x2+msg_draw_const, y1,  x2, y1+msg_draw_const,  
!                      x2, y2-msg_draw_const,  x2+msg_draw_const, y2,  
                  x1, y2,  x1, y1,
                      tag);
***************
*** 1236,1249 ****
   %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",
                  glist_getcanvas(glist), tag,
!                 x1, y1,  x2+4, y1,  x2, y1+4,  x2, y2-4,  x2+4, y2,
!                 x1, y2,  x1, y1);
      }
      else if (x->te_type == T_ATOM)
      {
          if (firsttime)
!             sys_vgui(".x%lx.c create line\
!  %d %d %d %d %d %d %d %d %d %d %d %d -tags %sR\n",
                  glist_getcanvas(glist),
!                 x1, y1,  x2-4, y1,  x2, y1+4,  x2, y2,  x1, y2,  x1, y1,
                      tag);
          else
--- 1284,1299 ----
   %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",
                  glist_getcanvas(glist), tag,
!                 x1, y1,  x2+msg_draw_const, y1,  x2, y1+msg_draw_const,
!                 x2, y2-msg_draw_const, x2+msg_draw_const, y2,  x1, y2,  x1, y1);
      }
      else if (x->te_type == T_ATOM)
      {
+         atom_draw_const = ((y2-y1)/3);
          if (firsttime)
!             sys_vgui(".x%lx.c create polygon %d %d %d %d %d %d %d %d %d %d %d %d \
!                      -outline $box_outline -fill $atom_box_fill -tags %sR\n",
                  glist_getcanvas(glist),
!                      x1, y1,  x2-atom_draw_const, y1,  x2, y1+atom_draw_const,  
!                      x2, y2,  x1, y2,  x1, y1, 
                      tag);
          else
***************
*** 1251,1255 ****
   %d %d %d %d %d %d %d %d %d %d %d %d\n",
                  glist_getcanvas(glist), tag,
!                 x1, y1,  x2-4, y1,  x2, y1+4,  x2, y2,  x1, y2,  x1, y1);
      }
          /* draw inlets/outlets */
--- 1301,1306 ----
   %d %d %d %d %d %d %d %d %d %d %d %d\n",
                  glist_getcanvas(glist), tag,
!                 x1, y1,  x2-atom_draw_const, y1,  x2, y1+atom_draw_const,
!                 x2, y2,  x1, y2,  x1, y1);
      }
          /* draw inlets/outlets */
***************
*** 1334,1337 ****
--- 1385,1389 ----
      class_addfloat(message_class, message_float);
      class_addsymbol(message_class, message_symbol);
+     class_addstring(message_class, message_string);
      class_addlist(message_class, message_list);
      class_addanything(message_class, message_list);

Index: s_main.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_main.c,v
retrieving revision 1.28
retrieving revision 1.28.6.1
diff -C2 -d -r1.28 -r1.28.6.1
*** s_main.c	4 Oct 2006 19:35:06 -0000	1.28
--- s_main.c	4 Nov 2007 18:00:20 -0000	1.28.6.1
***************
*** 48,52 ****
  t_symbol *sys_libdir;
  static t_symbol *sys_guidir;
- t_namelist *sys_externlist;
  static t_namelist *sys_openlist;
  static t_namelist *sys_messagelist;
--- 48,51 ----
***************
*** 59,63 ****
  int sys_midioutdevlist[MAXMIDIOUTDEV] = {1};
  
! char sys_font[100] = "courier"; /* tb: font name */
  static int sys_main_srate;
  static int sys_main_advance;
--- 58,67 ----
  int sys_midioutdevlist[MAXMIDIOUTDEV] = {1};
  
! #ifdef __APPLE__
! char sys_font[] = "Monaco"; /* tb: font name */
! #else
! char sys_font[] = "Bitstream Vera Sans Mono"; /* tb: font name */
! #endif
! char sys_fontweight[] = "normal"; /* currently only used for iemguis */
  static int sys_main_srate;
  static int sys_main_advance;
***************
*** 107,112 ****
  
  static t_fontinfo sys_fontlist[] = {
!     {8, 6, 10, 0, 0, 0}, {10, 7, 13, 0, 0, 0}, {12, 9, 16, 0, 0, 0},
!     {16, 10, 20, 0, 0, 0}, {24, 15, 25, 0, 0, 0}, {36, 25, 45, 0, 0, 0}};
  #define NFONT (sizeof(sys_fontlist)/sizeof(*sys_fontlist))
  
--- 111,116 ----
  
  static t_fontinfo sys_fontlist[] = {
!     {8, 5, 11, 8, 5, 11}, {10, 6, 13, 10, 6, 13}, {12, 7, 16, 12, 7, 16},
!     {16, 10, 19, 16, 10, 19}, {24, 14, 29, 24, 14, 29}, {36, 23, 44, 36, 23, 44}};
  #define NFONT (sizeof(sys_fontlist)/sizeof(*sys_fontlist))
  
***************
*** 159,167 ****
  
  int sys_defaultfont;
- #ifdef MSW
- #define DEFAULTFONT 12
- #else
  #define DEFAULTFONT 10
- #endif
  
  static void openit(const char *dirname, const char *filename)
--- 163,167 ----
***************
*** 207,215 ****
                      best = j;
          }
-             /* best is now the host font index for the desired font index i. */
-         sys_fontlist[i].fi_hostfontsize =
-             atom_getintarg(3 * best + 2, argc, argv);
-         sys_fontlist[i].fi_width = atom_getintarg(3 * best + 3, argc, argv);
-         sys_fontlist[i].fi_height = atom_getintarg(3 * best + 4, argc, argv);
      }
  #if 0
--- 207,210 ----
***************
*** 383,388 ****
  "-open <file>     -- open file(s) on startup\n",
  "-lib <file>      -- load object library(s)\n",
! "-font <n>        -- specify default font size in points\n",
! "-typeface <name> -- specify default font (default: courier)\n",
  "-verbose         -- extra printout on startup and when searching for files\n",
  "-version         -- don't run Pd; just print out which version it is \n",
--- 378,384 ----
  "-open <file>     -- open file(s) on startup\n",
  "-lib <file>      -- load object library(s)\n",
! "-font-size <n>     -- specify default font size in points\n",
! "-font-face <name>  -- specify default font (default: Bitstream Vera Sans Mono)\n",
! "-font-weight <name>-- specify default font weight (normal or bold)\n",
  "-verbose         -- extra printout on startup and when searching for files\n",
  "-version         -- don't run Pd; just print out which version it is \n",
***************
*** 738,742 ****
              argc -= 2; argv += 2;
          }
!         else if (!strcmp(*argv, "-font") && argc > 1)
          {
              sys_defaultfont = sys_nearestfontsize(atoi(argv[1]));
--- 734,738 ----
              argc -= 2; argv += 2;
          }
!         else if ((!strcmp(*argv, "-font-size") || !strcmp(*argv, "-font")) && argc > 1)
          {
              sys_defaultfont = sys_nearestfontsize(atoi(argv[1]));
***************
*** 744,749 ****
              argv += 2;
          }
!                 /* tb: font name { */
!         else if (!strcmp(*argv, "-typeface") && argc > 1)
          {
              strncpy(sys_font,*(argv+1),sizeof(sys_font)-1);
--- 740,744 ----
              argv += 2;
          }
!         else if ((!strcmp(*argv, "-font-face") || !strcmp(*argv, "-typeface")) && argc > 1)
          {
              strncpy(sys_font,*(argv+1),sizeof(sys_font)-1);
***************
*** 752,756 ****
              argv += 2;
          }
!                 /* } tb */
          else if (!strcmp(*argv, "-verbose"))
          {
--- 747,756 ----
              argv += 2;
          }
!         else if (!strcmp(*argv, "-font-weight") && argc > 1)
!         {
!                        strcpy(sys_fontweight,*(argv+1));
!                        argc -= 2;
!                        argv += 2;
!                }
          else if (!strcmp(*argv, "-verbose"))
          {

Index: d_soundfile.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_soundfile.c,v
retrieving revision 1.12
retrieving revision 1.12.6.1
diff -C2 -d -r1.12 -r1.12.6.1
*** d_soundfile.c	9 Oct 2006 04:36:12 -0000	1.12
--- d_soundfile.c	4 Nov 2007 18:00:20 -0000	1.12.6.1
***************
*** 28,31 ****
--- 28,33 ----
  #define MAXSFCHANS 64
  
+ #define ASTRIDE (sizeof(union word)/sizeof(t_sample))
+ 
  #ifdef _LARGEFILE64_SOURCE
  # define open open64
***************
*** 436,447 ****
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                          *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16));
              }
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                          *fp = SCALE * ((sp2[1] << 24) | (sp2[0] << 16));
              }
--- 438,449 ----
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                          *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16));
              }
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                          *fp = SCALE * ((sp2[1] << 24) | (sp2[0] << 16));
              }
***************
*** 451,456 ****
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                          *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16)
                              | (sp2[2] << 8));
--- 453,458 ----
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                          *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16)
                              | (sp2[2] << 8));
***************
*** 458,463 ****
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                          *fp = SCALE * ((sp2[2] << 24) | (sp2[1] << 16)
                              | (sp2[0] << 8));
--- 460,465 ----
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                          *fp = SCALE * ((sp2[2] << 24) | (sp2[1] << 16)
                              | (sp2[0] << 8));
***************
*** 468,473 ****
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                          *(long *)fp = ((sp2[0] << 24) | (sp2[1] << 16)
                              | (sp2[2] << 8) | sp2[3]);
--- 470,475 ----
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                          *(long *)fp = ((sp2[0] << 24) | (sp2[1] << 16)
                              | (sp2[2] << 8) | sp2[3]);
***************
*** 475,480 ****
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                          *(long *)fp = ((sp2[3] << 24) | (sp2[2] << 16)
                              | (sp2[1] << 8) | sp2[0]);
--- 477,482 ----
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + itemsread*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                          *(long *)fp = ((sp2[3] << 24) | (sp2[2] << 16)
                              | (sp2[1] << 8) | sp2[0]);
***************
*** 484,489 ****
          /* zero out other outputs */
      for (i = sfchannels; i < nvecs; i++)
!         for (j = nitems, fp = vecs[i]; j--; )
!             *fp++ = 0;
  
  }
--- 486,491 ----
          /* zero out other outputs */
      for (i = sfchannels; i < nvecs; i++)
!         for (j = nitems, fp = vecs[i*ASTRIDE]; j--; )
!             *fp = 0,fp += ASTRIDE;
  
  }
***************
*** 839,844 ****
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp = vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                  {
                      int xx = 32768. + (*fp * ff);
--- 841,846 ----
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp = vecs[i] + onset*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                  {
                      int xx = 32768. + (*fp * ff);
***************
*** 854,859 ****
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                  {
                      int xx = 32768. + (*fp * ff);
--- 856,861 ----
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                  {
                      int xx = 32768. + (*fp * ff);
***************
*** 873,878 ****
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                  {
                      int xx = 8388608. + (*fp * ff);
--- 875,880 ----
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                  {
                      int xx = 8388608. + (*fp * ff);
***************
*** 889,894 ****
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                  {
                      int xx = 8388608. + (*fp * ff);
--- 891,896 ----
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                  {
                      int xx = 8388608. + (*fp * ff);
***************
*** 908,913 ****
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                  {
                      float f2 = *fp * normalfactor;
--- 910,915 ----
              if (bigendian)
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                  {
                      float f2 = *fp * normalfactor;
***************
*** 919,924 ****
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp++)
                  {
                      float f2 = *fp * normalfactor;
--- 921,926 ----
              else
              {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset*ASTRIDE;
!                     j < nitems; j++, sp2 += bytesperframe, fp+=ASTRIDE)
                  {
                      float f2 = *fp * normalfactor;

Index: m_obj.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_obj.c,v
retrieving revision 1.4
retrieving revision 1.4.10.1
diff -C2 -d -r1.4 -r1.4.10.1
*** m_obj.c	18 May 2005 04:28:51 -0000	1.4
--- m_obj.c	4 Nov 2007 18:00:20 -0000	1.4.10.1
***************
*** 16,19 ****
--- 16,20 ----
      t_float *iu_floatslot;
      t_symbol **iu_symslot;
+     t_string **iu_stringslot; /* MP 20061226 string type */
      t_sample iu_floatsignalvalue;
  };
***************
*** 33,39 ****
  #define i_floatslot i_un.iu_floatslot
  #define i_symslot i_un.iu_symslot
  
  static t_class *inlet_class, *pointerinlet_class, *floatinlet_class,
!     *symbolinlet_class;
  
  #define ISINLET(pd) ((*(pd) == inlet_class) || \
--- 34,41 ----
  #define i_floatslot i_un.iu_floatslot
  #define i_symslot i_un.iu_symslot
+ #define i_stringslot i_un.iu_stringslot /* MP 20061226 string type */
  
  static t_class *inlet_class, *pointerinlet_class, *floatinlet_class,
!     *symbolinlet_class, *stringinlet_class; /* MP 20061226 added stringinlet_class */
  
  #define ISINLET(pd) ((*(pd) == inlet_class) || \
***************
*** 112,115 ****
--- 114,137 ----
  }
  
+ static void inlet_string(t_inlet *x, t_string *st) /* MP20061226 string type */
+ {
+     /*post("inlet_string (%p): st %p", &inlet_string, st);*/
+     if (x->i_symfrom == &s_string)
+     {
+         /*post("inlet_string calling pd_vmess");*/
+         pd_vmess(x->i_dest, x->i_symto, "t", st);
+     }
+     else if (!x->i_symfrom)
+     {
+         /*post("inlet_string calling pd_string");*/
+         pd_string(x->i_dest, st);
+     }
+     else
+     {
+         /*post("inlet_string calling inlet_wrong");*/
+         inlet_wrong(x, &s_string);
+     }
+ }
+ 
  static void inlet_list(t_inlet *x, t_symbol *s, int argc, t_atom *argv)
  {
***************
*** 193,196 ****
--- 215,235 ----
  }
  
+ t_inlet *stringinlet_new(t_object *owner, t_string **stp) /* MP 20061226 string type */
+ {
+     t_inlet *x = (t_inlet *)pd_new(stringinlet_class), *y, *y2;
+     x->i_owner = owner;
+     x->i_dest = 0;
+     x->i_symfrom = &s_string;
+     x->i_stringslot = stp;
+     x->i_next = 0;
+     if (y = owner->ob_inlet)
+     {
+         while (y2 = y->i_next) y = y2;
+         y->i_next = x;
+     }
+     else owner->ob_inlet = x;
+     return (x);
+ }
+ 
  static void symbolinlet_symbol(t_inlet *x, t_symbol *s)
  {
***************
*** 245,248 ****
--- 284,288 ----
      class_addfloat(inlet_class, inlet_float);
      class_addsymbol(inlet_class, inlet_symbol);
+     class_addstring(inlet_class, inlet_string); /* MP 20061226 string type */
      class_addlist(inlet_class, inlet_list);
      class_addanything(inlet_class, inlet_anything);
***************
*** 367,370 ****
--- 407,422 ----
  }
  
+ void outlet_string(t_outlet *x, t_string *st) /* MP 20061226 string type */
+ {
+     /*post("outlet_string %p %lu", st, st->s_length);*/
+     t_outconnect *oc;
+     if(++stackcount >= STACKITER)
+         outlet_stackerror(x);
+     else
+         for (oc = x->o_connections; oc; oc = oc->oc_next)
+             pd_string(oc->oc_to, st);
+     --stackcount;
+ }
+ 
  void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv)
  {

Index: g_canvas.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_canvas.c,v
retrieving revision 1.18
retrieving revision 1.18.6.1
diff -C2 -d -r1.18 -r1.18.6.1
*** g_canvas.c	9 Oct 2006 04:36:12 -0000	1.18
--- g_canvas.c	4 Nov 2007 18:00:20 -0000	1.18.6.1
***************
*** 899,909 ****
      t_linetraverser t;
      t_outconnect *oc;
!     {
          linetraverser_start(&t, x);
          while (oc = linetraverser_next(&t))
!             sys_vgui(".x%lx.c create line %d %d %d %d -width %d -tags l%lx\n",
!                     glist_getcanvas(x),
!                         t.tr_lx1, t.tr_ly1, t.tr_lx2, t.tr_ly2, 
!                             (outlet_getsymbol(t.tr_outlet) == &s_signal ? 2:1),
                                  oc);
      }
--- 899,911 ----
      t_linetraverser t;
      t_outconnect *oc;
!     int issignal;
!     
          linetraverser_start(&t, x);
          while (oc = linetraverser_next(&t))
!     {
!         issignal = (outlet_getsymbol(t.tr_outlet) == &s_signal ? 1 : 0);
!         sys_vgui(".x%lx.c create line %d %d %d %d -width %d -fill %s -tags l%lx\n",
!                  glist_getcanvas(x), t.tr_lx1, t.tr_ly1, t.tr_lx2, t.tr_ly2, 
!                  (issignal ? 2:1), (issignal ? "$signal_cord" : "$msg_cord"),
                                  oc);
      }
***************
*** 1043,1046 ****
--- 1045,1094 ----
      canvas_loadbangsubpatches(x);
  }
+ /* JMZ:
+  * initbang is emitted after the canvas is done, but before the parent canvas is done
+  * therefore, initbangs cannot reach to the outlets
+  */
+ void canvas_initbang(t_canvas *x)
+ {
+     t_gobj *y;
+     t_symbol *s = gensym("initbang");
+     /* run "initbang" for all subpatches, but NOT for the child abstractions */
+     for (y = x->gl_list; y; y = y->g_next)
+       if (pd_class(&y->g_pd) == canvas_class)
+         {
+           if (!canvas_isabstraction((t_canvas *)y))
+             canvas_initbang((t_canvas *)y);
+         }
+ 
+     /* call the initbang()-method for objects that have one */
+     for (y = x->gl_list; y; y = y->g_next)
+       {
+         if ((pd_class(&y->g_pd) != canvas_class) && zgetfn(&y->g_pd, s))
+           {
+             pd_vmess(&y->g_pd, s, "");
+           }
+       }
+ }
+ /* JMZ:
+  * closebang is emitted before the canvas is destroyed
+  * and BEFORE subpatches/abstractions in this canvas are destroyed
+  */
+ void canvas_closebang(t_canvas *x)
+ {
+     t_gobj *y;
+     t_symbol *s = gensym("closebang");
+ 
+     /* call the closebang()-method for objects that have one 
+      * but NOT for subpatches/abstractions: these are called separately
+      * from g_graph:glist_delete()
+      */
+     for (y = x->gl_list; y; y = y->g_next)
+       {
+         if ((pd_class(&y->g_pd) != canvas_class) && zgetfn(&y->g_pd, s))
+           {
+             pd_vmess(&y->g_pd, s, "");
+           }
+       }
+ }
  
      /* When you ask a canvas its size the result is 2 pixels more than what

Index: x_misc.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_misc.c,v
retrieving revision 1.3
retrieving revision 1.3.6.1
diff -C2 -d -r1.3 -r1.3.6.1
*** x_misc.c	31 Dec 2005 20:55:25 -0000	1.3
--- x_misc.c	4 Nov 2007 18:00:20 -0000	1.3.6.1
***************
*** 112,115 ****
--- 112,175 ----
  }
  
+ 
+ /* -------------------------- JMZ: initbang ------------------------------ */
+ static t_class *initbang_class;
+ 
+ typedef struct _initbang
+ {
+     t_object x_obj;
+ } t_initbang;
+ 
+ static void *initbang_new(void)
+ {
+     t_initbang *x = (t_initbang *)pd_new(initbang_class);
+     outlet_new(&x->x_obj, &s_bang);
+     return (x);
+ }
+ 
+ static void initbang_initbang(t_initbang *x)
+ {
+   if (!sys_noloadbang) /* JMZ: hmm, not sure whether we should respect sys_noloadbang here... */
+         outlet_bang(x->x_obj.ob_outlet);
+ }
+ 
+ static void initbang_setup(void)
+ {
+   initbang_class = class_new(gensym("initbang"), (t_newmethod)initbang_new, 0,
+         sizeof(t_initbang), CLASS_NOINLET, 0);
+     class_addmethod(initbang_class, (t_method)initbang_initbang,
+         gensym("initbang"), 0);
+ }
+ 
+ 
+ /* -------------------------- JMZ: closebang ------------------------------ */
+ static t_class *closebang_class;
+ 
+ typedef struct _closebang
+ {
+     t_object x_obj;
+ } t_closebang;
+ 
+ static void *closebang_new(void)
+ {
+     t_closebang *x = (t_closebang *)pd_new(closebang_class);
+     outlet_new(&x->x_obj, &s_bang);
+     return (x);
+ }
+ static void closebang_closebang(t_closebang *x)
+ {
+   if (!sys_noloadbang) /* JMZ: hmm, not sure whether we should respect sys_noloadbang here... */
+         outlet_bang(x->x_obj.ob_outlet);
+ }
+ 
+ static void closebang_setup(void)
+ {
+   closebang_class = class_new(gensym("closebang"), (t_newmethod)closebang_new, 0,
+         sizeof(t_closebang), CLASS_NOINLET, 0);
+     class_addmethod(closebang_class, (t_method)closebang_closebang,
+         gensym("closebang"), 0);
+ }
+ 
+ 
  /* ------------- namecanvas (delete this later) --------------------- */
  static t_class *namecanvas_class;
***************
*** 315,318 ****
--- 375,380 ----
      random_setup();
      loadbang_setup();
+     initbang_setup();
+     closebang_setup();
      namecanvas_setup();
      serial_setup();

Index: g_scalar.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_scalar.c,v
retrieving revision 1.8
retrieving revision 1.8.10.1
diff -C2 -d -r1.8 -r1.8.10.1
*** g_scalar.c	21 Aug 2005 17:46:52 -0000	1.8
--- g_scalar.c	4 Nov 2007 18:00:20 -0000	1.8.10.1
***************
*** 216,220 ****
          x1--; x2++; y1--; y2++;
          sys_vgui(".x%lx.c create line %d %d %d %d %d %d %d %d %d %d \
!             -width 0 -fill blue -tags select%lx\n",
                  glist_getcanvas(owner), x1, y1, x1, y2, x2, y2, x2, y1, x1, y1,
                  x);
--- 216,220 ----
          x1--; x2++; y1--; y2++;
          sys_vgui(".x%lx.c create line %d %d %d %d %d %d %d %d %d %d \
!             -width 0 -fill $select_color -tags select%lx\n",
                  glist_getcanvas(owner), x1, y1, x1, y2, x2, y2, x2, y1, x1, y1,
                  x);

Index: s_file.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_file.c,v
retrieving revision 1.9
retrieving revision 1.9.6.1
diff -C2 -d -r1.9 -r1.9.6.1
*** s_file.c	31 Dec 2005 20:55:25 -0000	1.9
--- s_file.c	4 Nov 2007 18:00:20 -0000	1.9.6.1
***************
*** 43,50 ****
      char filenamebuf[MAXPDSTRING], *homedir = getenv("HOME");
      int fd, length;
  
!     if (!homedir)
          return;
-     snprintf(filenamebuf, MAXPDSTRING, "%s/.pdsettings", homedir);
      filenamebuf[MAXPDSTRING-1] = 0;
      if ((fd = open(filenamebuf, 0)) < 0)
--- 43,62 ----
      char filenamebuf[MAXPDSTRING], *homedir = getenv("HOME");
      int fd, length;
+ 	char user_prefs_file[MAXPDSTRING]; // user prefs file
+ 	char default_prefs_file[MAXPDSTRING]; // default prefs embedded in the package
+     struct stat statbuf;
  
! 
! 	snprintf(default_prefs_file, MAXPDSTRING, "%s/default.pdsettings", 
! 			 sys_libdir->s_name);
! //	fprintf(stderr,"default_prefs %s\n",default_prefs_file);
!     if (homedir)
! 		snprintf(user_prefs_file, MAXPDSTRING, "%s/.pdsettings", homedir);
! 	if (stat(user_prefs_file, &statbuf) == 0) 
! 		strncpy(filenamebuf, user_prefs_file, MAXPDSTRING);
! 	else if (stat(default_prefs_file, &statbuf) == 0)
! 		strncpy(filenamebuf, default_prefs_file, MAXPDSTRING);
! 	else
          return;
      filenamebuf[MAXPDSTRING-1] = 0;
      if ((fd = open(filenamebuf, 0)) < 0)
***************
*** 194,198 ****
          return;
      }
!     err = RegSetValueEx(hkey, key, 0, REG_SZ, value, strlen(value)+1);
      if (err != ERROR_SUCCESS)
          post("unable to set registry entry: %s\n", key);
--- 206,210 ----
          return;
      }
!     err = RegSetValueEx(hkey, key, 0, REG_EXPAND_SZ, value, strlen(value)+1);
      if (err != ERROR_SUCCESS)
          post("unable to set registry entry: %s\n", key);
***************
*** 216,220 ****
--- 228,242 ----
      char cmdbuf[256];
      int nread = 0, nleft = size;
+        char embedded_prefs[MAXPDSTRING];
+        char user_prefs[MAXPDSTRING];
+        char *homedir = getenv("HOME");
+     struct stat statbuf;
+        /* the 'defaults' command expects the filename without .plist at the end */
+        snprintf(embedded_prefs, MAXPDSTRING, "%s/../org.puredata.pd", sys_libdir->s_name);
+        snprintf(user_prefs, MAXPDSTRING, "%s/Library/Preferences/org.puredata.pd.plist", homedir);
+        if (stat(user_prefs, &statbuf) == 0)
      snprintf(cmdbuf, 256, "defaults read org.puredata.pd %s 2> /dev/null\n", key);
+        else 
+                snprintf(cmdbuf, 256, "defaults read %s %s 2> /dev/null\n", embedded_prefs, key);
      FILE *fp = popen(cmdbuf, "r");
      while (nread < size)

Index: g_vdial.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_vdial.c,v
retrieving revision 1.6
retrieving revision 1.6.6.1
diff -C2 -d -r1.6 -r1.6.6.1
*** g_vdial.c	8 Sep 2006 23:45:30 -0000	1.6
--- g_vdial.c	4 Nov 2007 18:00:20 -0000	1.6.6.1
***************
*** 76,83 ****
      }
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xx11+x->x_gui.x_ldx, yy11b+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
--- 76,83 ----
      }
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xx11+x->x_gui.x_ldx, yy11b+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
               x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
***************
*** 142,147 ****
      int n=x->x_number, i;
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
--- 142,147 ----
      int n=x->x_number, i;
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight, 
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
***************
*** 266,270 ****
      if(pd_class(&x->x_gui.x_obj.ob_pd) == vradio_old_class)
          hchange = x->x_change;
!     sprintf(buf, "pdtk_iemgui_dialog %%s vradio \
              ----------dimensions(pix):----------- %d %d size: 0 0 empty \
              empty 0.0 empty 0.0 empty %d \
--- 266,270 ----
      if(pd_class(&x->x_gui.x_obj.ob_pd) == vradio_old_class)
          hchange = x->x_change;
!     sprintf(buf, "pdtk_iemgui_dialog %%s |vradio| \
              ----------dimensions(pix):----------- %d %d size: 0 0 empty \
              empty 0.0 empty 0.0 empty %d \
***************
*** 591,595 ****
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, "courier"); }
      if(num < 1)
          num = 1;
--- 591,595 ----
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, sys_font); }
      if(num < 1)
          num = 1;

Index: s_inter.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_inter.c,v
retrieving revision 1.18.2.1
retrieving revision 1.18.2.1.2.1
diff -C2 -d -r1.18.2.1 -r1.18.2.1.2.1
*** s_inter.c	18 Jul 2007 00:20:12 -0000	1.18.2.1
--- s_inter.c	4 Nov 2007 18:00:20 -0000	1.18.2.1.2.1
***************
*** 24,28 ****
  #include <bstring.h>
  #endif
! #ifdef MSW
  #include <io.h>
  #include <fcntl.h>
--- 24,28 ----
  #include <bstring.h>
  #endif
! #ifdef _WIN32
  #include <io.h>
  #include <fcntl.h>
***************
*** 30,37 ****
--- 30,40 ----
  #include <winsock.h>
  #include <windows.h>
+ # ifdef _MSC_VER
  typedef int pid_t;
+ # endif
  typedef int socklen_t;
  #define EADDRINUSE WSAEADDRINUSE
  #endif
+ 
  #include <stdarg.h>
  #include <signal.h>
***************
*** 88,92 ****
  extern char *pd_version;
  extern int sys_guisetportnumber;
- extern char sys_font[]; /* tb: typeface */
  
  static int sys_nfdpoll;
--- 91,94 ----
***************
*** 845,849 ****
  #define FIRSTPORTNUM 5400
  
! static int defaultfontshit[] = {
      8, 5, 9, 10, 6, 10, 12, 7, 13, 14, 9, 17, 16, 10, 19, 24, 15, 28,
          24, 15, 28};
--- 847,852 ----
  #define FIRSTPORTNUM 5400
  
! #define MAXFONTS 21
! static int defaultfontshit[MAXFONTS] = {
      8, 5, 9, 10, 6, 10, 12, 7, 13, 14, 9, 17, 16, 10, 19, 24, 15, 28,
          24, 15, 28};
***************
*** 1249,1254 ****
           sys_get_audio_apis(buf);
           sys_get_midi_apis(buf2);
!          sys_vgui("pdtk_pd_startup {%s} %s %s {%s}\n", pd_version, buf, buf2,
!                                   sys_font); 
      }
      return (0);
--- 1252,1257 ----
           sys_get_audio_apis(buf);
           sys_get_midi_apis(buf2);
!          sys_vgui("pdtk_pd_startup {%s} %s %s {%s} %s\n", pd_version, buf, buf2, 
! 				  sys_font, sys_fontweight); 
      }
      return (0);

Index: m_pd.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v
retrieving revision 1.16.2.2
retrieving revision 1.16.2.2.2.1
diff -C2 -d -r1.16.2.2 -r1.16.2.2.2.1
*** m_pd.h	18 Jul 2007 00:20:12 -0000	1.16.2.2
--- m_pd.h	4 Nov 2007 18:00:20 -0000	1.16.2.2.2.1
***************
*** 12,16 ****
  #define PD_MINOR_VERSION 40
  #define PD_BUGFIX_VERSION 3
! #define PD_TEST_VERSION ""
  
  /* old name for "MSW" flag -- we have to take it for the sake of many old
--- 12,16 ----
  #define PD_MINOR_VERSION 40
  #define PD_BUGFIX_VERSION 3
! #define PD_TEST_VERSION "extended-20071104"
  
  /* old name for "MSW" flag -- we have to take it for the sake of many old
***************
*** 103,106 ****
--- 103,116 ----
  } t_gpointer;
  
+ #define PD_STRINGS 1 /* MP20070211 Use this to test for string capability */
+ /* MP20061223 string type: */
+ 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;
+ /* ...MP20061223 string type */
+ 
+ 
  typedef union word
  {
***************
*** 111,114 ****
--- 121,125 ----
      struct _glist *w_list;
      int w_index;
+     t_string *w_string; /* MP20061223 string type */
  } t_word;
  
***************
*** 126,130 ****
      A_DOLLSYM,
      A_GIMME,
!     A_CANT
  }  t_atomtype;
  
--- 137,142 ----
      A_DOLLSYM,
      A_GIMME,
!     A_CANT,
!     A_STRING /* MP20061223 string type */
  }  t_atomtype;
  
***************
*** 213,216 ****
--- 225,229 ----
  EXTERN t_symbol s_float;
  EXTERN t_symbol s_symbol;
+ EXTERN t_symbol s_string;
  EXTERN t_symbol s_bang;
  EXTERN t_symbol s_list;
***************
*** 256,259 ****
--- 269,273 ----
  #define SETSYMBOL(atom, s) ((atom)->a_type = A_SYMBOL, \
      (atom)->a_w.w_symbol = (s))
+ #define SETSTRING(atom, st) ((atom)->a_type = A_STRING, (atom)->a_w.w_string = (st)) /* MP 20061226 string type */
  #define SETDOLLAR(atom, n) ((atom)->a_type = A_DOLLAR, \
      (atom)->a_w.w_index = (n))
***************
*** 264,267 ****
--- 278,282 ----
  EXTERN t_int atom_getint(t_atom *a);
  EXTERN t_symbol *atom_getsymbol(t_atom *a);
+ EXTERN t_string *atom_getstring(t_atom *a);/* MP 20070108 sring type */
  EXTERN t_symbol *atom_gensym(t_atom *a);
  EXTERN t_float atom_getfloatarg(int which, int argc, t_atom *argv);
***************
*** 327,330 ****
--- 342,346 ----
  EXTERN void pd_float(t_pd *x, t_float f);
  EXTERN void pd_symbol(t_pd *x, t_symbol *s);
+ EXTERN void pd_string(t_pd *x, t_string *st); /* MP 20061226 string type */
  EXTERN void pd_list(t_pd *x, t_symbol *s, int argc, t_atom *argv);
  EXTERN void pd_anything(t_pd *x, t_symbol *s, int argc, t_atom *argv);
***************
*** 351,354 ****
--- 367,371 ----
  EXTERN void outlet_float(t_outlet *x, t_float f);
  EXTERN void outlet_symbol(t_outlet *x, t_symbol *s);
+ EXTERN void outlet_string(t_outlet *x, t_string *st); /* MP 20061226 string type */
  EXTERN void outlet_list(t_outlet *x, t_symbol *s, int argc, t_atom *argv);
  EXTERN void outlet_anything(t_outlet *x, t_symbol *s, int argc, t_atom *argv);
***************
*** 369,372 ****
--- 386,391 ----
      char *result,int resultsize);
  EXTERN t_symbol *canvas_getdir(t_glist *x);
+ EXTERN char sys_font[]; /* default typeface set in s_main.c */
+ EXTERN char sys_fontweight[]; /* default font weight set in s_main.c */
  EXTERN int sys_fontwidth(int fontsize);
  EXTERN int sys_fontheight(int fontsize);
***************
*** 405,408 ****
--- 424,428 ----
  EXTERN void class_doaddfloat(t_class *c, t_method fn);
  EXTERN void class_addsymbol(t_class *c, t_method fn);
+ EXTERN void class_addstring(t_class *c, t_method fn);/* MP 20061226 string type */
  EXTERN void class_addlist(t_class *c, t_method fn);
  EXTERN void class_addanything(t_class *c, t_method fn);
***************
*** 433,436 ****
--- 453,457 ----
  #define class_addfloat(x, y) class_doaddfloat((x), (t_method)(y))
  #define class_addsymbol(x, y) class_addsymbol((x), (t_method)(y))
+ #define class_addstring(x, y) class_addstring((x), (t_method)(y)) /* MP20061226 string type */
  #define class_addlist(x, y) class_addlist((x), (t_method)(y))
  #define class_addanything(x, y) class_addanything((x), (t_method)(y))

Index: g_graph.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_graph.c,v
retrieving revision 1.10
retrieving revision 1.10.6.1
diff -C2 -d -r1.10 -r1.10.6.1
*** g_graph.c	3 Jun 2006 19:13:07 -0000	1.10
--- g_graph.c	4 Nov 2007 18:00:20 -0000	1.10.6.1
***************
*** 63,66 ****
--- 63,69 ----
  }
  
+ /* JMZ: emit a closebang message */
+ void canvas_closebang(t_canvas *x);
+ 
      /* delete an object from a glist and free it */
  void glist_delete(t_glist *x, t_gobj *y)
***************
*** 72,76 ****
      int drawcommand = class_isdrawcommand(y->g_pd);
      int wasdeleting;
!     
      wasdeleting = canvas_setdeleting(canvas, 1);
      if (x->gl_editor)
--- 75,84 ----
      int drawcommand = class_isdrawcommand(y->g_pd);
      int wasdeleting;
! 
!     if (pd_class(&y->g_pd) == canvas_class) {
!       /* JMZ: send a closebang to the canvas */
!       canvas_closebang((t_canvas *)y);
!     }
!  
      wasdeleting = canvas_setdeleting(canvas, 1);
      if (x->gl_editor)
***************
*** 730,734 ****
              /* draw a rectangle around the graph */
          sys_vgui(".x%lx.c create line\
!             %d %d %d %d %d %d %d %d %d %d -tags %s\n",
              glist_getcanvas(x->gl_owner),
              x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag);
--- 738,742 ----
              /* draw a rectangle around the graph */
          sys_vgui(".x%lx.c create line\
!             %d %d %d %d %d %d %d %d %d %d -fill $graph_outline -tags %s\n",
              glist_getcanvas(x->gl_owner),
              x1, y1, x1, y2, x2, y2, x2, y1, x1, y1, tag);
***************
*** 742,748 ****
              i -= sys_fontheight(glist_getfont(x));
              sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor nw\
!              -font -*-courier-bold--normal--%d-* -tags %s\n",
!                 (long)glist_getcanvas(x),  x1, i, arrayname->s_name,
!                 sys_hostfontsize(glist_getfont(x)), tag);
          }
          
--- 750,756 ----
              i -= sys_fontheight(glist_getfont(x));
              sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor nw\
!              -font {{%s} %d %s} -tags %s\n",
!              (long)glist_getcanvas(x),  x1, i, arrayname->s_name, sys_font,
!                 sys_hostfontsize(glist_getfont(x)), sys_fontweight, tag);
          }
          
***************
*** 824,842 ****
          for (i = 0; i < x->gl_nxlabels; i++)
              sys_vgui(".x%lx.c create text\
!         %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n",
                  glist_getcanvas(x),
                  (int)glist_xtopixels(x, atof(x->gl_xlabel[i]->s_name)),
!                 (int)glist_ytopixels(x, x->gl_xlabely), x->gl_xlabel[i]->s_name,
!                 glist_getfont(x), tag);
  
              /* draw y labels */
          for (i = 0; i < x->gl_nylabels; i++)
              sys_vgui(".x%lx.c create text\
!         %d %d -text {%s} -font -*-courier-bold--normal--%d-* -tags %s\n",
                  glist_getcanvas(x),
                  (int)glist_xtopixels(x, x->gl_ylabelx),
                  (int)glist_ytopixels(x, atof(x->gl_ylabel[i]->s_name)),
!                 x->gl_ylabel[i]->s_name,
!                 glist_getfont(x), tag);
  
              /* draw contents of graph as glist */
--- 832,851 ----
          for (i = 0; i < x->gl_nxlabels; i++)
              sys_vgui(".x%lx.c create text\
!         %d %d -text {%s} -font {{%s} %d %s} -tags %s\n",
                  glist_getcanvas(x),
                  (int)glist_xtopixels(x, atof(x->gl_xlabel[i]->s_name)),
!                 (int)glist_ytopixels(x, x->gl_xlabely),
!                 x->gl_xlabel[i]->s_name, sys_font, 
! 					 glist_getfont(x), sys_fontweight, tag);
  
              /* draw y labels */
          for (i = 0; i < x->gl_nylabels; i++)
              sys_vgui(".x%lx.c create text\
!         %d %d -text {%s} -font {{%s} %d %s} -tags %s\n",
                  glist_getcanvas(x),
                  (int)glist_xtopixels(x, x->gl_ylabelx),
                  (int)glist_ytopixels(x, atof(x->gl_ylabel[i]->s_name)),
!                 x->gl_ylabel[i]->s_name, sys_font,
!                 glist_getfont(x), sys_fontweight, tag);
  
              /* draw contents of graph as glist */
***************
*** 951,957 ****
              rtext_select(y, state);
          sys_vgui(".x%lx.c itemconfigure %sR -fill %s\n", glist, 
!         rtext_gettag(y), (state? "blue" : "black"));
          sys_vgui(".x%lx.c itemconfigure graph%lx -fill %s\n",
!             glist_getcanvas(glist), z, (state? "blue" : "black"));
      }
  }
--- 960,967 ----
              rtext_select(y, state);
          sys_vgui(".x%lx.c itemconfigure %sR -fill %s\n", glist, 
!                  rtext_gettag(y), (state? "$select_color" : "black"));
          sys_vgui(".x%lx.c itemconfigure graph%lx -fill %s\n",
!                  glist_getcanvas(glist), z, 
!                  (state? "$select_color" : "$graph_outline"));
      }
  }
***************
*** 1020,1024 ****
      {
          for (i = oldx + 1; i <= newx; i++)
!             vec[i] = newy + (oldy - newy) *
                  ((float)(newx - i))/(float)(newx - oldx);
      }
--- 1030,1034 ----
      {
          for (i = oldx + 1; i <= newx; i++)
!             vec[i*sizeof(union word)/sizeof(t_sample)] = newy + (oldy - newy) *
                  ((float)(newx - i))/(float)(newx - oldx);
      }
***************
*** 1026,1033 ****
      {
          for (i = oldx - 1; i >= newx; i--)
!             vec[i] = newy + (oldy - newy) *
                  ((float)(newx - i))/(float)(newx - oldx);
      }
!     else vec[newx] = newy;
      garray_redraw(a);
  }
--- 1036,1043 ----
      {
          for (i = oldx - 1; i >= newx; i--)
!             vec[i*sizeof(union word)/sizeof(t_sample)] = newy + (oldy - newy) *
                  ((float)(newx - i))/(float)(newx - oldx);
      }
!     else vec[newx*sizeof(union word)/sizeof(t_sample)] = newy;
      garray_redraw(a);
  }

Index: g_editor.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v
retrieving revision 1.20
retrieving revision 1.20.6.1
diff -C2 -d -r1.20 -r1.20.6.1
*** g_editor.c	9 Oct 2006 04:36:12 -0000	1.20
--- g_editor.c	4 Nov 2007 18:00:20 -0000	1.20.6.1
***************
*** 109,113 ****
          x->gl_editor->e_selectline_inno = inno;
          x->gl_editor->e_selectline_tag = oc;
!         sys_vgui(".x%lx.c itemconfigure l%lx -fill blue\n",
              x, x->gl_editor->e_selectline_tag);
      }    
--- 109,113 ----
          x->gl_editor->e_selectline_inno = inno;
          x->gl_editor->e_selectline_tag = oc;
!         sys_vgui(".x%lx.c itemconfigure l%lx -fill $select_color\n",
              x, x->gl_editor->e_selectline_tag);
      }    
***************
*** 118,124 ****
      if (x->gl_editor)
      {
          x->gl_editor->e_selectedline = 0;
!         sys_vgui(".x%lx.c itemconfigure l%lx -fill black\n",
!             x, x->gl_editor->e_selectline_tag);
      }    
  }
--- 118,136 ----
      if (x->gl_editor)
      {
+         t_linetraverser t;
+         t_outconnect *oc;
          x->gl_editor->e_selectedline = 0;
!         linetraverser_start(&t, glist_getcanvas(x));
!         do {
!             oc = linetraverser_next(&t);
!         } while (oc && oc != x->gl_editor->e_selectline_tag);
!         int issignal;
!         if(outlet_getsymbol(t.tr_outlet) == &s_signal)
!             issignal = 1;
!         else
!             issignal = 0;
!         sys_vgui(".x%lx.c itemconfigure l%lx -fill %s\n",
!             x, x->gl_editor->e_selectline_tag,
!             (issignal ? "$signal_cord" : "$msg_cord"));
      }    
  }
***************
*** 1150,1154 ****
                                      (issignal ? 2 : 1));
                      }                                   
!                     else canvas_setcursor(x, CURSOR_EDITMODE_CONNECT);
                  }
                  else if (doit)
--- 1162,1170 ----
                                      (issignal ? 2 : 1));
                      }                                   
!                     else 
!                     {
!                         canvas_setcursor(x, CURSOR_EDITMODE_CONNECT);
!                     }
!                     
                  }
                  else if (doit)
***************
*** 1320,1323 ****
--- 1336,1340 ----
              if (doit)
              {
+                 int issignal = obj_issignaloutlet(ob1, closest1);
                  oc = obj_connect(ob1, closest1, ob2, closest2);
                  lx1 = x11 + (noutlet1 > 1 ?
***************
*** 1329,1336 ****
                              + IOMIDDLE;
                  ly2 = y21;
!                 sys_vgui(".x%lx.c create line %d %d %d %d -width %d -tags l%lx\n",
                      glist_getcanvas(x),
                          lx1, ly1, lx2, ly2,
!                             (obj_issignaloutlet(ob1, closest1) ? 2 : 1), oc);
                  canvas_setundo(x, canvas_undo_connect,
                      canvas_undo_set_connect(x, 
--- 1346,1355 ----
                              + IOMIDDLE;
                  ly2 = y21;
!                 sys_vgui(".x%lx.c create line %d %d %d %d -fill %s -width %d -tags l%lx\n",
                      glist_getcanvas(x),
                          lx1, ly1, lx2, ly2,
!                     (issignal ? "$signal_cord" : "$msg_cord"),
!                     (issignal ? 2 : 1), 
!                     oc);
                  canvas_setundo(x, canvas_undo_connect,
                      canvas_undo_set_connect(x, 
***************
*** 1679,1685 ****
          else
          {
!             sys_vgui(
! "pdtk_check {Close this window??} {.x%lx menuclose 1;\n} yes\n",
!                 x);
          }
      }
--- 1698,1705 ----
          else
          {
! /*             sys_vgui( */
! /* 				"pdtk_check {Close this window??} {.x%lx menuclose 1;\n} yes\n", */
! /*                 x); */
! 			pd_free(&x->gl_pd);
          }
      }

Index: m_pd.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_pd.c,v
retrieving revision 1.4
retrieving revision 1.4.10.1
diff -C2 -d -r1.4 -r1.4.10.1
*** m_pd.c	28 Nov 2004 21:20:42 -0000	1.4
--- m_pd.c	4 Nov 2007 18:00:20 -0000	1.4.10.1
***************
*** 285,288 ****
--- 285,294 ----
  }
  
+ void pd_string(t_pd *x, t_string *st) /* MP20061226 string type */
+ {
+     /*post("pd_string: st %p length %lu (*x)->c_stringmethod %p", st, st->s_length, (*x)->c_stringmethod);*/
+     (*(*x)->c_stringmethod)(x, st);
+ }
+ 
  void pd_list(t_pd *x, t_symbol *s, int argc, t_atom *argv)
  {

Index: x_connective.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_connective.c,v
retrieving revision 1.9
retrieving revision 1.9.6.1
diff -C2 -d -r1.9 -r1.9.6.1
*** x_connective.c	24 Aug 2006 15:23:52 -0000	1.9
--- x_connective.c	4 Nov 2007 18:00:20 -0000	1.9.6.1
***************
*** 1203,1214 ****
      t_object x_obj;
      t_symbol *x_format;
  } t_makefilename;
  
  static void *makefilename_new(t_symbol *s)
  {
      t_makefilename *x = (t_makefilename *)pd_new(makefilename_class);
!     if (!s->s_name) s = gensym("file.%d");
      outlet_new(&x->x_obj, &s_symbol);
      x->x_format = s;
      return (x);
  }
--- 1203,1253 ----
      t_object x_obj;
      t_symbol *x_format;
+     t_atomtype x_accept;
+     int x_intconvert;
  } t_makefilename;
  
+ static void makefilename_scanformat(t_makefilename *x)
+ {
+     int num=0, infmt=0;
+     char *str,*chr;
+     if (!x->x_format) return;
+     x->x_accept = A_NULL;
+     for (str=x->x_format->s_name; *str; str++) {
+         if (!infmt && *str=='%') {
+             infmt=1;
+             continue;
+         }
+         if (infmt) {
+             if (strchr("-.#0123456789",*str)!=0)
+                 continue;
+             if (*str=='s') {
+                 x->x_accept = A_SYMBOL;
+                 x->x_intconvert = 0;
+                 break;
+             }
+             if (strchr("fgGeE",*str)!=0) {
+                 x->x_accept = A_FLOAT;
+                 x->x_intconvert = 0;
+                 break;
+             }
+             if (strchr("xXdiou",*str)!=0) {
+                 x->x_accept = A_FLOAT;
+                 x->x_intconvert = 1;
+                 break;
+             }
+             infmt=0;
+         }
+     }
+ }
+ 
  static void *makefilename_new(t_symbol *s)
  {
      t_makefilename *x = (t_makefilename *)pd_new(makefilename_class);
!     if (!s || !s->s_name) s = gensym("file.%d");
      outlet_new(&x->x_obj, &s_symbol);
      x->x_format = s;
+     x->x_accept = A_NULL;
+     x->x_intconvert = 0;
+     makefilename_scanformat(x);
      return (x);
  }
***************
*** 1217,1221 ****
--- 1256,1268 ----
  {
      char buf[MAXPDSTRING];
+     if (x->x_accept == A_FLOAT) {
+         if (x->x_intconvert)
      sprintf(buf, x->x_format->s_name, (int)f);
+         else
+             sprintf(buf, x->x_format->s_name, f);
+     }
+     else
+         sprintf(buf, x->x_format->s_name, "");
+     if (buf[0]!=0)
      outlet_symbol(x->x_obj.ob_outlet, gensym(buf));
  }
***************
*** 1224,1228 ****
--- 1271,1279 ----
  {
      char buf[MAXPDSTRING];
+     if (x->x_accept == A_SYMBOL)
      sprintf(buf, x->x_format->s_name, s->s_name);
+     else
+         sprintf(buf, x->x_format->s_name, 0);
+     if (buf[0]!=0)
      outlet_symbol(x->x_obj.ob_outlet, gensym(buf));
  }
***************
*** 1231,1234 ****
--- 1282,1286 ----
  {
      x->x_format = s;
+     makefilename_scanformat(x);
  }
  

Index: g_bang.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_bang.c,v
retrieving revision 1.5
retrieving revision 1.5.6.1
diff -C2 -d -r1.5 -r1.5.6.1
*** g_bang.c	8 Sep 2006 23:45:30 -0000	1.5
--- g_bang.c	4 Nov 2007 18:00:20 -0000	1.5.6.1
***************
*** 56,64 ****
               x->x_flashed?x->x_gui.x_fcol:x->x_gui.x_bcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xpos+x->x_gui.x_ldx,
               ypos+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
          sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
--- 56,65 ----
               x->x_flashed?x->x_gui.x_fcol:x->x_gui.x_bcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!              -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
               canvas, xpos+x->x_gui.x_ldx,
               ypos+x->x_gui.x_ldy,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!              x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
! 			 x->x_gui.x_lcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
          sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
***************
*** 116,121 ****
      t_canvas *canvas=glist_getcanvas(glist);
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
--- 117,122 ----
      t_canvas *canvas=glist_getcanvas(glist);
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
***************
*** 238,242 ****
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s BANG \
              ----------dimensions(pix):----------- %d %d size: 0 0 empty \
              --------flash-time(ms)(ms):--------- %d intrrpt: %d hold: %d \
--- 239,243 ----
  
      iemgui_properties(&x->x_gui, srl);
!     sprintf(buf, "pdtk_iemgui_dialog %%s |bang| \
              ----------dimensions(pix):----------- %d %d size: 0 0 empty \
              --------flash-time(ms)(ms):--------- %d intrrpt: %d hold: %d \
***************
*** 482,486 ****
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, "courier"); }
  
      if (x->x_gui.x_fsf.x_rcv_able)
--- 483,487 ----
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, sys_font); }
  
      if (x->x_gui.x_fsf.x_rcv_able)

Index: g_numbox.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_numbox.c,v
retrieving revision 1.8
retrieving revision 1.8.6.1
diff -C2 -d -r1.8 -r1.8.6.1
*** g_numbox.c	8 Sep 2006 23:45:30 -0000	1.8
--- g_numbox.c	4 Nov 2007 18:00:20 -0000	1.8.6.1
***************
*** 196,208 ****
          x->x_gui.x_fcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!         -font {%s %d bold} -fill #%6.6x -tags %lxLABEL\n",
          canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
          strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!         x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_lcol, x);
      my_numbox_ftoa(x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!         -font {%s %d bold} -fill #%6.6x -tags %lxNUMBER\n",
          canvas, xpos+half+2, ypos+half+d,
!         x->x_buf, x->x_gui.x_font, x->x_gui.x_fontsize, x->x_gui.x_fcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
          sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
--- 196,210 ----
          x->x_gui.x_fcol, x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!         -font {{%s} %d %s} -fill #%6.6x -tags %lxLABEL\n",
          canvas, xpos+x->x_gui.x_ldx, ypos+x->x_gui.x_ldy,
          strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"",
!         x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
! 			 x->x_gui.x_lcol, x);
      my_numbox_ftoa(x);
      sys_vgui(".x%lx.c create text %d %d -text {%s} -anchor w \
!         -font {{%s} %d %s} -fill #%6.6x -tags %lxNUMBER\n",
          canvas, xpos+half+2, ypos+half+d,
!         x->x_buf, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
!         x->x_gui.x_fcol, x);
      if(!x->x_gui.x_fsf.x_snd_able)
          sys_vgui(".x%lx.c create rectangle %d %d %d %d -tags %lxOUT%d\n",
***************
*** 270,279 ****
      t_canvas *canvas=glist_getcanvas(glist);
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {%s %d bold} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
!     sys_vgui(".x%lx.c itemconfigure %lxNUMBER -font {%s %d bold} -fill #%6.6x \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_fcol);
      sys_vgui(".x%lx.c itemconfigure %lxBASE1 -fill #%6.6x\n", canvas,
--- 272,281 ----
      t_canvas *canvas=glist_getcanvas(glist);
  
!     sys_vgui(".x%lx.c itemconfigure %lxLABEL -font {{%s} %d %s} -fill #%6.6x -text {%s} \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_lcol,
               strcmp(x->x_gui.x_lab->s_name, "empty")?x->x_gui.x_lab->s_name:"");
!     sys_vgui(".x%lx.c itemconfigure %lxNUMBER -font {{%s} %d %s} -fill #%6.6x \n",
!              canvas, x, x->x_gui.x_font, x->x_gui.x_fontsize, sys_fontweight,
               x->x_gui.x_fsf.x_selected?IEM_GUI_COLOR_SELECTED:x->x_gui.x_fcol);
      sys_vgui(".x%lx.c itemconfigure %lxBASE1 -fill #%6.6x\n", canvas,
***************
*** 452,456 ****
  
      }
!     sprintf(buf, "pdtk_iemgui_dialog %%s NUMBERBOX \
              -------dimensions(digits)(pix):------- %d %d width: %d %d height: \
              -----------output-range:----------- %g min: %g max: %d \
--- 454,458 ----
  
      }
!     sprintf(buf, "pdtk_iemgui_dialog %%s |nbx| \
              -------dimensions(digits)(pix):------- %d %d width: %d %d height: \
              -----------output-range:----------- %g min: %g max: %d \
***************
*** 807,811 ****
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, "courier"); }
      if (x->x_gui.x_fsf.x_rcv_able)
          pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);
--- 809,813 ----
      else if(x->x_gui.x_fsf.x_font_style == 2) strcpy(x->x_gui.x_font, "times");
      else { x->x_gui.x_fsf.x_font_style = 0;
!         strcpy(x->x_gui.x_font, sys_font); }
      if (x->x_gui.x_fsf.x_rcv_able)
          pd_bind(&x->x_gui.x_obj.ob_pd, x->x_gui.x_rcv);





More information about the Pd-cvs mailing list