[PD-cvs] pd/src CHANGELOG.txt, 1.6, 1.7 configure.in, 1.25, 1.26 d_arithmetic.c, 1.3, 1.4 d_array.c, 1.9, 1.10 d_ctl.c, 1.4, 1.5 d_dac.c, 1.3, 1.4 d_delay.c, 1.3, 1.4 d_fft.c, 1.4, 1.5 d_fft_fftsg.c, 1.2, 1.3 d_fft_mayer.c, 1.1, 1.2 d_filter.c, 1.5, 1.6 d_global.c, 1.2, 1.3 d_math.c, 1.3, 1.4 d_misc.c, 1.5, 1.6 d_osc.c, 1.6, 1.7 d_resample.c, 1.3, 1.4 d_soundfile.c, 1.14, 1.15 d_ugen.c, 1.9, 1.10 g_all_guis.c, 1.9, 1.10 g_all_guis.h, 1.5, 1.6 g_array.c, 1.13, 1.14 g_bang.c, 1.5, 1.6 g_canvas.c, 1.19, 1.20 g_canvas.h, 1.14, 1.15 g_editor.c, 1.20, 1.21 g_graph.c, 1.11, 1.12 g_hdial.c, 1.7, 1.8 g_hslider.c, 1.6, 1.7 g_io.c, 1.7, 1.8 g_mycanvas.c, 1.5, 1.6 g_numbox.c, 1.8, 1.9 g_readwrite.c, 1.8, 1.9 g_rtext.c, 1.8, 1.9 g_scalar.c, 1.9, 1.10 g_template.c, 1.19, 1.20 g_text.c, 1.15, 1.16 g_toggle.c, 1.5, 1.6 g_traversal.c, 1.7, 1.8 g_vdial.c, 1.6, 1.7 g_vslider.c, 1.6, 1.7 g_vumeter.c, 1.5, 1.6 m_binbuf.c, 1.14, 1.15 m_class.c, 1.7, 1.8 m_glob.c, 1.6, 1.7 m_obj.c, 1.5, 1.6 m_pd.h, 1.20, 1.21 m_sched.c, 1.11, 1.12 makefile.in, 1.17, 1.18 makefile.nt, 1.11, 1.12 notes.txt, 1.36, 1.37 s_audio.c, 1.15, 1.16 s_audio_jack.c, 1.8, 1.9 s_audio_oss.c, 1.7, 1.8 s_audio_pa.c, 1.7, 1.8 s_entry.c, 1.4, 1.5 s_inter.c, 1.20, 1.21 s_loader.c, 1.14, 1.15 s_main.c, 1.31, 1.32 s_path.c, 1.13, 1.14 s_print.c, 1.3, 1.4 s_stuff.h, 1.11, 1.12 u_main.tk, 1.29, 1.30 x_acoustics.c, 1.2, 1.3 x_arithmetic.c, 1.5, 1.6 x_connective.c, 1.9, 1.10 x_list.c, 1.6, 1.7 x_midi.c, 1.5, 1.6 x_misc.c, 1.4, 1.5 x_qlist.c, 1.3, 1.4 x_time.c, 1.2, 1.3

Miller Puckette millerpuckette at users.sourceforge.net
Fri Dec 28 04:43:08 CET 2007


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

Modified Files:
	CHANGELOG.txt configure.in d_arithmetic.c d_array.c d_ctl.c 
	d_dac.c d_delay.c d_fft.c d_fft_fftsg.c d_fft_mayer.c 
	d_filter.c d_global.c d_math.c d_misc.c d_osc.c d_resample.c 
	d_soundfile.c d_ugen.c g_all_guis.c g_all_guis.h g_array.c 
	g_bang.c g_canvas.c g_canvas.h g_editor.c g_graph.c g_hdial.c 
	g_hslider.c g_io.c g_mycanvas.c g_numbox.c g_readwrite.c 
	g_rtext.c g_scalar.c g_template.c g_text.c g_toggle.c 
	g_traversal.c g_vdial.c g_vslider.c g_vumeter.c m_binbuf.c 
	m_class.c m_glob.c m_obj.c m_pd.h m_sched.c makefile.in 
	makefile.nt notes.txt s_audio.c s_audio_jack.c s_audio_oss.c 
	s_audio_pa.c s_entry.c s_inter.c s_loader.c s_main.c s_path.c 
	s_print.c s_stuff.h u_main.tk x_acoustics.c x_arithmetic.c 
	x_connective.c x_list.c x_midi.c x_misc.c x_qlist.c x_time.c 
Log Message:
... and again trying to check in 0.41-0 test 10



Index: s_loader.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_loader.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** s_loader.c	7 Dec 2006 16:19:05 -0000	1.14
--- s_loader.c	28 Dec 2007 03:43:06 -0000	1.15
***************
*** 125,129 ****
      if (hexmunge)
      {
!         memmove(symname+6, symname, strlen(symname+1));
          strncpy(symname, "setup_", 6);
      }
--- 125,129 ----
      if (hexmunge)
      {
!         memmove(symname+6, symname, strlen(symname)+1);
          strncpy(symname, "setup_", 6);
      }

Index: x_qlist.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_qlist.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** x_qlist.c	9 Oct 2006 04:36:12 -0000	1.3
--- x_qlist.c	28 Dec 2007 03:43:06 -0000	1.4
***************
*** 19,25 ****
      int x_onset;                /* playback position */
      t_clock *x_clock;
!     float x_tempo;
      double x_whenclockset;
!     float x_clockdelay;
      t_symbol *x_dir;
      t_canvas *x_canvas;
--- 19,25 ----
      int x_onset;                /* playback position */
      t_clock *x_clock;
!     t_float x_tempo;
      double x_whenclockset;
!     t_float x_clockdelay;
      t_symbol *x_dir;
      t_canvas *x_canvas;
***************
*** 101,105 ****
              else if (!(target = ap->a_w.w_symbol->s_thing))
              {
!                 error("qlist: %s: no such object", ap->a_w.w_symbol->s_name);
                  continue;
              }
--- 101,106 ----
              else if (!(target = ap->a_w.w_symbol->s_thing))
              {
!                 pd_error(x, "qlist: %s: no such object",
!                     ap->a_w.w_symbol->s_name);
                  continue;
              }
***************
*** 181,188 ****
          cr = 1;
      else if (*format->s_name)
!         error("qlist_read: unknown flag: %s", format->s_name);
  
      if (binbuf_read_via_canvas(x->x_binbuf, filename->s_name, x->x_canvas, cr))
!             error("%s: read failed", filename->s_name);
      x->x_onset = 0x7fffffff;
      x->x_reentered = 1;
--- 182,189 ----
          cr = 1;
      else if (*format->s_name)
!         pd_error(x, "qlist_read: unknown flag: %s", format->s_name);
  
      if (binbuf_read_via_canvas(x->x_binbuf, filename->s_name, x->x_canvas, cr))
!             pd_error(x, "%s: read failed", filename->s_name);
      x->x_onset = 0x7fffffff;
      x->x_reentered = 1;
***************
*** 198,204 ****
          cr = 1;
      else if (*format->s_name)
!         error("qlist_read: unknown flag: %s", format->s_name);
      if (binbuf_write(x->x_binbuf, buf, "", cr))
!             error("%s: write failed", filename->s_name);
  }
  
--- 199,205 ----
          cr = 1;
      else if (*format->s_name)
!         pd_error(x, "qlist_read: unknown flag: %s", format->s_name);
      if (binbuf_write(x->x_binbuf, buf, "", cr))
!             pd_error(x, "%s: write failed", filename->s_name);
  }
  
***************
*** 211,215 ****
  static void qlist_tempo(t_qlist *x, t_float f)
  {
!     float newtempo;
      if (f < 1e-20) f = 1e-20;
      else if (f > 1e20) f = 1e20;
--- 212,216 ----
  static void qlist_tempo(t_qlist *x, t_float f)
  {
!     t_float newtempo;
      if (f < 1e-20) f = 1e-20;
      else if (f > 1e20) f = 1e20;
***************
*** 217,222 ****
      if (x->x_whenclockset != 0)
      {
!         float elapsed = clock_gettimesince(x->x_whenclockset);
!         float left = x->x_clockdelay - elapsed;
          if (left < 0) left = 0;
          left *= newtempo / x->x_tempo;
--- 218,223 ----
      if (x->x_whenclockset != 0)
      {
!         t_float elapsed = clock_gettimesince(x->x_whenclockset);
!         t_float left = x->x_clockdelay - elapsed;
          if (left < 0) left = 0;
          left *= newtempo / x->x_tempo;

Index: u_main.tk
===================================================================
RCS file: /cvsroot/pure-data/pd/src/u_main.tk,v
retrieving revision 1.29
retrieving revision 1.30
diff -C2 -d -r1.29 -r1.30
*** u_main.tk	28 Dec 2007 03:28:31 -0000	1.29
--- u_main.tk	28 Dec 2007 03:43:06 -0000	1.30
***************
*** 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
- }        
[...1163 lines suppressed...]
!         global pd_startup$x
!         set pd_startup$x [lindex $pd_startup $x]
!     }
  
      set pd_nort $nort
***************
*** 4241,4245 ****
      }
  
!     for {set x 0} {$x < 10} {incr x} {
          entry $id.f$x -textvariable pd_startup$x -width 80
          bind $id.f$x <KeyPress-Return> [concat startup_ok $id]
--- 4373,4379 ----
      }
  
! 
! 
!     for {set x 0} {$x < $pd_startup_count} {incr x} {
          entry $id.f$x -textvariable pd_startup$x -width 80
          bind $id.f$x <KeyPress-Return> [concat startup_ok $id]

Index: s_path.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_path.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** s_path.c	20 Jul 2007 03:25:20 -0000	1.13
--- s_path.c	28 Dec 2007 03:43:06 -0000	1.14
***************
*** 523,531 ****
      int i;
      t_namelist *nl;
!     
!     for (nl = sys_searchpath, i = 0; nl && i < 10; nl = nl->nl_next, i++)
!         sys_vgui("pd_set pd_path%d \"%s\"\n", i, nl->nl_string);
!     for (; i < 10; i++)
!         sys_vgui("pd_set pd_path%d \"\"\n", i);
  
      sprintf(buf, "pdtk_path_dialog %%s %d %d\n", sys_usestdpath, sys_verbose);
--- 523,536 ----
      int i;
      t_namelist *nl;
! 
!     sprintf(buf, "list");
!     for (nl = sys_searchpath, i = 0; nl; nl = nl->nl_next, i++) {
!       if(nl->nl_string){
!         strcat(buf, " \"");
!         strcat(buf, nl->nl_string);
!         strcat(buf, "\"");
!       }
!     }
!     sys_vgui("pd_set pd_path [%s]\n", buf);
  
      sprintf(buf, "pdtk_path_dialog %%s %d %d\n", sys_usestdpath, sys_verbose);
***************
*** 555,563 ****
      int i;
      t_namelist *nl;
!     
!     for (nl = sys_externlist, i = 0; nl && i < 10; nl = nl->nl_next, i++)
!         sys_vgui("pd_set pd_startup%d \"%s\"\n", i, nl->nl_string);
!     for (; i < 10; i++)
!         sys_vgui("pd_set pd_startup%d \"\"\n", i);
  
      sprintf(buf, "pdtk_startup_dialog %%s %d \"%s\"\n", sys_defeatrt,
--- 560,573 ----
      int i;
      t_namelist *nl;
! 
!     sprintf(buf, "list");
!     for (nl = sys_externlist, i = 0; nl; nl = nl->nl_next, i++) {
!       if(nl->nl_string){
!         strcat(buf, " \"");
!         strcat(buf, nl->nl_string);
!         strcat(buf, "\"");
!       }
!     }
!     sys_vgui("pd_set pd_startup [%s]\n", buf);
  
      sprintf(buf, "pdtk_startup_dialog %%s %d \"%s\"\n", sys_defeatrt,

Index: s_stuff.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_stuff.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** s_stuff.h	18 Aug 2007 23:32:44 -0000	1.11
--- s_stuff.h	28 Dec 2007 03:43:06 -0000	1.12
***************
*** 69,73 ****
  extern int sys_advance_samples; /* scheduler advance in samples */
  extern int sys_blocksize;       /* audio I/O block size in sample frames */
! extern float sys_dacsr;
  extern int sys_schedadvance;
  extern int sys_sleepgrain;
--- 69,73 ----
  extern int sys_advance_samples; /* scheduler advance in samples */
  extern int sys_blocksize;       /* audio I/O block size in sample frames */
! extern t_float sys_dacsr;
  extern int sys_schedadvance;
  extern int sys_sleepgrain;
***************
*** 84,88 ****
  void sys_set_priority(int higher);
  void sys_audiobuf(int nbufs);
! void sys_getmeters(float *inmax, float *outmax);
  void sys_listdevs(void);
  void sys_setblocksize(int n);
--- 84,88 ----
  void sys_set_priority(int higher);
  void sys_audiobuf(int nbufs);
! void sys_getmeters(t_sample *inmax, t_sample *outmax);
  void sys_listdevs(void);
  void sys_setblocksize(int n);
***************
*** 287,293 ****
  extern t_printhook sys_printhook;  /* set this to override printing */
  extern int sys_printtostderr;
- #ifdef MSW
- #define vsnprintf  _vsnprintf /* jsarlo -- alias this name for msw */
- #endif
  
  /* jsarlo { */
--- 287,290 ----
***************
*** 303,307 ****
  EXTERN int* get_sys_schedblocksize(void ) ;
  EXTERN double* get_sys_time(void ) ;
! EXTERN float* get_sys_dacsr(void ) ;
  EXTERN int* get_sys_sleepgrain(void ) ;
  EXTERN int* get_sys_schedadvance(void ) ;
--- 300,304 ----
  EXTERN int* get_sys_schedblocksize(void ) ;
  EXTERN double* get_sys_time(void ) ;
! EXTERN t_float* get_sys_dacsr(void ) ;
  EXTERN int* get_sys_sleepgrain(void ) ;
  EXTERN int* get_sys_schedadvance(void ) ;

Index: CHANGELOG.txt
===================================================================
RCS file: /cvsroot/pure-data/pd/src/CHANGELOG.txt,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CHANGELOG.txt	18 Aug 2007 23:32:43 -0000	1.6
--- CHANGELOG.txt	28 Dec 2007 03:43:02 -0000	1.7
***************
*** 5,9 ****
  0.41.0
  
! add support for callback-based audio I/O; changes in 
  
  0.40.0
--- 5,12 ----
  0.41.0
  
! add support for callback-based audio I/O
! headers & code changed to use t_float or t_sample instead of float (patches
! by zmoelnig).
! 
  
  0.40.0

Index: d_math.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_math.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** d_math.c	20 Jul 2007 03:25:20 -0000	1.3
--- d_math.c	28 Dec 2007 03:43:03 -0000	1.4
***************
*** 17,23 ****
  {
      t_object x_obj;
!     float x_f;
!     t_sample x_lo;
!     t_sample x_hi;
  } t_clip;
  
--- 17,23 ----
  {
      t_object x_obj;
!     t_float x_f;
!     t_float x_lo;
!     t_float x_hi;
  } t_clip;
  
***************
*** 37,46 ****
  {
      t_clip *x = (t_clip *)(w[1]);
!     t_float *in = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         float f = *in++;
          if (f < x->x_lo) f = x->x_lo;
          if (f > x->x_hi) f = x->x_hi;
--- 37,46 ----
  {
      t_clip *x = (t_clip *)(w[1]);
!     t_sample *in = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         t_sample f = *in++;
          if (f < x->x_lo) f = x->x_lo;
          if (f > x->x_hi) f = x->x_hi;
***************
*** 126,130 ****
  {
      t_object x_obj;
!     float x_f;
  } t_sigrsqrt;
  
--- 126,130 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_sigrsqrt;
  
***************
*** 141,154 ****
  static t_int *sigrsqrt_perform(t_int *w)
  {
!     float *in = *(t_float **)(w+1), *out = *(t_float **)(w+2);
      t_int n = *(t_int *)(w+3);
      while (n--)
      {   
!         float f = *in;
          long l = *(long *)(in++);
          if (f < 0) *out++ = 0;
          else
          {
!             float g = rsqrt_exptab[(l >> 23) & 0xff] *
                  rsqrt_mantissatab[(l >> 13) & 0x3ff];
              *out++ = 1.5 * g - 0.5 * g * g * g * f;
--- 141,154 ----
  static t_int *sigrsqrt_perform(t_int *w)
  {
!     t_sample *in = *(t_sample **)(w+1), *out = *(t_sample **)(w+2);
      t_int n = *(t_int *)(w+3);
      while (n--)
      {   
!         t_sample f = *in;
          long l = *(long *)(in++);
          if (f < 0) *out++ = 0;
          else
          {
!             t_sample g = rsqrt_exptab[(l >> 23) & 0xff] *
                  rsqrt_mantissatab[(l >> 13) & 0x3ff];
              *out++ = 1.5 * g - 0.5 * g * g * g * f;
***************
*** 180,184 ****
  {
      t_object x_obj;
!     float x_f;
  } t_sigsqrt;
  
--- 180,184 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_sigsqrt;
  
***************
*** 195,208 ****
  t_int *sigsqrt_perform(t_int *w)    /* not static; also used in d_fft.c */
  {
!     float *in = *(t_float **)(w+1), *out = *(t_float **)(w+2);
      t_int n = *(t_int *)(w+3);
      while (n--)
      {   
!         float f = *in;
          long l = *(long *)(in++);
          if (f < 0) *out++ = 0;
          else
          {
!             float g = rsqrt_exptab[(l >> 23) & 0xff] *
                  rsqrt_mantissatab[(l >> 13) & 0x3ff];
              *out++ = f * (1.5 * g - 0.5 * g * g * g * f);
--- 195,208 ----
  t_int *sigsqrt_perform(t_int *w)    /* not static; also used in d_fft.c */
  {
!     t_sample *in = *(t_sample **)(w+1), *out = *(t_sample **)(w+2);
      t_int n = *(t_int *)(w+3);
      while (n--)
      {   
!         t_sample f = *in;
          long l = *(long *)(in++);
          if (f < 0) *out++ = 0;
          else
          {
!             t_sample g = rsqrt_exptab[(l >> 23) & 0xff] *
                  rsqrt_mantissatab[(l >> 13) & 0x3ff];
              *out++ = f * (1.5 * g - 0.5 * g * g * g * f);
***************
*** 231,235 ****
  {
      t_object x_obj;
!     float x_f;
  } t_sigwrap;
  
--- 231,235 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_sigwrap;
  
***************
*** 246,254 ****
  static t_int *sigwrap_perform(t_int *w)
  {
!     float *in = *(t_float **)(w+1), *out = *(t_float **)(w+2);
      t_int n = *(t_int *)(w+3);
      while (n--)
      {   
!         float f = *in++;
          int k = f;
          if (f > 0) *out++ = f-k;
--- 246,254 ----
  static t_int *sigwrap_perform(t_int *w)
  {
!     t_sample *in = *(t_sample **)(w+1), *out = *(t_sample **)(w+2);
      t_int n = *(t_int *)(w+3);
      while (n--)
      {   
!         t_sample f = *in++;
          int k = f;
          if (f > 0) *out++ = f-k;
***************
*** 276,280 ****
  {
      t_object x_obj;
!     float x_f;
  } t_mtof_tilde;
  
--- 276,280 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_mtof_tilde;
  
***************
*** 291,299 ****
  static t_int *mtof_tilde_perform(t_int *w)
  {
!     float *in = *(t_float **)(w+1), *out = *(t_float **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; in++, out++)
      {
!         float f = *in;
          if (f <= -1500) *out = 0;
          else
--- 291,299 ----
  static t_int *mtof_tilde_perform(t_int *w)
  {
!     t_sample *in = *(t_sample **)(w+1), *out = *(t_sample **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; in++, out++)
      {
!         t_sample f = *in;
          if (f <= -1500) *out = 0;
          else
***************
*** 324,328 ****
  {
      t_object x_obj;
!     float x_f;
  } t_ftom_tilde;
  
--- 324,328 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_ftom_tilde;
  
***************
*** 339,347 ****
  static t_int *ftom_tilde_perform(t_int *w)
  {
!     float *in = *(t_float **)(w+1), *out = *(t_float **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; *in++, out++)
      {
!         float f = *in;
          *out = (f > 0 ? 17.3123405046 * log(.12231220585 * f) : -1500);
      }
--- 339,347 ----
  static t_int *ftom_tilde_perform(t_int *w)
  {
!     t_sample *in = *(t_sample **)(w+1), *out = *(t_sample **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; *in++, out++)
      {
!         t_sample f = *in;
          *out = (f > 0 ? 17.3123405046 * log(.12231220585 * f) : -1500);
      }
***************
*** 367,371 ****
  {
      t_object x_obj;
!     float x_f;
  } t_dbtorms_tilde;
  
--- 367,371 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_dbtorms_tilde;
  
***************
*** 382,390 ****
  static t_int *dbtorms_tilde_perform(t_int *w)
  {
!     float *in = *(t_float **)(w+1), *out = *(t_float **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; in++, out++)
      {
!         float f = *in;
          if (f <= 0) *out = 0;
          else
--- 382,390 ----
  static t_int *dbtorms_tilde_perform(t_int *w)
  {
!     t_sample *in = *(t_sample **)(w+1), *out = *(t_sample **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; in++, out++)
      {
!         t_sample f = *in;
          if (f <= 0) *out = 0;
          else
***************
*** 416,420 ****
  {
      t_object x_obj;
!     float x_f;
  } t_rmstodb_tilde;
  
--- 416,420 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_rmstodb_tilde;
  
***************
*** 431,443 ****
  static t_int *rmstodb_tilde_perform(t_int *w)
  {
!     float *in = *(t_float **)(w+1), *out = *(t_float **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; in++, out++)
      {
!         float f = *in;
          if (f <= 0) *out = 0;
          else
          {
!             float g = 100 + 20./LOGTEN * log(f);
              *out = (g < 0 ? 0 : g);
          }
--- 431,443 ----
  static t_int *rmstodb_tilde_perform(t_int *w)
  {
!     t_sample *in = *(t_sample **)(w+1), *out = *(t_sample **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; in++, out++)
      {
!         t_sample f = *in;
          if (f <= 0) *out = 0;
          else
          {
!             t_sample g = 100 + 20./LOGTEN * log(f);
              *out = (g < 0 ? 0 : g);
          }
***************
*** 464,468 ****
  {
      t_object x_obj;
!     float x_f;
  } t_dbtopow_tilde;
  
--- 464,468 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_dbtopow_tilde;
  
***************
*** 479,487 ****
  static t_int *dbtopow_tilde_perform(t_int *w)
  {
!     float *in = *(t_float **)(w+1), *out = *(t_float **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; in++, out++)
      {
!         float f = *in;
          if (f <= 0) *out = 0;
          else
--- 479,487 ----
  static t_int *dbtopow_tilde_perform(t_int *w)
  {
!     t_sample *in = *(t_sample **)(w+1), *out = *(t_sample **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; in++, out++)
      {
!         t_sample f = *in;
          if (f <= 0) *out = 0;
          else
***************
*** 513,517 ****
  {
      t_object x_obj;
!     float x_f;
  } t_powtodb_tilde;
  
--- 513,517 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_powtodb_tilde;
  
***************
*** 528,540 ****
  static t_int *powtodb_tilde_perform(t_int *w)
  {
!     float *in = *(t_float **)(w+1), *out = *(t_float **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; in++, out++)
      {
!         float f = *in;
          if (f <= 0) *out = 0;
          else
          {
!             float g = 100 + 10./LOGTEN * log(f);
              *out = (g < 0 ? 0 : g);
          }
--- 528,540 ----
  static t_int *powtodb_tilde_perform(t_int *w)
  {
!     t_sample *in = *(t_sample **)(w+1), *out = *(t_sample **)(w+2);
      t_int n = *(t_int *)(w+3);
      for (; n--; in++, out++)
      {
!         t_sample f = *in;
          if (f <= 0) *out = 0;
          else
          {
!             t_sample g = 100 + 10./LOGTEN * log(f);
              *out = (g < 0 ? 0 : g);
          }

Index: g_rtext.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_rtext.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** g_rtext.c	2 Aug 2007 00:33:50 -0000	1.8
--- g_rtext.c	28 Dec 2007 03:43:04 -0000	1.9
***************
*** 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 (& linux too?) */
! #ifndef MSW
  #define TMARGIN 2
  #define BMARGIN 2
+ #else
+ #define TMARGIN 3
+ #define BMARGIN 1
+ #endif
  
  #define SEND_FIRST 1
***************
*** 151,155 ****
      int *indexp)
  {
!     float dispx, dispy;
      char smallbuf[200], *tempbuf;
      int outchars = 0, nlines = 0, ncolumns = 0,
--- 157,161 ----
      int *indexp)
  {
!     t_float dispx, dispy;
      char smallbuf[200], *tempbuf;
      int outchars = 0, nlines = 0, ncolumns = 0,

Index: d_arithmetic.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_arithmetic.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** d_arithmetic.c	28 Nov 2004 21:20:42 -0000	1.3
--- d_arithmetic.c	28 Dec 2007 03:43:02 -0000	1.4
***************
*** 17,21 ****
  {
      t_object x_obj;
!     float x_f;
  } t_plus;
  
--- 17,21 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_plus;
  
***************
*** 23,27 ****
  {
      t_object x_obj;
!     float x_f;
      t_float x_g;            /* inlet value */
  } t_scalarplus;
--- 23,27 ----
  {
      t_object x_obj;
!     t_float x_f;
      t_float x_g;            /* inlet value */
  } t_scalarplus;
***************
*** 51,57 ****
  t_int *plus_perform(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in1++ + *in2++; 
--- 51,57 ----
  t_int *plus_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in1++ + *in2++; 
***************
*** 61,75 ****
  t_int *plus_perf8(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         float f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         float f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         float g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         float g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = f0 + g0; out[1] = f1 + g1; out[2] = f2 + g2; out[3] = f3 + g3;
--- 61,75 ----
  t_int *plus_perf8(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         t_sample f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         t_sample f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         t_sample g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         t_sample g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = f0 + g0; out[1] = f1 + g1; out[2] = f2 + g2; out[3] = f3 + g3;
***************
*** 81,87 ****
  t_int *scalarplus_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in++ + f; 
--- 81,87 ----
  t_int *scalarplus_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in++ + f; 
***************
*** 91,102 ****
  t_int *scalarplus_perf8(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float g = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in += 8, out += 8)
      {
!         float f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         float f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = f0 + g; out[1] = f1 + g; out[2] = f2 + g; out[3] = f3 + g;
--- 91,102 ----
  t_int *scalarplus_perf8(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float g = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in += 8, out += 8)
      {
!         t_sample f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         t_sample f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = f0 + g; out[1] = f1 + g; out[2] = f2 + g; out[3] = f3 + g;
***************
*** 150,154 ****
  {
      t_object x_obj;
!     float x_f;
  } t_minus;
  
--- 150,154 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_minus;
  
***************
*** 156,160 ****
  {
      t_object x_obj;
!     float x_f;
      t_float x_g;
  } t_scalarminus;
--- 156,160 ----
  {
      t_object x_obj;
!     t_float x_f;
      t_float x_g;
  } t_scalarminus;
***************
*** 184,190 ****
  t_int *minus_perform(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in1++ - *in2++; 
--- 184,190 ----
  t_int *minus_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in1++ - *in2++; 
***************
*** 194,208 ****
  t_int *minus_perf8(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         float f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         float f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         float g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         float g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = f0 - g0; out[1] = f1 - g1; out[2] = f2 - g2; out[3] = f3 - g3;
--- 194,208 ----
  t_int *minus_perf8(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         t_sample f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         t_sample f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         t_sample g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         t_sample g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = f0 - g0; out[1] = f1 - g1; out[2] = f2 - g2; out[3] = f3 - g3;
***************
*** 214,220 ****
  t_int *scalarminus_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in++ - f; 
--- 214,220 ----
  t_int *scalarminus_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in++ - f; 
***************
*** 224,235 ****
  t_int *scalarminus_perf8(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float g = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in += 8, out += 8)
      {
!         float f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         float f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = f0 - g; out[1] = f1 - g; out[2] = f2 - g; out[3] = f3 - g;
--- 224,235 ----
  t_int *scalarminus_perf8(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float g = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in += 8, out += 8)
      {
!         t_sample f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         t_sample f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = f0 - g; out[1] = f1 - g; out[2] = f2 - g; out[3] = f3 - g;
***************
*** 281,285 ****
  {
      t_object x_obj;
!     float x_f;
  } t_times;
  
--- 281,285 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_times;
  
***************
*** 287,291 ****
  {
      t_object x_obj;
!     float x_f;
      t_float x_g;
  } t_scalartimes;
--- 287,291 ----
  {
      t_object x_obj;
!     t_float x_f;
      t_float x_g;
  } t_scalartimes;
***************
*** 315,321 ****
  t_int *times_perform(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in1++ * *in2++; 
--- 315,321 ----
  t_int *times_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in1++ * *in2++; 
***************
*** 325,339 ****
  t_int *times_perf8(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         float f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         float f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         float g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         float g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = f0 * g0; out[1] = f1 * g1; out[2] = f2 * g2; out[3] = f3 * g3;
--- 325,339 ----
  t_int *times_perf8(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         t_sample f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         t_sample f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         t_sample g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         t_sample g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = f0 * g0; out[1] = f1 * g1; out[2] = f2 * g2; out[3] = f3 * g3;
***************
*** 345,351 ****
  t_int *scalartimes_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in++ * f; 
--- 345,351 ----
  t_int *scalartimes_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--) *out++ = *in++ * f; 
***************
*** 355,366 ****
  t_int *scalartimes_perf8(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float g = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in += 8, out += 8)
      {
!         float f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         float f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = f0 * g; out[1] = f1 * g; out[2] = f2 * g; out[3] = f3 * g;
--- 355,366 ----
  t_int *scalartimes_perf8(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float g = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in += 8, out += 8)
      {
!         t_sample f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         t_sample f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = f0 * g; out[1] = f1 * g; out[2] = f2 * g; out[3] = f3 * g;
***************
*** 411,415 ****
  {
      t_object x_obj;
!     float x_f;
  } t_over;
  
--- 411,415 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_over;
  
***************
*** 417,421 ****
  {
      t_object x_obj;
!     float x_f;
      t_float x_g;
  } t_scalarover;
--- 417,421 ----
  {
      t_object x_obj;
!     t_float x_f;
      t_float x_g;
  } t_scalarover;
***************
*** 445,455 ****
  t_int *over_perform(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         float g = *in2++;
          *out++ = (g ? *in1++ / g : 0); 
      }
--- 445,455 ----
  t_int *over_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         t_sample g = *in2++;
          *out++ = (g ? *in1++ / g : 0); 
      }
***************
*** 459,473 ****
  t_int *over_perf8(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         float f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         float f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         float g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         float g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = (g0? f0 / g0 : 0);
--- 459,473 ----
  t_int *over_perf8(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         t_sample f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         t_sample f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         t_sample g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         t_sample g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = (g0? f0 / g0 : 0);
***************
*** 485,491 ****
  t_int *scalarover_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      if(f) f = 1./f;
--- 485,491 ----
  t_int *scalarover_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      if(f) f = 1./f;
***************
*** 496,508 ****
  t_int *scalarover_perf8(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float g = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      if (g) g = 1.f / g;
      for (; n; n -= 8, in += 8, out += 8)
      {
!         float f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         float f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = f0 * g; out[1] = f1 * g; out[2] = f2 * g; out[3] = f3 * g;
--- 496,508 ----
  t_int *scalarover_perf8(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float g = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      if (g) g = 1.f / g;
      for (; n; n -= 8, in += 8, out += 8)
      {
!         t_sample f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         t_sample f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = f0 * g; out[1] = f1 * g; out[2] = f2 * g; out[3] = f3 * g;
***************
*** 553,557 ****
  {
      t_object x_obj;
!     float x_f;
  } t_max;
  
--- 553,557 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_max;
  
***************
*** 559,563 ****
  {
      t_object x_obj;
!     float x_f;
      t_float x_g;
  } t_scalarmax;
--- 559,563 ----
  {
      t_object x_obj;
!     t_float x_f;
      t_float x_g;
  } t_scalarmax;
***************
*** 587,597 ****
  t_int *max_perform(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         float f = *in1++, g = *in2++;
          *out++ = (f > g ? f : g); 
      }
--- 587,597 ----
  t_int *max_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         t_sample f = *in1++, g = *in2++;
          *out++ = (f > g ? f : g); 
      }
***************
*** 601,615 ****
  t_int *max_perf8(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         float f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         float f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         float g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         float g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = (f0 > g0 ? f0 : g0); out[1] = (f1 > g1 ? f1 : g1);
--- 601,615 ----
  t_int *max_perf8(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         t_sample f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         t_sample f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         t_sample g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         t_sample g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = (f0 > g0 ? f0 : g0); out[1] = (f1 > g1 ? f1 : g1);
***************
*** 623,633 ****
  t_int *scalarmax_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         t_float g = *in++;
          *out++ = (f > g ? f : g); 
      }
--- 623,633 ----
  t_int *scalarmax_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         t_sample g = *in++;
          *out++ = (f > g ? f : g); 
      }
***************
*** 637,648 ****
  t_int *scalarmax_perf8(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float g = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in += 8, out += 8)
      {
!         float f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         float f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = (f0 > g ? f0 : g); out[1] = (f1 > g ? f1 : g);
--- 637,648 ----
  t_int *scalarmax_perf8(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float g = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in += 8, out += 8)
      {
!         t_sample f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         t_sample f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = (f0 > g ? f0 : g); out[1] = (f1 > g ? f1 : g);
***************
*** 695,699 ****
  {
      t_object x_obj;
!     float x_f;
  } t_min;
  
--- 695,699 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_min;
  
***************
*** 702,706 ****
      t_object x_obj;
      t_float x_g;
!     float x_f;
  } t_scalarmin;
  
--- 702,706 ----
      t_object x_obj;
      t_float x_g;
!     t_float x_f;
  } t_scalarmin;
  
***************
*** 729,739 ****
  t_int *min_perform(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         float f = *in1++, g = *in2++;
          *out++ = (f < g ? f : g); 
      }
--- 729,739 ----
  t_int *min_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         t_sample f = *in1++, g = *in2++;
          *out++ = (f < g ? f : g); 
      }
***************
*** 743,757 ****
  t_int *min_perf8(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *in2 = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         float f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         float f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         float g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         float g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = (f0 < g0 ? f0 : g0); out[1] = (f1 < g1 ? f1 : g1);
--- 743,757 ----
  t_int *min_perf8(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      for (; n; n -= 8, in1 += 8, in2 += 8, out += 8)
      {
!         t_sample f0 = in1[0], f1 = in1[1], f2 = in1[2], f3 = in1[3];
!         t_sample f4 = in1[4], f5 = in1[5], f6 = in1[6], f7 = in1[7];
  
!         t_sample g0 = in2[0], g1 = in2[1], g2 = in2[2], g3 = in2[3];
!         t_sample g4 = in2[4], g5 = in2[5], g6 = in2[6], g7 = in2[7];
  
          out[0] = (f0 < g0 ? f0 : g0); out[1] = (f1 < g1 ? f1 : g1);
***************
*** 765,775 ****
  t_int *scalarmin_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         t_float g = *in++;
          *out++ = (f < g ? f : g); 
      }
--- 765,775 ----
  t_int *scalarmin_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float f = *(t_float *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      while (n--)
      {
!         t_sample g = *in++;
          *out++ = (f < g ? f : g); 
      }
***************
*** 779,783 ****
  t_int *scalarmin_perf8(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_float g = *(t_float *)(w[2]);
      t_float *out = (t_float *)(w[3]);
--- 779,783 ----
  t_int *scalarmin_perf8(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_float g = *(t_float *)(w[2]);
      t_float *out = (t_float *)(w[3]);
***************
*** 785,790 ****
      for (; n; n -= 8, in += 8, out += 8)
      {
!         float f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         float f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = (f0 < g ? f0 : g); out[1] = (f1 < g ? f1 : g);
--- 785,790 ----
      for (; n; n -= 8, in += 8, out += 8)
      {
!         t_sample f0 = in[0], f1 = in[1], f2 = in[2], f3 = in[3];
!         t_sample f4 = in[4], f5 = in[5], f6 = in[6], f7 = in[7];
  
          out[0] = (f0 < g ? f0 : g); out[1] = (f1 < g ? f1 : g);

Index: m_class.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_class.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** m_class.c	15 Aug 2006 04:54:15 -0000	1.7
--- m_class.c	28 Dec 2007 03:43:05 -0000	1.8
***************
*** 401,405 ****
      int offset = (*x)->c_floatsignalin;
      if (offset > 0)
!         *(t_sample *)(((char *)x) + offset) = f;
      else
          pd_error(x, "%s: float unexpected for signal input",
--- 401,405 ----
      int offset = (*x)->c_floatsignalin;
      if (offset > 0)
!         *(t_float *)(((char *)x) + offset) = f;
      else
          pd_error(x, "%s: float unexpected for signal input",

Index: g_vslider.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_vslider.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** g_vslider.c	8 Sep 2006 23:45:30 -0000	1.6
--- g_vslider.c	28 Dec 2007 03:43:04 -0000	1.7
***************
*** 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:"");
***************
*** 215,219 ****
                  (int)x->x_gui.x_obj.te_xpix, (int)x->x_gui.x_obj.te_ypix,
                  gensym("vsl"), x->x_gui.x_w, x->x_gui.x_h,
!                 (float)x->x_min, (float)x->x_max,
                  x->x_lin0_log1, iem_symargstoint(&x->x_gui.x_isa),
                  srl[0], srl[1], srl[2],
--- 216,220 ----
                  (int)x->x_gui.x_obj.te_xpix, (int)x->x_gui.x_obj.te_ypix,
                  gensym("vsl"), x->x_gui.x_w, x->x_gui.x_h,
!                 (t_float)x->x_min, (t_float)x->x_max,
                  x->x_lin0_log1, iem_symargstoint(&x->x_gui.x_isa),
                  srl[0], srl[1], srl[2],
***************
*** 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_readwrite.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_readwrite.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** g_readwrite.c	22 Oct 2006 21:46:11 -0000	1.8
--- g_readwrite.c	28 Dec 2007 03:43:04 -0000	1.9
***************
*** 620,632 ****
                  x->gl_x1, x->gl_y1,
                  x->gl_x2, x->gl_y2,
!                 (float)x->gl_pixwidth, (float)x->gl_pixheight,
!                 (float)((x->gl_hidetext)?2.:1.),
!                 (float)x->gl_xmargin, (float)x->gl_ymargin); 
                      /* otherwise write in 0.38-compatible form */
          else binbuf_addv(b, "ssfffffff;", gensym("#X"), gensym("coords"),
                  x->gl_x1, x->gl_y1,
                  x->gl_x2, x->gl_y2,
!                 (float)x->gl_pixwidth, (float)x->gl_pixheight,
!                 (float)x->gl_isgraph);
      }
  }
--- 620,632 ----
                  x->gl_x1, x->gl_y1,
                  x->gl_x2, x->gl_y2,
!                 (t_float)x->gl_pixwidth, (t_float)x->gl_pixheight,
!                 (t_float)((x->gl_hidetext)?2.:1.),
!                 (t_float)x->gl_xmargin, (t_float)x->gl_ymargin); 
                      /* otherwise write in 0.38-compatible form */
          else binbuf_addv(b, "ssfffffff;", gensym("#X"), gensym("coords"),
                  x->gl_x1, x->gl_y1,
                  x->gl_x2, x->gl_y2,
!                 (t_float)x->gl_pixwidth, (t_float)x->gl_pixheight,
!                 (t_float)x->gl_isgraph);
      }
  }

Index: x_list.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_list.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** x_list.c	20 Jul 2007 03:25:21 -0000	1.6
--- x_list.c	28 Dec 2007 03:43:06 -0000	1.7
***************
*** 485,489 ****
      int argc, t_atom *argv)
  {
!     outlet_float(x->x_obj.ob_outlet, (float)argc);
  }
  
--- 485,489 ----
      int argc, t_atom *argv)
  {
!     outlet_float(x->x_obj.ob_outlet, (t_float)argc);
  }
  
***************
*** 491,495 ****
      int argc, t_atom *argv)
  {
!     outlet_float(x->x_obj.ob_outlet, (float)argc+1);
  }
  
--- 491,495 ----
      int argc, t_atom *argv)
  {
!     outlet_float(x->x_obj.ob_outlet, (t_float)argc+1);
  }
  

Index: g_toggle.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_toggle.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** g_toggle.c	8 Sep 2006 23:45:30 -0000	1.5
--- g_toggle.c	28 Dec 2007 03:43:04 -0000	1.6
***************
*** 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 \
***************
*** 257,261 ****
      t_symbol *srl[3];
      int a = (int)atom_getintarg(0, argc, argv);
!     float nonzero = (float)atom_getfloatarg(2, argc, argv);
      int sr_flags;
  
--- 258,262 ----
      t_symbol *srl[3];
      int a = (int)atom_getintarg(0, argc, argv);
!     t_float nonzero = (t_float)atom_getfloatarg(2, argc, argv);
      int sr_flags;
  
***************
*** 314,318 ****
  {
      if(!sys_noloadbang && x->x_gui.x_isa.x_loadinit)
!         toggle_fout(x, (float)x->x_on);
  }
  
--- 315,319 ----
  {
      if(!sys_noloadbang && x->x_gui.x_isa.x_loadinit)
!         toggle_fout(x, (t_float)x->x_on);
  }
  
***************
*** 366,370 ****
      int ldx=17, ldy=7;
      int fs=10;
!     float on=0.0, nonzero=1.0;
      char str[144];
  
--- 367,371 ----
      int ldx=17, ldy=7;
      int fs=10;
!     t_float on=0.0, nonzero=1.0;
      char str[144];
  
***************
*** 391,399 ****
          bflcol[1] = (int)atom_getintarg(10, argc, argv);
          bflcol[2] = (int)atom_getintarg(11, argc, argv);
!         on = (float)atom_getfloatarg(12, argc, argv);
      }
      else iemgui_new_getnames(&x->x_gui, 2, 0);
      if((argc == 14)&&IS_A_FLOAT(argv,13))
!         nonzero = (float)atom_getfloatarg(13, argc, argv);
      x->x_gui.x_draw = (t_iemfunptr)toggle_draw;
  
--- 392,400 ----
          bflcol[1] = (int)atom_getintarg(10, argc, argv);
          bflcol[2] = (int)atom_getintarg(11, argc, argv);
!         on = (t_float)atom_getfloatarg(12, argc, argv);
      }
      else iemgui_new_getnames(&x->x_gui, 2, 0);
      if((argc == 14)&&IS_A_FLOAT(argv,13))
!         nonzero = (t_float)atom_getfloatarg(13, argc, argv);
      x->x_gui.x_draw = (t_iemfunptr)toggle_draw;
  
***************
*** 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: s_print.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_print.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** s_print.c	18 May 2005 04:28:51 -0000	1.3
--- s_print.c	28 Dec 2007 03:43:06 -0000	1.4
***************
*** 78,88 ****
      for (i = 0; i < argc; i++)
      {
!         char buf[80];
!         atom_string(argv+i, buf, 80);
          poststring(buf);
      }
  }
  
! void postfloat(float f)
  {
      char buf[80];
--- 78,88 ----
      for (i = 0; i < argc; i++)
      {
!         char buf[MAXPDSTRING];
!         atom_string(argv+i, buf, MAXPDSTRING);
          poststring(buf);
      }
  }
  
! void postfloat(t_float f)
  {
      char buf[80];
***************
*** 119,123 ****
      if(level>sys_verbose)return;
      dopost("verbose(");
!     postfloat((float)level);
      dopost("):");
      
--- 119,123 ----
      if(level>sys_verbose)return;
      dopost("verbose(");
!     postfloat((t_float)level);
      dopost("):");
      

Index: d_array.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_array.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** d_array.c	20 Jan 2007 04:06:06 -0000	1.9
--- d_array.c	28 Dec 2007 03:43:02 -0000	1.10
***************
*** 21,25 ****
      t_word *x_vec;
      t_symbol *x_arrayname;
!     float x_f;
  } t_tabwrite_tilde;
  
--- 21,25 ----
      t_word *x_vec;
      t_symbol *x_arrayname;
!     t_float x_f;
  } t_tabwrite_tilde;
  
***************
*** 46,50 ****
  {
      t_tabwrite_tilde *x = (t_tabwrite_tilde *)(w[1]);
!     t_float *in = (t_float *)(w[2]);
      int n = (int)(w[3]), phase = x->x_phase, endphase = x->x_nsampsintab;
      if (!x->x_vec) goto bad;
--- 46,50 ----
  {
      t_tabwrite_tilde *x = (t_tabwrite_tilde *)(w[1]);
!     t_sample *in = (t_sample *)(w[2]);
      int n = (int)(w[3]), phase = x->x_phase, endphase = x->x_nsampsintab;
      if (!x->x_vec) goto bad;
***************
*** 58,62 ****
          while (nxfer--)
          {
!             float f = *in++;
              if (PD_BIGORSMALL(f))
                  f = 0;
--- 58,62 ----
          while (nxfer--)
          {
!             t_sample f = *in++;
              if (PD_BIGORSMALL(f))
                  f = 0;
***************
*** 169,173 ****
  {
      t_tabplay_tilde *x = (t_tabplay_tilde *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      t_word *wp;
      int n = (int)(w[3]), phase = x->x_phase,
--- 169,173 ----
  {
      t_tabplay_tilde *x = (t_tabplay_tilde *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      t_word *wp;
      int n = (int)(w[3]), phase = x->x_phase,
***************
*** 277,281 ****
      t_word *x_vec;
      t_symbol *x_arrayname;
!     float x_f;
  } t_tabread_tilde;
  
--- 277,281 ----
      t_word *x_vec;
      t_symbol *x_arrayname;
!     t_float x_f;
  } t_tabread_tilde;
  
***************
*** 293,298 ****
  {
      t_tabread_tilde *x = (t_tabread_tilde *)(w[1]);
!     t_float *in = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);    
      int maxindex;
--- 293,298 ----
  {
      t_tabread_tilde *x = (t_tabread_tilde *)(w[1]);
!     t_sample *in = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);    
      int maxindex;
***************
*** 373,377 ****
      t_word *x_vec;
      t_symbol *x_arrayname;
!     float x_f;
  } t_tabread4_tilde;
  
--- 373,377 ----
      t_word *x_vec;
      t_symbol *x_arrayname;
!     t_float x_f;
  } t_tabread4_tilde;
  
***************
*** 389,394 ****
  {
      t_tabread4_tilde *x = (t_tabread4_tilde *)(w[1]);
!     t_float *in = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);    
      int maxindex;
--- 389,394 ----
  {
      t_tabread4_tilde *x = (t_tabread4_tilde *)(w[1]);
!     t_sample *in = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);    
      int maxindex;
***************
*** 403,407 ****
      for (i = 0,  xmax = 0, xmin = maxindex,  fp = in1; i < n; i++,  fp++)
      {
!         float f = *in1;
          if (f < xmin) xmin = f;
          else if (f > xmax) xmax = f;
--- 403,407 ----
      for (i = 0,  xmax = 0, xmin = maxindex,  fp = in1; i < n; i++,  fp++)
      {
!         t_sample f = *in1;
          if (f < xmin) xmin = f;
          else if (f > xmax) xmax = f;
***************
*** 411,415 ****
          fp = in1; i < n; i++,  fp++)
      {
!         float f = *in1;
          if (f > splitlo && f < splithi) goto zero;
      }
--- 411,415 ----
          fp = in1; i < n; i++,  fp++)
      {
!         t_sample f = *in1;
          if (f > splitlo && f < splithi) goto zero;
      }
***************
*** 418,424 ****
      for (i = 0; i < n; i++)
      {
!         float findex = *in++;
          int index = findex;
!         float frac,  a,  b,  c,  d, cminusb;
          static int count;
          if (index < 1)
--- 418,424 ----
      for (i = 0; i < n; i++)
      {
!         t_sample findex = *in++;
          int index = findex;
!         t_sample frac,  a,  b,  c,  d, cminusb;
          static int count;
          if (index < 1)
***************
*** 548,558 ****
  {
      t_object x_obj;
!     float x_fnpoints;
!     float x_finvnpoints;
      t_word *x_vec;
      t_symbol *x_arrayname;
!     float x_f;
      double x_phase;
!     float x_conv;
  } t_tabosc4_tilde;
  
--- 548,558 ----
  {
      t_object x_obj;
!     t_float x_fnpoints;
!     t_float x_finvnpoints;
      t_word *x_vec;
      t_symbol *x_arrayname;
!     t_float x_f;
      double x_phase;
!     t_float x_conv;
  } t_tabosc4_tilde;
  
***************
*** 573,584 ****
  {
      t_tabosc4_tilde *x = (t_tabosc4_tilde *)(w[1]);
!     t_float *in = (t_float *)(w[2]);
!     t_float *out = (t_float *)(w[3]);
      int n = (int)(w[4]);
      int normhipart;
      union tabfudge tf;
!     float fnpoints = x->x_fnpoints;
      int mask = fnpoints - 1;
!     float conv = fnpoints * x->x_conv;
      int maxindex;
      t_word *tab = x->x_vec, *addr;
--- 573,584 ----
  {
      t_tabosc4_tilde *x = (t_tabosc4_tilde *)(w[1]);
!     t_sample *in = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      int n = (int)(w[4]);
      int normhipart;
      union tabfudge tf;
!     t_float fnpoints = x->x_fnpoints;
      int mask = fnpoints - 1;
!     t_float conv = fnpoints * x->x_conv;
      int maxindex;
      t_word *tab = x->x_vec, *addr;
***************
*** 593,597 ****
      while (n--)
      {
!         float frac,  a,  b,  c,  d, cminusb;
          tf.tf_d = dphase;
          dphase += *in++ * conv;
--- 593,597 ----
      while (n--)
      {
!         t_sample frac,  a,  b,  c,  d, cminusb;
          tf.tf_d = dphase;
          dphase += *in++ * conv;
***************
*** 695,699 ****
      int x_graphcount;
      t_symbol *x_arrayname;
!     float x_f;
  } t_tabsend;
  
--- 695,699 ----
      int x_graphcount;
      t_symbol *x_arrayname;
!     t_float x_f;
  } t_tabsend;
  
***************
*** 712,716 ****
  {
      t_tabsend *x = (t_tabsend *)(w[1]);
!     t_float *in = (t_float *)(w[2]);
      int n = w[3];
      t_word *dest = x->x_vec;
--- 712,716 ----
  {
      t_tabsend *x = (t_tabsend *)(w[1]);
!     t_sample *in = (t_sample *)(w[2]);
      int n = w[3];
      t_word *dest = x->x_vec;
***************
*** 720,724 ****
      while (n--)
      {   
!         float f = *in++;
          if (PD_BIGORSMALL(f))
              f = 0;
--- 720,724 ----
      while (n--)
      {   
!         t_sample f = *in++;
          if (PD_BIGORSMALL(f))
              f = 0;
***************
*** 786,790 ****
  {
      t_tabreceive *x = (t_tabreceive *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = w[3];
      t_word *from = x->x_vec;
--- 786,790 ----
  {
      t_tabreceive *x = (t_tabreceive *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = w[3];
      t_word *from = x->x_vec;
***************
*** 965,969 ****
      t_object x_obj;
      t_symbol *x_arrayname;
!     float x_ft1;
  } t_tabwrite;
  
--- 965,969 ----
      t_object x_obj;
      t_symbol *x_arrayname;
!     t_float x_ft1;
  } t_tabwrite;
  

Index: m_glob.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_glob.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** m_glob.c	19 Aug 2005 23:28:03 -0000	1.6
--- m_glob.c	28 Dec 2007 03:43:05 -0000	1.7
***************
*** 50,53 ****
--- 50,59 ----
  #endif
  
+ static void glob_version(t_pd *dummy, float f)
+ {
+     if (f > 0)
+         error("file format newer than this version of Pd (trying anyway...)");
+ }
+ 
  void max_default(t_pd *x, t_symbol *s, int argc, t_atom *argv)
  {
***************
*** 114,117 ****
--- 120,125 ----
      class_addmethod(glob_pdobject, (t_method)glob_savepreferences,
          gensym("save-preferences"), 0);
+     class_addmethod(glob_pdobject, (t_method)glob_version,
+         gensym("version"), A_FLOAT, 0);
  #ifdef UNIX
      class_addmethod(glob_pdobject, (t_method)glob_watchdog,

Index: g_traversal.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_traversal.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** g_traversal.c	9 Oct 2006 04:36:12 -0000	1.7
--- g_traversal.c	28 Dec 2007 03:43:04 -0000	1.8
***************
*** 207,211 ****
  }
  
! static void ptrobj_vnext(t_ptrobj *x, float f)
  {
      t_gobj *gobj;
--- 207,211 ----
  }
  
! static void ptrobj_vnext(t_ptrobj *x, t_float f)
  {
      t_gobj *gobj;
***************
*** 775,779 ****
      
      array = *(t_array **)(((char *)w) + onset);
!     outlet_float(x->x_obj.ob_outlet, (float)(array->a_n));
  }
  
--- 775,779 ----
      
      array = *(t_array **)(((char *)w) + onset);
!     outlet_float(x->x_obj.ob_outlet, (t_float)(array->a_n));
  }
  

Index: d_fft_mayer.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_fft_mayer.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** d_fft_mayer.c	3 Jun 2006 18:22:09 -0000	1.1
--- d_fft_mayer.c	28 Dec 2007 03:43:03 -0000	1.2
***************
*** 59,63 ****
  #include "m_pd.h"
  
! #define REAL float
  #define GOOD_TRIG
  
--- 59,63 ----
  #include "m_pd.h"
  
! #define REAL t_sample
  #define GOOD_TRIG
  

Index: g_hdial.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_hdial.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** g_hdial.c	8 Sep 2006 23:45:30 -0000	1.7
--- g_hdial.c	28 Dec 2007 03:43:04 -0000	1.8
***************
*** 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 \
***************
*** 348,352 ****
          if((x->x_change)&&(x->x_on != x->x_on_old))
          {
!             SETFLOAT(x->x_at, (float)x->x_on_old);
              SETFLOAT(x->x_at+1, 0.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 348,352 ----
          if((x->x_change)&&(x->x_on != x->x_on_old))
          {
!             SETFLOAT(x->x_at, (t_float)x->x_on_old);
              SETFLOAT(x->x_at+1, 0.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 355,359 ****
          }
          x->x_on_old = x->x_on;
!         SETFLOAT(x->x_at, (float)x->x_on);
          SETFLOAT(x->x_at+1, 1.0);
          outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 355,359 ----
          }
          x->x_on_old = x->x_on;
!         SETFLOAT(x->x_at, (t_float)x->x_on);
          SETFLOAT(x->x_at+1, 1.0);
          outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 382,386 ****
          if((x->x_change)&&(i != x->x_on_old))
          {
!             SETFLOAT(x->x_at, (float)x->x_on_old);
              SETFLOAT(x->x_at+1, 0.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 382,386 ----
          if((x->x_change)&&(i != x->x_on_old))
          {
!             SETFLOAT(x->x_at, (t_float)x->x_on_old);
              SETFLOAT(x->x_at+1, 0.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 393,397 ****
          (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
          x->x_on_old = x->x_on;
!         SETFLOAT(x->x_at, (float)x->x_on);
          SETFLOAT(x->x_at+1, 1.0);
          outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 393,397 ----
          (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
          x->x_on_old = x->x_on;
!         SETFLOAT(x->x_at, (t_float)x->x_on);
          SETFLOAT(x->x_at+1, 1.0);
          outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 426,430 ****
              if(x->x_gui.x_fsf.x_put_in2out)
              {
!                 SETFLOAT(x->x_at, (float)x->x_on_old);
                  SETFLOAT(x->x_at+1, 0.0);
                  outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 426,430 ----
              if(x->x_gui.x_fsf.x_put_in2out)
              {
!                 SETFLOAT(x->x_at, (t_float)x->x_on_old);
                  SETFLOAT(x->x_at+1, 0.0);
                  outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 440,444 ****
          if(x->x_gui.x_fsf.x_put_in2out)
          {
!             SETFLOAT(x->x_at, (float)x->x_on);
              SETFLOAT(x->x_at+1, 1.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 440,444 ----
          if(x->x_gui.x_fsf.x_put_in2out)
          {
!             SETFLOAT(x->x_at, (t_float)x->x_on);
              SETFLOAT(x->x_at+1, 1.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 465,469 ****
      int xx = (int)xpos - (int)text_xpix(&x->x_gui.x_obj, x->x_gui.x_glist);
  
!     hradio_fout(x, (float)(xx / x->x_gui.x_w));
  }
  
--- 465,469 ----
      int xx = (int)xpos - (int)text_xpix(&x->x_gui.x_obj, x->x_gui.x_glist);
  
!     hradio_fout(x, (t_float)(xx / x->x_gui.x_w));
  }
  
***************
*** 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: g_canvas.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_canvas.h,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** g_canvas.h	9 Oct 2006 04:36:12 -0000	1.14
--- g_canvas.h	28 Dec 2007 03:43:04 -0000	1.15
***************
*** 132,137 ****
  typedef struct _tick    /* where to put ticks on x or y axes */
  {
!     float k_point;      /* one point to draw a big tick at */
!     float k_inc;        /* x or y increment per little tick */
      int k_lperb;        /* little ticks per big; 0 if no ticks to draw */
  } t_tick;
--- 132,137 ----
  typedef struct _tick    /* where to put ticks on x or y axes */
  {
!     t_float k_point;      /* one point to draw a big tick at */
!     t_float k_inc;        /* x or y increment per little tick */
      int k_lperb;        /* little ticks per big; 0 if no ticks to draw */
  } t_tick;
***************
*** 151,158 ****
      int gl_pixwidth;            /* width in pixels (on parent, if a graph) */
      int gl_pixheight;
!     float gl_x1;                /* bounding rectangle in our own coordinates */
!     float gl_y1;
!     float gl_x2;
!     float gl_y2;
      int gl_screenx1;            /* screen coordinates when toplevel */
      int gl_screeny1;
--- 151,158 ----
      int gl_pixwidth;            /* width in pixels (on parent, if a graph) */
      int gl_pixheight;
!     t_float gl_x1;                /* bounding rectangle in our own coordinates */
!     t_float gl_y1;
!     t_float gl_x2;
!     t_float gl_y2;
      int gl_screenx1;            /* screen coordinates when toplevel */
      int gl_screeny1;
***************
*** 164,172 ****
      int gl_nxlabels;            /* number of X coordinate labels */
      t_symbol **gl_xlabel;           /* ... an array to hold them */
!     float gl_xlabely;               /* ... and their Y coordinates */
      t_tick gl_ytick;            /* same as above for Y ticks and labels */
      int gl_nylabels;
      t_symbol **gl_ylabel;
!     float gl_ylabelx;
      t_editor *gl_editor;        /* editor structure when visible */
      t_symbol *gl_name;          /* symbol bound here */
--- 164,172 ----
      int gl_nxlabels;            /* number of X coordinate labels */
      t_symbol **gl_xlabel;           /* ... an array to hold them */
!     t_float gl_xlabely;               /* ... and their Y coordinates */
      t_tick gl_ytick;            /* same as above for Y ticks and labels */
      int gl_nylabels;
      t_symbol **gl_ylabel;
!     t_float gl_ylabelx;
      t_editor *gl_editor;        /* editor structure when visible */
      t_symbol *gl_name;          /* symbol bound here */
***************
*** 287,312 ****
          /* bounding rectangle: */
  typedef void (*t_parentgetrectfn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, float basex, float basey,
      int *x1, int *y1, int *x2, int *y2);
          /* displace it */
  typedef void (*t_parentdisplacefn)(t_gobj *x, struct _glist *glist, 
!     t_word *data, t_template *tmpl, float basex, float basey,
      int dx, int dy);
          /* change color to show selection */
  typedef void (*t_parentselectfn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, float basex, float basey,
      int state);
          /* change appearance to show activation/deactivation: */
  typedef void (*t_parentactivatefn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, float basex, float basey,
      int state);
          /*  making visible or invisible */
  typedef void (*t_parentvisfn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, float basex, float basey,
      int flag);
          /*  field a mouse click */
  typedef int (*t_parentclickfn)(t_gobj *x, struct _glist *glist,
      t_word *data, t_template *tmpl, t_scalar *sc, t_array *ap,
!     float basex, float basey,
      int xpix, int ypix, int shift, int alt, int dbl, int doit);
  
--- 287,312 ----
          /* bounding rectangle: */
  typedef void (*t_parentgetrectfn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, t_float basex, t_float basey,
      int *x1, int *y1, int *x2, int *y2);
          /* displace it */
  typedef void (*t_parentdisplacefn)(t_gobj *x, struct _glist *glist, 
!     t_word *data, t_template *tmpl, t_float basex, t_float basey,
      int dx, int dy);
          /* change color to show selection */
  typedef void (*t_parentselectfn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, t_float basex, t_float basey,
      int state);
          /* change appearance to show activation/deactivation: */
  typedef void (*t_parentactivatefn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, t_float basex, t_float basey,
      int state);
          /*  making visible or invisible */
  typedef void (*t_parentvisfn)(t_gobj *x, struct _glist *glist,
!     t_word *data, t_template *tmpl, t_float basex, t_float basey,
      int flag);
          /*  field a mouse click */
  typedef int (*t_parentclickfn)(t_gobj *x, struct _glist *glist,
      t_word *data, t_template *tmpl, t_scalar *sc, t_array *ap,
!     t_float basex, t_float basey,
      int xpix, int ypix, int shift, int alt, int dbl, int doit);
  
***************
*** 381,396 ****
  EXTERN void glist_mergefile(t_glist *x, t_symbol *filename, t_symbol *format);
  
! EXTERN float glist_pixelstox(t_glist *x, float xpix);
! EXTERN float glist_pixelstoy(t_glist *x, float ypix);
! EXTERN float glist_xtopixels(t_glist *x, float xval);
! EXTERN float glist_ytopixels(t_glist *x, float yval);
! EXTERN float glist_dpixtodx(t_glist *x, float dxpix);
! EXTERN float glist_dpixtody(t_glist *x, float dypix);
  
  EXTERN void glist_getnextxy(t_glist *gl, int *xval, int *yval);
  EXTERN void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv);
  EXTERN t_glist *glist_addglist(t_glist *g, t_symbol *sym,
!     float x1, float y1, float x2, float y2,
!     float px1, float py1, float px2, float py2);
  EXTERN void glist_arraydialog(t_glist *parent, t_symbol *name,
      t_floatarg size, t_floatarg saveit, t_floatarg newgraph);
--- 381,396 ----
  EXTERN void glist_mergefile(t_glist *x, t_symbol *filename, t_symbol *format);
  
! EXTERN t_float glist_pixelstox(t_glist *x, t_float xpix);
! EXTERN t_float glist_pixelstoy(t_glist *x, t_float ypix);
! EXTERN t_float glist_xtopixels(t_glist *x, t_float xval);
! EXTERN t_float glist_ytopixels(t_glist *x, t_float yval);
! EXTERN t_float glist_dpixtodx(t_glist *x, t_float dxpix);
! EXTERN t_float glist_dpixtody(t_glist *x, t_float dypix);
  
  EXTERN void glist_getnextxy(t_glist *gl, int *xval, int *yval);
  EXTERN void glist_glist(t_glist *g, t_symbol *s, int argc, t_atom *argv);
  EXTERN t_glist *glist_addglist(t_glist *g, t_symbol *sym,
!     t_float x1, t_float y1, t_float x2, t_float y2,
!     t_float px1, t_float py1, t_float px2, t_float py2);
  EXTERN void glist_arraydialog(t_glist *parent, t_symbol *name,
      t_floatarg size, t_floatarg saveit, t_floatarg newgraph);
***************
*** 503,507 ****
      t_floatarg fwhoout, t_floatarg foutno,t_floatarg fwhoin, t_floatarg finno);
  EXTERN void canvas_disconnect(t_canvas *x,
!     float index1, float outno, float index2, float inno);
  EXTERN int canvas_isconnected (t_canvas *x,
      t_text *ob1, int n1, t_text *ob2, int n2);
--- 503,507 ----
      t_floatarg fwhoout, t_floatarg foutno,t_floatarg fwhoin, t_floatarg finno);
  EXTERN void canvas_disconnect(t_canvas *x,
!     t_float index1, t_float outno, t_float index2, t_float inno);
  EXTERN int canvas_isconnected (t_canvas *x,
      t_text *ob1, int n1, t_text *ob2, int n2);
***************
*** 546,550 ****
      t_symbol *templatesym);
  EXTERN void word_free(t_word *wp, t_template *tmpl);
! EXTERN void scalar_getbasexy(t_scalar *x, float *basex, float *basey);
  EXTERN void scalar_redraw(t_scalar *x, t_glist *glist);
  
--- 546,550 ----
      t_symbol *templatesym);
  EXTERN void word_free(t_word *wp, t_template *tmpl);
! EXTERN void scalar_getbasexy(t_scalar *x, t_float *basex, t_float *basey);
  EXTERN void scalar_redraw(t_scalar *x, t_glist *glist);
  
***************
*** 552,556 ****
  EXTERN int array_doclick(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap,
      t_symbol *elemtemplatesym,
!     float linewidth, float xloc, float xinc, float yloc, float scalarvis,
      t_fielddesc *xfield, t_fielddesc *yfield, t_fielddesc *wfield,
      int xpix, int ypix, int shift, int alt, int dbl, int doit);
--- 552,556 ----
  EXTERN int array_doclick(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap,
      t_symbol *elemtemplatesym,
!     t_float linewidth, t_float xloc, t_float xinc, t_float yloc, t_float scalarvis,
      t_fielddesc *xfield, t_fielddesc *yfield, t_fielddesc *wfield,
      int xpix, int ypix, int shift, int alt, int dbl, int doit);
***************
*** 558,564 ****
  EXTERN void array_getcoordinate(t_glist *glist,
      char *elem, int xonset, int yonset, int wonset, int indx,
!     float basex, float basey, float xinc,
      t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
!     float *xp, float *yp, float *wp);
  
  EXTERN int array_getfields(t_symbol *elemtemplatesym,
--- 558,564 ----
  EXTERN void array_getcoordinate(t_glist *glist,
      char *elem, int xonset, int yonset, int wonset, int indx,
!     t_float basex, t_float basey, t_float xinc,
      t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
!     t_float *xp, t_float *yp, t_float *wp);
  
  EXTERN int array_getfields(t_symbol *elemtemplatesym,
***************
*** 600,606 ****
      t_word *wp, int loud);
  EXTERN void fielddesc_setcoord(t_fielddesc *f, t_template *tmpl,
!     t_word *wp, float pix, int loud);
! EXTERN t_float fielddesc_cvttocoord(t_fielddesc *f, float val);
! EXTERN float fielddesc_cvtfromcoord(t_fielddesc *f, float coord);
  
  
--- 600,606 ----
      t_word *wp, int loud);
  EXTERN void fielddesc_setcoord(t_fielddesc *f, t_template *tmpl,
!     t_word *wp, t_float pix, int loud);
! EXTERN t_float fielddesc_cvttocoord(t_fielddesc *f, t_float val);
! EXTERN t_float fielddesc_cvtfromcoord(t_fielddesc *f, t_float coord);
  
  

Index: g_vumeter.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_vumeter.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** g_vumeter.c	16 Aug 2005 04:06:28 -0000	1.5
--- g_vumeter.c	28 Dec 2007 03:43:04 -0000	1.6
***************
*** 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 \
***************
*** 532,536 ****
      if(scale != 0)
          scale = 1;
!     vu_scale(x, (float)scale);
      (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_CONFIG);
      (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_IO + sr_flags);
--- 539,543 ----
      if(scale != 0)
          scale = 1;
!     vu_scale(x, (t_float)scale);
      (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_CONFIG);
      (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_IO + sr_flags);
***************
*** 587,591 ****
      }
      i = (int)(100.0*rms + 10000.5);
!     rms = 0.01*(float)(i - 10000);
      x->x_fr = rms;
      outlet_float(x->x_out_rms, rms);
--- 594,598 ----
      }
      i = (int)(100.0*rms + 10000.5);
!     rms = 0.01*(t_float)(i - 10000);
      x->x_fr = rms;
      outlet_float(x->x_out_rms, rms);
***************
*** 608,612 ****
      }
      i = (int)(100.0*peak + 10000.5);
!     peak = 0.01*(float)(i - 10000);
      x->x_fp = peak;
      x->x_updatepeak = 1;
--- 615,619 ----
      }
      i = (int)(100.0*peak + 10000.5);
!     peak = 0.01*(t_float)(i - 10000);
      x->x_fp = peak;
      x->x_updatepeak = 1;
***************
*** 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_all_guis.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_all_guis.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** g_all_guis.c	11 Aug 2006 20:09:07 -0000	1.9
--- g_all_guis.c	28 Dec 2007 03:43:03 -0000	1.10
***************
*** 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.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** makefile.in	2 Aug 2007 00:33:50 -0000	1.17
--- makefile.in	28 Dec 2007 03:43:05 -0000	1.18
***************
*** 60,64 ****
  OBJ = $(SRC:.c=.o) 
  
! GSRC =  t_main.c t_tkcmd.c
  
  GOBJ = $(GSRC:.c=.o)
--- 60,64 ----
  OBJ = $(SRC:.c=.o) 
  
! GSRC =  @GUISRC@
  
  GOBJ = $(GSRC:.c=.o)
***************
*** 84,91 ****
  .PHONY: pd gui externs all
  
! all: $(PDEXEC) $(BIN_DIR)/pd-watchdog $(BIN_DIR)/$(GUINAME) $(BIN_DIR)/pdsend \
      $(BIN_DIR)/pdreceive  $(BIN_DIR)/pd.tk externs
  
! bin: $(PDEXEC) $(BIN_DIR)/pd-watchdog $(BIN_DIR)/$(GUINAME) $(BIN_DIR)/pdsend \
      $(BIN_DIR)/pdreceive  $(BIN_DIR)/pd.tk
  
--- 84,91 ----
  .PHONY: pd gui externs all
  
! all: pd $(BIN_DIR)/pd-watchdog gui $(BIN_DIR)/pdsend \
      $(BIN_DIR)/pdreceive  $(BIN_DIR)/pd.tk externs
  
! bin: pd $(BIN_DIR)/pd-watchdog gui $(BIN_DIR)/pdsend \
      $(BIN_DIR)/pdreceive  $(BIN_DIR)/pd.tk
  
***************
*** 101,105 ****
--- 101,109 ----
  pd: $(PDEXEC)
  
+ ifneq ($(GSRC),)
  gui: $(BIN_DIR)/$(GUINAME)
+ else
+ gui:
+ endif
  
  pd-watchdog: $(BIN_DIR)/pd-watchdog
***************
*** 119,123 ****
  $(PDEXEC): $(OBJ) $(BIN_DIR)
  	cd ../obj;  $(CC) $(LDFLAGS) $(DBG_CFLAGS) -o $(PDEXEC) $(OBJ) $(LIB)
!         
  $(BIN_DIR)/pd-gui: $(GOBJ) $(GSRC)
  	cd ../obj; $(CC) $(INCLUDE) -o $(BIN_DIR)/$(GUINAME) $(GOBJ) $(GLIB)
--- 123,127 ----
  $(PDEXEC): $(OBJ) $(BIN_DIR)
  	cd ../obj;  $(CC) $(LDFLAGS) $(DBG_CFLAGS) -o $(PDEXEC) $(OBJ) $(LIB)
! 
  $(BIN_DIR)/pd-gui: $(GOBJ) $(GSRC)
  	cd ../obj; $(CC) $(INCLUDE) -o $(BIN_DIR)/$(GUINAME) $(GOBJ) $(GLIB)
***************
*** 171,180 ****
  		echo "installing $$dir"; \
  		install -d $(pddocdir)/$$dir ; \
! 		install -p ../doc/$$dir/*.* $(pddocdir)/$$dir ; \
  	done
  	for dir in $(shell ls -1 ../doc/7.stuff | grep -v CVS); do \
  		echo "installing 7.stuff/$$dir"; \
  		install -d $(pddocdir)/7.stuff/$$dir ; \
! 		install -p ../doc/7.stuff/$$dir/*.* $(pddocdir)/7.stuff/$$dir ; \
  	done
  	mv $(ABOUT_FILE) $(ABOUT_FILE).tmp
--- 175,184 ----
  		echo "installing $$dir"; \
  		install -d $(pddocdir)/$$dir ; \
! 		install -m644 -p ../doc/$$dir/*.* $(pddocdir)/$$dir ; \
  	done
  	for dir in $(shell ls -1 ../doc/7.stuff | grep -v CVS); do \
  		echo "installing 7.stuff/$$dir"; \
  		install -d $(pddocdir)/7.stuff/$$dir ; \
! 		install -m644 -p ../doc/7.stuff/$$dir/*.* $(pddocdir)/7.stuff/$$dir ; \
  	done
  	mv $(ABOUT_FILE) $(ABOUT_FILE).tmp

Index: x_acoustics.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_acoustics.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** x_acoustics.c	6 Sep 2004 20:20:36 -0000	1.2
--- x_acoustics.c	28 Dec 2007 03:43:06 -0000	1.3
***************
*** 10,14 ****
  #define LOGTEN 2.302585092994
  
! float mtof(float f)
  {
      if (f <= -1500) return(0);
--- 10,14 ----
  #define LOGTEN 2.302585092994
  
! t_float mtof(t_float f)
  {
      if (f <= -1500) return(0);
***************
*** 17,46 ****
  }
  
! float ftom(float f)
  {
      return (f > 0 ? 17.3123405046 * log(.12231220585 * f) : -1500);
  }
  
! float powtodb(float f)
  {
      if (f <= 0) return (0);
      else
      {
!         float val = 100 + 10./LOGTEN * log(f);
          return (val < 0 ? 0 : val);
      }
  }
  
! float rmstodb(float f)
  {
      if (f <= 0) return (0);
      else
      {
!         float val = 100 + 20./LOGTEN * log(f);
          return (val < 0 ? 0 : val);
      }
  }
  
! float dbtopow(float f)
  {
      if (f <= 0)
--- 17,46 ----
  }
  
! t_float ftom(t_float f)
  {
      return (f > 0 ? 17.3123405046 * log(.12231220585 * f) : -1500);
  }
  
! t_float powtodb(t_float f)
  {
      if (f <= 0) return (0);
      else
      {
!         t_float val = 100 + 10./LOGTEN * log(f);
          return (val < 0 ? 0 : val);
      }
  }
  
! t_float rmstodb(t_float f)
  {
      if (f <= 0) return (0);
      else
      {
!         t_float val = 100 + 20./LOGTEN * log(f);
          return (val < 0 ? 0 : val);
      }
  }
  
! t_float dbtopow(t_float f)
  {
      if (f <= 0)
***************
*** 54,58 ****
  }
  
! float dbtorms(float f)
  {
      if (f <= 0)
--- 54,58 ----
  }
  
! t_float dbtorms(t_float f)
  {
      if (f <= 0)

Index: makefile.nt
===================================================================
RCS file: /cvsroot/pure-data/pd/src/makefile.nt,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** makefile.nt	18 Aug 2007 23:32:44 -0000	1.11
--- makefile.nt	28 Dec 2007 03:43:05 -0000	1.12
***************
*** 3,17 ****
  all: pd gui ..\bin\pd.tk ..\bin\pdsend.exe ..\bin\pdreceive.exe
  
! VC = "C:\Program Files\Microsoft Visual Studio\VC98"
  #VC="\Program Files\DevStudio\Vc"
! INCLUDE = -I.\ -I..\Tcl\include -I\DXSDK\include -I$(VC)\include
  
! LDIR = $(VC)\lib
  
! LIB = /NODEFAULTLIB:libc /NODEFAULTLIB:oldnames  /NODEFAULTLIB:kernel \
!     /NODEFAULTLIB:uuid \
!     $(LDIR)\libc.lib $(LDIR)\oldnames.lib $(LDIR)\kernel32.lib \
      $(LDIR)\wsock32.lib $(LDIR)\winmm.lib $(LDIR)\advapi32.lib \
!     $(LDIR)\setupapi.lib ..\bin\pthreadVC.lib 
  
  GLIB =  $(LIB) ..\bin\tcl84.lib ..\bin\tk84.lib
--- 3,23 ----
  all: pd gui ..\bin\pd.tk ..\bin\pdsend.exe ..\bin\pdreceive.exe
  
! 
! VCSDK = "C:\Program Files\Microsoft SDKs\Windows\v6.0A"
! VC9 = "C:\Program Files\Microsoft Visual Studio 9.0\VC"
  #VC="\Program Files\DevStudio\Vc"
! INCLUDE = -I.\ -I..\Tcl\include -I\DXSDK\include -I$(VC9)\Include \
!  -I$(VCSDK)\Include
  
! LDIR = $(VCSDK)\lib
! LD2 = $(VC9)\lib
  
! LIB = /NODEFAULTLIB:libcmt /NODEFAULTLIB:oldnames /NODEFAULTLIB:libc \
!     /NODEFAULTLIB:uuid $(LDIR)\kernel32.lib \
      $(LDIR)\wsock32.lib $(LDIR)\winmm.lib $(LDIR)\advapi32.lib \
!     $(LDIR)\setupapi.lib ..\bin\pthreadVC.lib \
!     $(LD2)\libcmt.lib $(LD2)\oldnames.lib
! 
! #  \
  
  GLIB =  $(LIB) ..\bin\tcl84.lib ..\bin\tk84.lib
***************
*** 98,106 ****
  
  ..\bin\pd.exe: s_entry.obj ..\bin\pd.lib
! 	link $(LFLAGS) /out:..\bin\pd.exe /INCREMENTAL:NO s_entry.obj \
  	    ..\bin\pd.lib $(LIB) $(ASIOLIB)
  
  ..\bin\pd.dll ..\bin\pd.lib: $(OBJC) $(OBJASIO)
! 	link $(LFLAGS) /dll /export:sys_main /out:..\bin\pd.dll $(OBJC) \
  	    $(OBJASIO) $(LIB) $(ASIOLIB)
  
--- 104,112 ----
  
  ..\bin\pd.exe: s_entry.obj ..\bin\pd.lib
! 	link $(LFLAGS) /OUT:..\bin\pd.exe /INCREMENTAL:NO s_entry.obj \
  	    ..\bin\pd.lib $(LIB) $(ASIOLIB)
  
  ..\bin\pd.dll ..\bin\pd.lib: $(OBJC) $(OBJASIO)
! 	link /DLL /OUT:..\bin\pd.dll /EXPORT:sys_main $(LFLAGS) $(OBJC) \
  	    $(OBJASIO) $(LIB) $(ASIOLIB)
  

Index: g_all_guis.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_all_guis.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** g_all_guis.h	16 Aug 2005 04:06:28 -0000	1.5
--- g_all_guis.h	28 Dec 2007 03:43:03 -0000	1.6
***************
*** 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;
***************
*** 209,214 ****
  {
      t_iemgui x_gui;
!     float    x_on;
!     float    x_nonzero;
  } t_toggle;
  
--- 209,214 ----
  {
      t_iemgui x_gui;
!     t_float    x_on;
!     t_float    x_nonzero;
  } t_toggle;
  
***************
*** 239,244 ****
      int      x_peak;
      int      x_rms;
!     float    x_fp;
!     float    x_fr;
      int      x_scale;
      void     *x_out_rms;
--- 239,244 ----
      int      x_peak;
      int      x_rms;
!     t_float    x_fp;
!     t_float    x_fr;
      int      x_scale;
      void     *x_out_rms;

Index: g_canvas.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_canvas.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** g_canvas.c	20 Jul 2007 03:25:20 -0000	1.19
--- g_canvas.c	28 Dec 2007 03:43:03 -0000	1.20
***************
*** 449,454 ****
      a "graph", not a text object.  */
  t_glist *glist_addglist(t_glist *g, t_symbol *sym,
!     float x1, float y1, float x2, float y2,
!     float px1, float py1, float px2, float py2)
  {
      static int gcount = 0;
--- 449,454 ----
      a "graph", not a text object.  */
  t_glist *glist_addglist(t_glist *g, t_symbol *sym,
!     t_float x1, t_float y1, t_float x2, t_float y2,
!     t_float px1, t_float py1, t_float px2, t_float py2)
  {
      static int gcount = 0;
***************
*** 475,479 ****
      if (py2 < py1)
      {
!         float zz;
          zz = y2;
          y2 = y1;
--- 475,479 ----
      if (py2 < py1)
      {
!         t_float zz;
          zz = y2;
          y2 = y1;
***************
*** 521,532 ****
  {
      t_symbol *sym = atom_getsymbolarg(0, argc, argv);   
!     float x1 = atom_getfloatarg(1, argc, argv);  
!     float y1 = atom_getfloatarg(2, argc, argv);  
!     float x2 = atom_getfloatarg(3, argc, argv);  
!     float y2 = atom_getfloatarg(4, argc, argv);  
!     float px1 = atom_getfloatarg(5, argc, argv);  
!     float py1 = atom_getfloatarg(6, argc, argv);  
!     float px2 = atom_getfloatarg(7, argc, argv);  
!     float py2 = atom_getfloatarg(8, argc, argv);
      glist_addglist(g, sym, x1, y1, x2, y2, px1, py1, px2, py2);
  }
--- 521,532 ----
  {
      t_symbol *sym = atom_getsymbolarg(0, argc, argv);   
!     t_float x1 = atom_getfloatarg(1, argc, argv);  
!     t_float y1 = atom_getfloatarg(2, argc, argv);  
!     t_float x2 = atom_getfloatarg(3, argc, argv);  
!     t_float y2 = atom_getfloatarg(4, argc, argv);  
!     t_float px1 = atom_getfloatarg(5, argc, argv);  
!     t_float py1 = atom_getfloatarg(6, argc, argv);  
!     t_float px2 = atom_getfloatarg(7, argc, argv);  
!     t_float py2 = atom_getfloatarg(8, argc, argv);
      glist_addglist(g, sym, x1, y1, x2, y2, px1, py1, px2, py2);
  }
***************
*** 558,562 ****
              only appropriate if we're a regular "text" object on the
              parent. */
!         float diff = x->gl_y1 - x->gl_y2;
          t_gobj *y;
          x->gl_y1 = heightwas * diff;
--- 558,562 ----
              only appropriate if we're a regular "text" object on the
              parent. */
!         t_float diff = x->gl_y1 - x->gl_y2;
          t_gobj *y;
          x->gl_y1 = heightwas * diff;
***************
*** 739,743 ****
      for (y = x->gl_list; y; y = y->g_next)
          if (pd_class(&y->g_pd) == canvas_class &&
!             ((t_canvas *)y)->gl_isgraph)
                  canvas_create_editor((t_canvas *)y, createit);
  }
--- 739,743 ----
      for (y = x->gl_list; y; y = y->g_next)
          if (pd_class(&y->g_pd) == canvas_class &&
!             ((t_canvas *)y)->gl_isgraph && !((t_canvas *)y)->gl_havewindow)
                  canvas_create_editor((t_canvas *)y, createit);
  }
***************
*** 809,813 ****
          {
              t_glist *gl2 = x->gl_owner;
!             canvas_create_editor(x, 1);
              if (glist_isvisible(gl2))
                  gobj_vis(&x->gl_gobj, gl2, 0);
--- 809,814 ----
          {
              t_glist *gl2 = x->gl_owner;
!             if (!x->gl_owner->gl_isdeleting)
!                 canvas_create_editor(x, 1);
              if (glist_isvisible(gl2))
                  gobj_vis(&x->gl_gobj, gl2, 0);
***************
*** 1044,1051 ****
  }
  
!     /* When you ask a canvas its size the result is 2 pixels more than what
!     you gave it to open it; perhaps there's a 1-pixel border all around it
!     or something.  Anyway, we just add the 2 pixels back here; seems we
!     have to do this for linux but not MSW; not sure about MacOS. */
  
  #ifdef __unix__
--- 1045,1050 ----
  }
  
!     /* When you ask a canvas its size the result is more than what
!     you gave it to open it; how much bigger apparently depends on the OS. */
  
  #ifdef __unix__
***************
*** 1053,1059 ****
--- 1052,1063 ----
  #define VERTBORDER 2
  #else
+ #ifdef MACOSX
+ #define HORIZBORDER 6
+ #define VERTBORDER 6
+ #else
  #define HORIZBORDER 4
  #define VERTBORDER 4
  #endif
+ #endif
  
  static void canvas_relocate(t_canvas *x, t_symbol *canvasgeom,

Index: notes.txt
===================================================================
RCS file: /cvsroot/pure-data/pd/src/notes.txt,v
retrieving revision 1.36
retrieving revision 1.37
diff -C2 -d -r1.36 -r1.37
*** notes.txt	20 Jul 2007 03:25:20 -0000	1.36
--- notes.txt	28 Dec 2007 03:43:05 -0000	1.37
***************
*** 1,6 ****
  ---------------- dolist --------------------
!   binbuf_read_via_canvas in x_qlist.c
  
- PC device counting problem (first device invoked by -audiodev 0)
  
  test:
--- 1,9 ----
  ---------------- dolist --------------------
! fixed crash bug closing patches with open GOPs
! fixed PC device counting problem (first device invoked by -audiodev 0)
! fixed MSTACKSIZE limitation in m_binbuf.c
! fixed so that if more than one object is selected, clicking prefers to
!     "hit" a selected one (better dragging after "duplicate")
  
  
  test:
***************
*** 13,27 ****
  mac:
    clicking on windows seems sometimes not to open them
! what does OSX do when jack is compiled into Pd but not installed??
! turn on paMacCore_ChangeDeviceParameters for mac (pa_mac_core.h)
  Gnome: why don't windows pop up when clicked on?
  
  problems:
  fix declare to update current patch when changed
  objects on GOP don't erase if you edit the GOP while they're showing
- MSTACKSIZE limitation in m_binbuf.c
  add -stack option to make 'regular' stack larger
  TK menu on Windows says "wish"
- activating windows in Gnome?
  help browser broke on Panurge
  offer both new and old help browser style
--- 16,29 ----
  mac:
    clicking on windows seems sometimes not to open them
!   what does OSX do when jack is compiled into Pd but not installed??
!   turn on paMacCore_ChangeDeviceParameters for mac (pa_mac_core.h)
  Gnome: why don't windows pop up when clicked on?
  
  problems:
+ check real-time gaps in writesf~
  fix declare to update current patch when changed
  objects on GOP don't erase if you edit the GOP while they're showing
  add -stack option to make 'regular' stack larger
  TK menu on Windows says "wish"
  help browser broke on Panurge
  offer both new and old help browser style
***************
*** 38,42 ****
      the mouse is in a window when it opens?
  arrays that don't fit in bounds don't update (same as red rectangle problem?)
- look in d_resample.pd to understand inlet~ upsampling...
  patcher inlets don't deal with scalars (zbug.pd)
  check if there's a problem loading libs on startup if superuser
--- 40,43 ----
***************
*** 56,60 ****
  
  features:
! clickles connection (hit 'c' key or something)
  messages to suppress menus&accelerators, and invisibilize Pd window
  machine-independent fonts
--- 57,62 ----
  
  features:
! flag to prevent unlocking patches
! clickless connection (hit 'c' key? see Bouchard paper)
  messages to suppress menus&accelerators, and invisibilize Pd window
  machine-independent fonts

Index: d_resample.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_resample.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** d_resample.c	28 Nov 2004 21:20:42 -0000	1.3
--- d_resample.c	28 Dec 2007 03:43:03 -0000	1.4
***************
*** 9,14 ****
  t_int *downsampling_perform_0(t_int *w)
  {
!   t_float *in  = (t_float *)(w[1]); /* original signal     */
!   t_float *out = (t_float *)(w[2]); /* downsampled signal  */
    int down     = (int)(w[3]);       /* downsampling factor */
    int parent   = (int)(w[4]);       /* original vectorsize */
--- 9,14 ----
  t_int *downsampling_perform_0(t_int *w)
  {
!   t_sample *in  = (t_sample *)(w[1]); /* original signal     */
!   t_sample *out = (t_sample *)(w[2]); /* downsampled signal  */
    int down     = (int)(w[3]);       /* downsampling factor */
    int parent   = (int)(w[4]);       /* original vectorsize */
***************
*** 26,36 ****
  t_int *upsampling_perform_0(t_int *w)
  {
!   t_float *in  = (t_float *)(w[1]); /* original signal     */
!   t_float *out = (t_float *)(w[2]); /* upsampled signal    */
    int up       = (int)(w[3]);       /* upsampling factor   */
    int parent   = (int)(w[4]);       /* original vectorsize */
  
    int n=parent*up;
!   t_float *dummy = out;
    
    while(n--)*out++=0;
--- 26,36 ----
  t_int *upsampling_perform_0(t_int *w)
  {
!   t_sample *in  = (t_sample *)(w[1]); /* original signal     */
!   t_sample *out = (t_sample *)(w[2]); /* upsampled signal    */
    int up       = (int)(w[3]);       /* upsampling factor   */
    int parent   = (int)(w[4]);       /* original vectorsize */
  
    int n=parent*up;
!   t_sample *dummy = out;
    
    while(n--)*out++=0;
***************
*** 48,53 ****
  t_int *upsampling_perform_hold(t_int *w)
  {
!   t_float *in  = (t_float *)(w[1]); /* original signal     */
!   t_float *out = (t_float *)(w[2]); /* upsampled signal    */
    int up       = (int)(w[3]);       /* upsampling factor   */
    int parent   = (int)(w[4]);       /* original vectorsize */
--- 48,53 ----
  t_int *upsampling_perform_hold(t_int *w)
  {
!   t_sample *in  = (t_sample *)(w[1]); /* original signal     */
!   t_sample *out = (t_sample *)(w[2]); /* upsampled signal    */
    int up       = (int)(w[3]);       /* upsampling factor   */
    int parent   = (int)(w[4]);       /* original vectorsize */
***************
*** 55,60 ****
  
    int n=parent;
!   t_float *dum_out = out;
!   t_float *dum_in  = in;
    
    while (i--) {
--- 55,60 ----
  
    int n=parent;
!   t_sample *dum_out = out;
!   t_sample *dum_in  = in;
    
    while (i--) {
***************
*** 73,90 ****
  {
    t_resample *x= (t_resample *)(w[1]);
!   t_float *in  = (t_float *)(w[2]); /* original signal     */
!   t_float *out = (t_float *)(w[3]); /* upsampled signal    */
    int up       = (int)(w[4]);       /* upsampling factor   */
    int parent   = (int)(w[5]);       /* original vectorsize */
    int length   = parent*up;
    int n;
!   t_float *fp;
!   t_float a=*x->buffer, b=*in;
  
    
    for (n=0; n<length; n++) {
!     t_float findex = (t_float)(n+1)/up;
      int     index  = findex;
!     t_float frac=findex - index;
      if (frac==0.)frac=1.;
      *out++ = frac * b + (1.-frac) * a;
--- 73,90 ----
  {
    t_resample *x= (t_resample *)(w[1]);
!   t_sample *in  = (t_sample *)(w[2]); /* original signal     */
!   t_sample *out = (t_sample *)(w[3]); /* upsampled signal    */
    int up       = (int)(w[4]);       /* upsampling factor   */
    int parent   = (int)(w[5]);       /* original vectorsize */
    int length   = parent*up;
    int n;
!   t_sample *fp;
!   t_sample a=*x->buffer, b=*in;
  
    
    for (n=0; n<length; n++) {
!     t_sample findex = (t_sample)(n+1)/up;
      int     index  = findex;
!     t_sample frac=findex - index;
      if (frac==0.)frac=1.;
      *out++ = frac * b + (1.-frac) * a;
***************
*** 181,187 ****
  
    if (x->s_n != outsize) {
!     t_float *buf=x->s_vec;
      t_freebytes(buf, x->s_n * sizeof(*buf));
!     buf = (t_float *)t_getbytes(outsize * sizeof(*buf));
      x->s_vec = buf;
      x->s_n   = outsize;
--- 181,187 ----
  
    if (x->s_n != outsize) {
!     t_sample *buf=x->s_vec;
      t_freebytes(buf, x->s_n * sizeof(*buf));
!     buf = (t_sample *)t_getbytes(outsize * sizeof(*buf));
      x->s_vec = buf;
      x->s_n   = outsize;
***************
*** 204,210 ****
  
    if (x->s_n != insize) {
!     t_float *buf=x->s_vec;
      t_freebytes(buf, x->s_n * sizeof(*buf));
!     buf = (t_float *)t_getbytes(insize * sizeof(*buf));
      x->s_vec = buf;
      x->s_n   = insize;
--- 204,210 ----
  
    if (x->s_n != insize) {
!     t_sample *buf=x->s_vec;
      t_freebytes(buf, x->s_n * sizeof(*buf));
!     buf = (t_sample *)t_getbytes(insize * sizeof(*buf));
      x->s_vec = buf;
      x->s_n   = insize;

Index: x_time.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_time.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** x_time.c	6 Sep 2004 20:20:36 -0000	1.2
--- x_time.c	28 Dec 2007 03:43:06 -0000	1.3
***************
*** 314,318 ****
      int x_n;
      int x_nptr;
!     float x_deltime;
      t_pipeout *x_vec;
      t_gpointer *x_gp;
--- 314,318 ----
      int x_n;
      int x_nptr;
!     t_float x_deltime;
      t_pipeout *x_vec;
      t_gpointer *x_gp;
***************
*** 328,332 ****
      int nptr = 0;
      int i;
!     float deltime;
      if (argc)
      {
--- 328,332 ----
      int nptr = 0;
      int i;
!     t_float deltime;
      if (argc)
      {

Index: s_entry.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_entry.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** s_entry.c	20 Jul 2007 03:25:20 -0000	1.4
--- s_entry.c	28 Dec 2007 03:43:06 -0000	1.5
***************
*** 24,27 ****
--- 24,28 ----
          printf("caught an exception; stopping\n");
      }
+     return (0);
  }
  

Index: d_ctl.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_ctl.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** d_ctl.c	25 Jun 2005 02:49:08 -0000	1.4
--- d_ctl.c	28 Dec 2007 03:43:02 -0000	1.5
***************
*** 16,20 ****
  {
      t_object x_obj;
!     float x_f;
  } t_sig;
  
--- 16,20 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_sig;
  
***************
*** 22,26 ****
  {
      t_float f = *(t_float *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
      while (n--)
--- 22,26 ----
  {
      t_float f = *(t_float *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
      while (n--)
***************
*** 32,36 ****
  {
      t_float f = *(t_float *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
      
--- 32,36 ----
  {
      t_float f = *(t_float *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
      
***************
*** 49,53 ****
  }
  
! void dsp_add_scalarcopy(t_sample *in, t_sample *out, int n)
  {
      if (n&7)
--- 49,53 ----
  }
  
! void dsp_add_scalarcopy(t_float *in, t_sample *out, int n)
  {
      if (n&7)
***************
*** 89,100 ****
  {
      t_object x_obj;
!     float x_target;
!     float x_value;
!     float x_biginc;
!     float x_inc;
!     float x_1overn;
!     float x_dspticktomsec;
!     float x_inletvalue;
!     float x_inletwas;
      int x_ticksleft;
      int x_retarget;
--- 89,100 ----
  {
      t_object x_obj;
!     t_sample x_target; /* target value of ramp */
!     t_sample x_value; /* current value of ramp at block-borders */
!     t_sample x_biginc;
!     t_sample x_inc;
!     t_float x_1overn;
!     t_float x_dspticktomsec;
!     t_float x_inletvalue;
!     t_float x_inletwas;
      int x_ticksleft;
      int x_retarget;
***************
*** 104,110 ****
  {
      t_line *x = (t_line *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
!     float f = x->x_value;
  
      if (PD_BIGORSMALL(f))
--- 104,110 ----
  {
      t_line *x = (t_line *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
!     t_sample f = x->x_value;
  
      if (PD_BIGORSMALL(f))
***************
*** 115,119 ****
          if (!nticks) nticks = 1;
          x->x_ticksleft = nticks;
!         x->x_biginc = (x->x_target - x->x_value)/(float)nticks;
          x->x_inc = x->x_1overn * x->x_biginc;
          x->x_retarget = 0;
--- 115,119 ----
          if (!nticks) nticks = 1;
          x->x_ticksleft = nticks;
!         x->x_biginc = (x->x_target - x->x_value)/(t_float)nticks;
          x->x_inc = x->x_1overn * x->x_biginc;
          x->x_retarget = 0;
***************
*** 121,125 ****
      if (x->x_ticksleft)
      {
!         float f = x->x_value;
          while (n--) *out++ = f, f += x->x_inc;
          x->x_value += x->x_biginc;
--- 121,125 ----
      if (x->x_ticksleft)
      {
!         t_sample f = x->x_value;
          while (n--) *out++ = f, f += x->x_inc;
          x->x_value += x->x_biginc;
***************
*** 128,132 ****
      else
      {
!         float g = x->x_value = x->x_target;
          while (n--)
              *out++ = g;
--- 128,132 ----
      else
      {
!         t_sample g = x->x_value = x->x_target;
          while (n--)
              *out++ = g;
***************
*** 139,145 ****
  {
      t_line *x = (t_line *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
!     float f = x->x_value;
  
      if (PD_BIGORSMALL(f))
--- 139,145 ----
  {
      t_line *x = (t_line *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
!     t_sample f = x->x_value;
  
      if (PD_BIGORSMALL(f))
***************
*** 150,154 ****
          if (!nticks) nticks = 1;
          x->x_ticksleft = nticks;
!         x->x_biginc = (x->x_target - x->x_value)/(float)nticks;
          x->x_inc = x->x_1overn * x->x_biginc;
          x->x_retarget = 0;
--- 150,154 ----
          if (!nticks) nticks = 1;
          x->x_ticksleft = nticks;
!         x->x_biginc = (x->x_target - x->x_value)/(t_sample)nticks;
          x->x_inc = x->x_1overn * x->x_biginc;
          x->x_retarget = 0;
***************
*** 156,160 ****
      if (x->x_ticksleft)
      {
!         float f = x->x_value;
          while (n--) *out++ = f, f += x->x_inc;
          x->x_value += x->x_biginc;
--- 156,160 ----
      if (x->x_ticksleft)
      {
!         t_sample f = x->x_value;
          while (n--) *out++ = f, f += x->x_inc;
          x->x_value += x->x_biginc;
***************
*** 163,167 ****
      else
      {
!         float f = x->x_value = x->x_target;
          for (; n; n -= 8, out += 8)
          {
--- 163,167 ----
      else
      {
!         t_sample f = x->x_value = x->x_target;
          for (; n; n -= 8, out += 8)
          {
***************
*** 233,237 ****
      double s_targettime;
      double s_starttime;
!     float s_target;
      struct _vseg *s_next;
  } t_vseg;
--- 233,237 ----
      double s_targettime;
      double s_starttime;
!     t_sample s_target;
      struct _vseg *s_next;
  } t_vseg;
***************
*** 246,252 ****
      double x_msecpersamp;
      double x_targettime;
!     float x_target;
!     float x_inlet1;
!     float x_inlet2;
      t_vseg *x_list;
  } t_vline;
--- 246,252 ----
      double x_msecpersamp;
      double x_targettime;
!     t_sample x_target;
!     t_float x_inlet1;
!     t_float x_inlet2;
      t_vseg *x_list;
  } t_vline;
***************
*** 321,326 ****
  {
      double timenow = clock_gettimesince(x->x_referencetime);
!     float inlet1 = (x->x_inlet1 < 0 ? 0 : x->x_inlet1);
!     float inlet2 = x->x_inlet2;
      double starttime = timenow + inlet2;
      t_vseg *s1, *s2, *deletefrom = 0, *snew;
--- 321,326 ----
  {
      double timenow = clock_gettimesince(x->x_referencetime);
!     t_float inlet1 = (x->x_inlet1 < 0 ? 0 : x->x_inlet1);
!     t_float inlet2 = x->x_inlet2;
      double starttime = timenow + inlet2;
      t_vseg *s1, *s2, *deletefrom = 0, *snew;
***************
*** 417,421 ****
      t_object x_obj;
      t_sample x_value;
!     float x_f;
  } t_snapshot;
  
--- 417,421 ----
      t_object x_obj;
      t_sample x_value;
!     t_float x_f;
  } t_snapshot;
  
***************
*** 431,436 ****
  static t_int *snapshot_tilde_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      *out = *in;
      return (w+3);
--- 431,436 ----
  static t_int *snapshot_tilde_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      *out = *in;
      return (w+3);
***************
*** 474,479 ****
      int x_gotone;
      t_sample *x_vec;
!     float x_f;
!     float x_sampspermsec;
      double x_time;
  } t_vsnapshot;
--- 474,479 ----
      int x_gotone;
      t_sample *x_vec;
!     t_float x_f;
!     t_float x_sampspermsec;
      double x_time;
  } t_vsnapshot;
***************
*** 492,498 ****
  static t_int *vsnapshot_tilde_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_vsnapshot *x = (t_vsnapshot *)(w[2]);
!     t_float *out = x->x_vec;
      int n = x->x_n, i;
      for (i = 0; i < n; i++)
--- 492,498 ----
  static t_int *vsnapshot_tilde_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_vsnapshot *x = (t_vsnapshot *)(w[2]);
!     t_sample *out = x->x_vec;
      int n = x->x_n, i;
      for (i = 0; i < n; i++)
***************
*** 520,524 ****
  static void vsnapshot_tilde_bang(t_vsnapshot *x)
  {
!     float val;
      if (x->x_gotone)
      {
--- 520,524 ----
  static void vsnapshot_tilde_bang(t_vsnapshot *x)
  {
!     t_sample val;
      if (x->x_gotone)
      {
***************
*** 561,572 ****
      void *x_outlet;                 /* a "float" outlet */
      void *x_clock;                  /* a "clock" object */
!     float *x_buf;                   /* a Hanning window */
      int x_phase;                    /* number of points since last output */
      int x_period;                   /* requested period of output */
      int x_realperiod;               /* period rounded up to vecsize multiple */
      int x_npoints;                  /* analysis window size in samples */
!     float x_result;                 /* result to output */
!     float x_sumbuf[MAXOVERLAP];     /* summing buffer */
!     float x_f;
      int x_allocforvs;               /* extra buffer for DSP vector size */
  } t_sigenv;
--- 561,572 ----
      void *x_outlet;                 /* a "float" outlet */
      void *x_clock;                  /* a "clock" object */
!     t_sample *x_buf;                   /* a Hanning window */
      int x_phase;                    /* number of points since last output */
      int x_period;                   /* requested period of output */
      int x_realperiod;               /* period rounded up to vecsize multiple */
      int x_npoints;                  /* analysis window size in samples */
!     t_float x_result;                 /* result to output */
!     t_sample x_sumbuf[MAXOVERLAP];     /* summing buffer */
!     t_float x_f;
      int x_allocforvs;               /* extra buffer for DSP vector size */
  } t_sigenv;
***************
*** 580,584 ****
      int period = fperiod;
      t_sigenv *x;
!     float *buf;
      int i;
  
--- 580,584 ----
      int period = fperiod;
      t_sigenv *x;
!     t_sample *buf;
      int i;
  
***************
*** 587,591 ****
      if (period < npoints / MAXOVERLAP + 1)
          period = npoints / MAXOVERLAP + 1;
!     if (!(buf = getbytes(sizeof(float) * (npoints + INITVSTAKEN))))
      {
          error("env: couldn't allocate buffer");
--- 587,591 ----
      if (period < npoints / MAXOVERLAP + 1)
          period = npoints / MAXOVERLAP + 1;
!     if (!(buf = getbytes(sizeof(t_sample) * (npoints + INITVSTAKEN))))
      {
          error("env: couldn't allocate buffer");
***************
*** 611,625 ****
  {
      t_sigenv *x = (t_sigenv *)(w[1]);
!     t_float *in = (t_float *)(w[2]);
      int n = (int)(w[3]);
      int count;
!     float *sump; 
      in += n;
      for (count = x->x_phase, sump = x->x_sumbuf;
          count < x->x_npoints; count += x->x_realperiod, sump++)
      {
!         float *hp = x->x_buf + count;
!         float *fp = in;
!         float sum = *sump;
          int i;
          
--- 611,625 ----
  {
      t_sigenv *x = (t_sigenv *)(w[1]);
!     t_sample *in = (t_sample *)(w[2]);
      int n = (int)(w[3]);
      int count;
!     t_sample *sump; 
      in += n;
      for (count = x->x_phase, sump = x->x_sumbuf;
          count < x->x_npoints; count += x->x_realperiod, sump++)
      {
!         t_sample *hp = x->x_buf + count;
!         t_sample *fp = in;
!         t_sample sum = *sump;
          int i;
          
***************
*** 654,659 ****
      {
          void *xx = resizebytes(x->x_buf,
!             (x->x_npoints + x->x_allocforvs) * sizeof(float),
!             (x->x_npoints + sp[0]->s_n) * sizeof(float));
          if (!xx)
          {
--- 654,659 ----
      {
          void *xx = resizebytes(x->x_buf,
!             (x->x_npoints + x->x_allocforvs) * sizeof(t_sample),
!             (x->x_npoints + sp[0]->s_n) * sizeof(t_sample));
          if (!xx)
          {
***************
*** 661,665 ****
              return;
          }
!         x->x_buf = (t_float *)xx;
          x->x_allocforvs = sp[0]->s_n;
      }
--- 661,665 ----
              return;
          }
!         x->x_buf = (t_sample *)xx;
          x->x_allocforvs = sp[0]->s_n;
      }
***************
*** 675,679 ****
  {
      clock_free(x->x_clock);
!     freebytes(x->x_buf, (x->x_npoints + x->x_allocforvs) * sizeof(float));
  }
  
--- 675,679 ----
  {
      clock_free(x->x_clock);
!     freebytes(x->x_buf, (x->x_npoints + x->x_allocforvs) * sizeof(*x->x_buf));
  }
  
***************
*** 697,708 ****
      t_outlet *x_outlet2;        /* bang out for low thresh */
      t_clock *x_clock;           /* wakeup for message output */
!     float x_f;                  /* scalar inlet */
      int x_state;                /* 1 = high, 0 = low */
!     float x_hithresh;           /* value of high threshold */
!     float x_lothresh;           /* value of low threshold */
!     float x_deadwait;           /* msec remaining in dead period */
!     float x_msecpertick;        /* msec per DSP tick */
!     float x_hideadtime;         /* hi dead time in msec */
!     float x_lodeadtime;         /* lo dead time in msec */
  } t_threshold_tilde;
  
--- 697,708 ----
      t_outlet *x_outlet2;        /* bang out for low thresh */
      t_clock *x_clock;           /* wakeup for message output */
!     t_float x_f;                  /* scalar inlet */
      int x_state;                /* 1 = high, 0 = low */
!     t_float x_hithresh;           /* value of high threshold */
!     t_float x_lothresh;           /* value of low threshold */
!     t_float x_deadwait;           /* msec remaining in dead period */
!     t_float x_msecpertick;        /* msec per DSP tick */
!     t_float x_hideadtime;         /* hi dead time in msec */
!     t_float x_lodeadtime;         /* lo dead time in msec */
  } t_threshold_tilde;
  
***************
*** 759,763 ****
  static t_int *threshold_tilde_perform(t_int *w)
  {
!     float *in1 = (float *)(w[1]);
      t_threshold_tilde *x = (t_threshold_tilde *)(w[2]);
      int n = (t_int)(w[3]);
--- 759,763 ----
  static t_int *threshold_tilde_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
      t_threshold_tilde *x = (t_threshold_tilde *)(w[2]);
      int n = (t_int)(w[3]);

Index: d_misc.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_misc.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** d_misc.c	21 Aug 2005 14:46:17 -0000	1.5
--- d_misc.c	28 Dec 2007 03:43:03 -0000	1.6
***************
*** 16,20 ****
  {
      t_object x_obj;
!     float x_f;
      t_symbol *x_sym;
      int x_count;
--- 16,20 ----
  {
      t_object x_obj;
!     t_float x_f;
      t_symbol *x_sym;
      int x_count;
***************
*** 24,43 ****
  {
      t_print *x = (t_print *)(w[1]);
!     t_float *in = (t_float *)(w[2]);
      int n = (int)(w[3]);
      if (x->x_count)
      {
!         post("%s:", x->x_sym->s_name);
!         if (n == 1) post("%8g", in[0]);
!         else if (n == 2) post("%8g %8g", in[0], in[1]);
!         else if (n == 4) post("%8g %8g %8g %8g",
!             in[0], in[1], in[2], in[3]);
!         else while (n > 0)
!         {
!             post("%-8.5g %-8.5g %-8.5g %-8.5g %-8.5g %-8.5g %-8.5g %-8.5g",
!                 in[0], in[1], in[2], in[3], in[4], in[5], in[6], in[7]);
!             n -= 8;
!             in += 8;
          }
          x->x_count--;
      }
--- 24,38 ----
  {
      t_print *x = (t_print *)(w[1]);
!     t_sample *in = (t_sample *)(w[2]);
      int n = (int)(w[3]);
      if (x->x_count)
      {
!         int i=0;
!         startpost("%s:", x->x_sym->s_name);
!         for(i=0; i<n; i++) {
!           if(i%8==0)endpost();
!           startpost("%-8.5g", in[i]);
          }
+         endpost();
          x->x_count--;
      }

Index: g_hslider.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_hslider.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** g_hslider.c	8 Sep 2006 23:45:30 -0000	1.6
--- g_hslider.c	28 Dec 2007 03:43:04 -0000	1.7
***************
*** 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:"");
***************
*** 223,227 ****
                  (int)x->x_gui.x_obj.te_xpix, (int)x->x_gui.x_obj.te_ypix,
                  gensym("hsl"), x->x_gui.x_w, x->x_gui.x_h,
!                 (float)x->x_min, (float)x->x_max,
                  x->x_lin0_log1, iem_symargstoint(&x->x_gui.x_isa),
                  srl[0], srl[1], srl[2],
--- 224,228 ----
                  (int)x->x_gui.x_obj.te_xpix, (int)x->x_gui.x_obj.te_ypix,
                  gensym("hsl"), x->x_gui.x_w, x->x_gui.x_h,
!                 (t_float)x->x_min, (t_float)x->x_max,
                  x->x_lin0_log1, iem_symargstoint(&x->x_gui.x_isa),
                  srl[0], srl[1], srl[2],
***************
*** 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_audio.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** s_audio.c	28 Dec 2007 03:28:31 -0000	1.15
--- s_audio.c	28 Dec 2007 03:43:05 -0000	1.16
***************
*** 40,51 ****
  int sys_blocksize = 0;          /* audio I/O block size in sample frames */
  int sys_audioapi = API_DEFAULT;
! 
  static int sys_meters;          /* true if we're metering */
! static float sys_inmax;         /* max input amplitude */
! static float sys_outmax;        /* max output amplitude */
  
      /* exported variables */
  int sys_schedadvance;   /* scheduler advance in microseconds */
! float sys_dacsr;
  
  t_sample *sys_soundout;
--- 40,51 ----
  int sys_blocksize = 0;          /* audio I/O block size in sample frames */
  int sys_audioapi = API_DEFAULT;
! int sys_audioapiopened = -1;    /* save last API opened for later closing */
  static int sys_meters;          /* true if we're metering */
! static t_sample sys_inmax;         /* max input amplitude */
! static t_sample sys_outmax;        /* max output amplitude */
  
      /* exported variables */
  int sys_schedadvance;   /* scheduler advance in microseconds */
! t_float sys_dacsr;
  
  t_sample *sys_soundout;
***************
*** 68,72 ****
--- 68,75 ----
  static int audio_callback;
  
+ static int audio_callback_is_open;  /* reflects true actual state */
+ static int audio_nextinchans, audio_nextoutchans;
  void sched_audio_callbackfn(void);
+ void sched_reopenmeplease(void);
  
  static int audio_isopen(void)
***************
*** 138,153 ****
      int nblk;
      int inbytes = (chin ? chin : 2) *
!                 (DEFDACBLKSIZE*sizeof(float));
      int outbytes = (chout ? chout : 2) *
!                 (DEFDACBLKSIZE*sizeof(float));
  
      if (sys_soundin)
          freebytes(sys_soundin, 
              (sys_inchannels? sys_inchannels : 2) *
!                 (DEFDACBLKSIZE*sizeof(float)));
      if (sys_soundout)
          freebytes(sys_soundout, 
              (sys_outchannels? sys_outchannels : 2) *
!                 (DEFDACBLKSIZE*sizeof(float)));
      sys_inchannels = chin;
      sys_outchannels = chout;
--- 141,156 ----
      int nblk;
      int inbytes = (chin ? chin : 2) *
!                 (DEFDACBLKSIZE*sizeof(t_sample));
      int outbytes = (chout ? chout : 2) *
!                 (DEFDACBLKSIZE*sizeof(t_sample));
  
      if (sys_soundin)
          freebytes(sys_soundin, 
              (sys_inchannels? sys_inchannels : 2) *
!                 (DEFDACBLKSIZE*sizeof(t_sample)));
      if (sys_soundout)
          freebytes(sys_soundout, 
              (sys_outchannels? sys_outchannels : 2) *
!                 (DEFDACBLKSIZE*sizeof(t_sample)));
      sys_inchannels = chin;
      sys_outchannels = chout;
***************
*** 157,164 ****
          sys_advance_samples = 3 * DEFDACBLKSIZE;
  
!     sys_soundin = (t_float *)getbytes(inbytes);
      memset(sys_soundin, 0, inbytes);
  
!     sys_soundout = (t_float *)getbytes(outbytes);
      memset(sys_soundout, 0, outbytes);
  
--- 160,167 ----
          sys_advance_samples = 3 * DEFDACBLKSIZE;
  
!     sys_soundin = (t_sample *)getbytes(inbytes);
      memset(sys_soundin, 0, inbytes);
  
!     sys_soundout = (t_sample *)getbytes(outbytes);
      memset(sys_soundout, 0, outbytes);
  
***************
*** 194,200 ****
          return;
      }
-         /* if we're already open close it */
-     if (sys_inchannels || sys_outchannels)
-         sys_close_audio();
  
      if (rate < 1)
--- 197,200 ----
***************
*** 325,332 ****
      }
      sys_schedadvance = advance * 1000;
-     sys_setchsr(inchans, outchans, rate);
      sys_log_error(ERR_NOTHING);
      sys_save_audio_params(nrealindev, realindev, realinchans,
!         nrealoutdev, realoutdev, realoutchans, sys_dacsr, advance, callback);
  }
  
--- 325,333 ----
      }
      sys_schedadvance = advance * 1000;
      sys_log_error(ERR_NOTHING);
+     audio_nextinchans = inchans;
+     audio_nextoutchans = outchans;
      sys_save_audio_params(nrealindev, realindev, realinchans,
!         nrealoutdev, realoutdev, realoutchans, rate, advance, callback);
  }
  
***************
*** 340,370 ****
          return;
  #ifdef USEAPI_PORTAUDIO
!     if (sys_audioapi == API_PORTAUDIO)
          pa_close_audio();
      else 
  #endif
  #ifdef USEAPI_JACK
!     if (sys_audioapi == API_JACK)
          jack_close_audio();
      else
  #endif
  #ifdef USEAPI_OSS
!     if (sys_audioapi == API_OSS)
          oss_close_audio();
      else
  #endif
  #ifdef USEAPI_ALSA
!     if (sys_audioapi == API_ALSA)
          alsa_close_audio();
      else
  #endif
  #ifdef USEAPI_MMIO
!     if (sys_audioapi == API_MMIO)
          mmio_close_audio();
      else
  #endif
!         post("sys_close_audio: unknown API %d", sys_audioapi);
      sys_inchannels = sys_outchannels = 0;
      sched_set_using_audio(SCHED_AUDIO_NONE);
  }
  
--- 341,374 ----
          return;
  #ifdef USEAPI_PORTAUDIO
!     if (sys_audioapiopened == API_PORTAUDIO)
          pa_close_audio();
      else 
  #endif
  #ifdef USEAPI_JACK
!     if (sys_audioapiopened == API_JACK)
          jack_close_audio();
      else
  #endif
  #ifdef USEAPI_OSS
!     if (sys_audioapiopened == API_OSS)
          oss_close_audio();
      else
  #endif
  #ifdef USEAPI_ALSA
!     if (sys_audioapiopened == API_ALSA)
          alsa_close_audio();
      else
  #endif
  #ifdef USEAPI_MMIO
!     if (sys_audioapiopened == API_MMIO)
          mmio_close_audio();
      else
  #endif
!         post("sys_close_audio: unknown API %d", sys_audioapiopened);
      sys_inchannels = sys_outchannels = 0;
+     sys_audioapiopened = -1;
      sched_set_using_audio(SCHED_AUDIO_NONE);
+     audio_state = 0;
+     audio_callback_is_open = 0;
  }
  
***************
*** 377,380 ****
--- 381,385 ----
      sys_get_audio_params(&naudioindev, audioindev, chindev,
          &naudiooutdev, audiooutdev, choutdev, &rate, &advance, &callback);
+     sys_setchsr(audio_nextinchans, audio_nextoutchans, rate);
      if (!naudioindev && !naudiooutdev)
      {
***************
*** 427,436 ****
--- 432,446 ----
          audio_state = 0;
          sched_set_using_audio(SCHED_AUDIO_NONE);
+         sys_audioapiopened = -1;
+         audio_callback_is_open = 0;
      }
      else
      {
+                 /* fprintf(stderr, "started w/callback %d\n", callback); */
          audio_state = 1;
          sched_set_using_audio(
              (callback ? SCHED_AUDIO_CALLBACK : SCHED_AUDIO_POLL));
+         sys_audioapiopened = sys_audioapi;
+         audio_callback_is_open = callback;
      }
      sys_vgui("set pd_whichapi %d\n",  (outcome == 0 ? sys_audioapi : 0));
***************
*** 442,450 ****
      {
          int i, n;
!         float maxsamp;
          for (i = 0, n = sys_inchannels * DEFDACBLKSIZE, maxsamp = sys_inmax;
              i < n; i++)
          {
!             float f = sys_soundin[i];
              if (f > maxsamp) maxsamp = f;
              else if (-f > maxsamp) maxsamp = -f;
--- 452,460 ----
      {
          int i, n;
!         t_sample maxsamp;
          for (i = 0, n = sys_inchannels * DEFDACBLKSIZE, maxsamp = sys_inmax;
              i < n; i++)
          {
!             t_sample f = sys_soundin[i];
              if (f > maxsamp) maxsamp = f;
              else if (-f > maxsamp) maxsamp = -f;
***************
*** 454,458 ****
              i < n; i++)
          {
!             float f = sys_soundout[i];
              if (f > maxsamp) maxsamp = f;
              else if (-f > maxsamp) maxsamp = -f;
--- 464,468 ----
              i < n; i++)
          {
!             t_sample f = sys_soundout[i];
              if (f > maxsamp) maxsamp = f;
              else if (-f > maxsamp) maxsamp = -f;
***************
*** 490,494 ****
  }
  
! float sys_getsr(void)
  {
       return (sys_dacsr);
--- 500,504 ----
  }
  
! t_float sys_getsr(void)
  {
       return (sys_dacsr);
***************
*** 505,509 ****
  }
  
! void sys_getmeters(float *inmax, float *outmax)
  {
      if (inmax)
--- 515,519 ----
  }
  
! void sys_getmeters(t_sample *inmax, t_sample *outmax)
  {
      if (inmax)
***************
*** 685,688 ****
--- 695,699 ----
  }
  
+ extern int pa_foo;
      /* new values from dialog window */
  void glob_audio_dialog(t_pd *dummy, t_symbol *s, int argc, t_atom *argv)
***************
*** 698,702 ****
      int newadvance = atom_getintarg(17, argc, argv);
      int newcallback = atom_getintarg(18, argc, argv);
-     int statewas;
  
      for (i = 0; i < 4; i++)
--- 709,712 ----
***************
*** 733,743 ****
      if (newcallback < 0)
          newcallback = 0;
!     if (audio_callback == newcallback)
          sys_close_audio();
      sys_set_audio_settings(nindev, newaudioindev, nindev, newaudioinchan,
          noutdev, newaudiooutdev, noutdev, newaudiooutchan,
          newrate, newadvance, (newcallback >= 0 ? newcallback : 0));
!     if (audio_callback == newcallback)
          sys_reopen_audio();
  }
  
--- 743,754 ----
      if (newcallback < 0)
          newcallback = 0;
!     if (!audio_callback_is_open && !newcallback)
          sys_close_audio();
      sys_set_audio_settings(nindev, newaudioindev, nindev, newaudioinchan,
          noutdev, newaudiooutdev, noutdev, newaudiooutchan,
          newrate, newadvance, (newcallback >= 0 ? newcallback : 0));
!     if (!audio_callback_is_open && !newcallback)
          sys_reopen_audio();
+     else sched_reopenmeplease();
  }
  
***************
*** 816,820 ****
      {
          sys_close_audio();
-         audio_state = 0;
      }
  }
--- 827,830 ----
***************
*** 833,837 ****
              sys_close_audio();
      }
-     audio_state = onoff;
  }
  
--- 843,846 ----

Index: d_osc.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_osc.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** d_osc.c	20 Jan 2007 04:06:06 -0000	1.6
--- d_osc.c	28 Dec 2007 03:43:03 -0000	1.7
***************
*** 480,484 ****
  static t_int *noise_perform(t_int *w)
  {
!     t_float *out = (t_float *)(w[1]);
      int *vp = (int *)(w[2]);
      int n = (int)(w[3]);
--- 480,484 ----
  static t_int *noise_perform(t_int *w)
  {
!     t_sample *out = (t_sample *)(w[1]);
      int *vp = (int *)(w[2]);
      int n = (int)(w[3]);

Index: x_midi.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_midi.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** x_midi.c	2 Aug 2007 00:33:50 -0000	1.5
--- x_midi.c	28 Dec 2007 03:43:06 -0000	1.6
***************
*** 136,142 ****
  static void notein_list(t_notein *x, t_symbol *s, int argc, t_atom *argv)
  {
!     float pitch = atom_getfloatarg(0, argc, argv);
!     float velo = atom_getfloatarg(1, argc, argv);
!     float channel = atom_getfloatarg(2, argc, argv);
      if (x->x_channel != 0)
      {
--- 136,142 ----
  static void notein_list(t_notein *x, t_symbol *s, int argc, t_atom *argv)
  {
!     t_float pitch = atom_getfloatarg(0, argc, argv);
!     t_float velo = atom_getfloatarg(1, argc, argv);
!     t_float channel = atom_getfloatarg(2, argc, argv);
      if (x->x_channel != 0)
      {
***************
*** 279,284 ****
  static void pgmin_list(t_pgmin *x, t_symbol *s, int argc, t_atom *argv)
  {
!     float value = atom_getfloatarg(0, argc, argv);
!     float channel = atom_getfloatarg(1, argc, argv);
      if (x->x_channel != 0)
      {
--- 279,284 ----
  static void pgmin_list(t_pgmin *x, t_symbol *s, int argc, t_atom *argv)
  {
!     t_float value = atom_getfloatarg(0, argc, argv);
!     t_float channel = atom_getfloatarg(1, argc, argv);
      if (x->x_channel != 0)
      {
***************
*** 547,552 ****
  static void midiclkin_list(t_midiclkin *x, t_symbol *s, int argc, t_atom *argv)
  {
!     float value = atom_getfloatarg(0, argc, argv);
!     float count = atom_getfloatarg(1, argc, argv);
      outlet_float(x->x_outlet2, count);
      outlet_float(x->x_outlet1, value);
--- 547,552 ----
  static void midiclkin_list(t_midiclkin *x, t_symbol *s, int argc, t_atom *argv)
  {
!     t_float value = atom_getfloatarg(0, argc, argv);
!     t_float count = atom_getfloatarg(1, argc, argv);
      outlet_float(x->x_outlet2, count);
      outlet_float(x->x_outlet1, value);
***************
*** 571,577 ****
  {
  
!     static float prev = 0;
!     static float count = 0;
!     float cur,diff;
  
      if (midiclkin_sym->s_thing)
--- 571,577 ----
  {
  
!     static t_float prev = 0;
!     static t_float count = 0;
!     t_float cur,diff;
  
      if (midiclkin_sym->s_thing)
***************
*** 622,627 ****
      int argc, t_atom *argv)
  {
!     float portno = atom_getfloatarg(0, argc, argv);
!     float byte = atom_getfloatarg(1, argc, argv);
  
      outlet_float(x->x_outlet2, portno);
--- 622,627 ----
      int argc, t_atom *argv)
  {
!     t_float portno = atom_getfloatarg(0, argc, argv);
!     t_float byte = atom_getfloatarg(1, argc, argv);
  
      outlet_float(x->x_outlet2, portno);
***************
*** 1069,1073 ****
  typedef struct voice
  {
!     float v_pitch;
      int v_used;
      unsigned long v_serial;
--- 1069,1073 ----
  typedef struct voice
  {
!     t_float v_pitch;
      int v_used;
      unsigned long v_serial;
***************
*** 1079,1083 ****
      int x_n;
      t_voice *x_vec;
!     float x_vel;
      t_outlet *x_pitchout;
      t_outlet *x_velout;
--- 1079,1083 ----
      int x_n;
      t_voice *x_vec;
!     t_float x_vel;
      t_outlet *x_pitchout;
      t_outlet *x_velout;
***************
*** 1086,1090 ****
  } t_poly;
  
! static void *poly_new(float fnvoice, float fsteal)
  {
      int i, n = fnvoice;
--- 1086,1090 ----
  } t_poly;
  
! static void *poly_new(t_float fnvoice, t_float fsteal)
  {
      int i, n = fnvoice;

Index: x_arithmetic.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_arithmetic.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** x_arithmetic.c	18 Aug 2007 23:32:44 -0000	1.5
--- x_arithmetic.c	28 Dec 2007 03:43:06 -0000	1.6
***************
*** 552,557 ****
  static void tan_float(t_object *x, t_float f)
  {
!     float c = cosf(f);
!     float t = (c == 0 ? 0 : sinf(f)/c);
      outlet_float(x->ob_outlet, t);
  }
--- 552,557 ----
  static void tan_float(t_object *x, t_float f)
  {
!     t_float c = cosf(f);
!     t_float t = (c == 0 ? 0 : sinf(f)/c);
      outlet_float(x->ob_outlet, t);
  }
***************
*** 576,580 ****
  {
      t_object x_ob;
!     float x_f;
  } t_atan2;
  
--- 576,580 ----
  {
      t_object x_ob;
!     t_float x_f;
  } t_atan2;
  
***************
*** 590,594 ****
  static void atan2_float(t_atan2 *x, t_float f)
  {
!     float r = (f == 0 && x->x_f == 0 ? 0 : atan2f(f, x->x_f));
      outlet_float(x->x_ob.ob_outlet, r);
  }
--- 590,594 ----
  static void atan2_float(t_atan2 *x, t_float f)
  {
!     t_float r = (f == 0 && x->x_f == 0 ? 0 : atan2f(f, x->x_f));
      outlet_float(x->x_ob.ob_outlet, r);
  }
***************
*** 605,609 ****
  static void sqrt_float(t_object *x, t_float f)
  {
!     float r = (f > 0 ? sqrtf(f) : 0);
      outlet_float(x->ob_outlet, r);
  }
--- 605,609 ----
  static void sqrt_float(t_object *x, t_float f)
  {
!     t_float r = (f > 0 ? sqrtf(f) : 0);
      outlet_float(x->ob_outlet, r);
  }
***************
*** 620,624 ****
  static void log_float(t_object *x, t_float f)
  {
!     float r = (f > 0 ? logf(f) : -1000);
      outlet_float(x->ob_outlet, r);
  }
--- 620,624 ----
  static void log_float(t_object *x, t_float f)
  {
!     t_float r = (f > 0 ? logf(f) : -1000);
      outlet_float(x->ob_outlet, r);
  }
***************
*** 637,641 ****
  static void exp_float(t_object *x, t_float f)
  {
!     float g;
  #ifdef MSW
      char buf[10];
--- 637,641 ----
  static void exp_float(t_object *x, t_float f)
  {
!     t_float g;
  #ifdef MSW
      char buf[10];
***************
*** 667,673 ****
  {
      t_object x_ob;
!     float x_f1;
!     float x_f2;
!     float x_f3;
  } t_clip;
  
--- 667,673 ----
  {
      t_object x_ob;
!     t_float x_f1;
!     t_float x_f2;
!     t_float x_f3;
  } t_clip;
  

Index: g_text.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_text.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -d -r1.15 -r1.16
*** g_text.c	4 Oct 2006 19:35:06 -0000	1.15
--- g_text.c	28 Dec 2007 03:43:04 -0000	1.16
***************
*** 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;
***************
*** 418,421 ****
--- 421,429 ----
      {
          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);
***************
*** 923,927 ****
      t_text *x = (t_text *)z;
      int width, height, iscomment = (x->te_type == T_TEXT);
!     float x1, y1, x2, y2;
  
          /* for number boxes, we know width and height a priori, and should
--- 931,935 ----
      t_text *x = (t_text *)z;
      int width, height, iscomment = (x->te_type == T_TEXT);
!     t_float x1, y1, x2, y2;
  
          /* for number boxes, we know width and height a priori, and should

Index: d_dac.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_dac.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** d_dac.c	6 Sep 2004 20:20:33 -0000	1.3
--- d_dac.c	28 Dec 2007 03:43:03 -0000	1.4
***************
*** 17,21 ****
      t_int x_n;
      t_int *x_vec;
!     float x_f;
  } t_dac;
  
--- 17,21 ----
      t_int x_n;
      t_int *x_vec;
!     t_float x_f;
  } t_dac;
  
***************
*** 104,109 ****
  t_int *copy_perform(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
      while (n--) *out++ = *in1++; 
--- 104,109 ----
  t_int *copy_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
      while (n--) *out++ = *in1++; 
***************
*** 113,130 ****
  t_int *copy_perf8(t_int *w)
  {
!     t_float *in1 = (t_float *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
      
      for (; n; n -= 8, in1 += 8, out += 8)
      {
!         float f0 = in1[0];
!         float f1 = in1[1];
!         float f2 = in1[2];
!         float f3 = in1[3];
!         float f4 = in1[4];
!         float f5 = in1[5];
!         float f6 = in1[6];
!         float f7 = in1[7];
  
          out[0] = f0;
--- 113,130 ----
  t_int *copy_perf8(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
      
      for (; n; n -= 8, in1 += 8, out += 8)
      {
!         t_sample f0 = in1[0];
!         t_sample f1 = in1[1];
!         t_sample f2 = in1[2];
!         t_sample f3 = in1[3];
!         t_sample f4 = in1[4];
!         t_sample f5 = in1[5];
!         t_sample f6 = in1[6];
!         t_sample f7 = in1[7];
  
          out[0] = f0;

Index: s_main.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_main.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -C2 -d -r1.31 -r1.32
*** s_main.c	18 Aug 2007 23:32:44 -0000	1.31
--- s_main.c	28 Dec 2007 03:43:06 -0000	1.32
***************
*** 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;
--- 59,69 ----
  int sys_midioutdevlist[MAXMIDIOUTDEV] = {1};
  
! char sys_font[100] = 
! #ifdef MSW
!     "Courier";
! #else
!     "Courier";
! #endif
! char sys_fontweight[] = "bold  "; /* currently only used for iemguis */
  static int sys_main_srate;
  static int sys_main_advance;
***************
*** 90,94 ****
  int* get_sys_schedblocksize() { return &sys_schedblocksize; }
  double* get_sys_time() { return &sys_time; }
! float* get_sys_dacsr() { return &sys_dacsr; }
  int* get_sys_sleepgrain() { return &sys_sleepgrain; }
  int* get_sys_schedadvance() { return &sys_schedadvance; }
--- 96,100 ----
  int* get_sys_schedblocksize() { return &sys_schedblocksize; }
  double* get_sys_time() { return &sys_time; }
! t_float* get_sys_dacsr() { return &sys_dacsr; }
  int* get_sys_sleepgrain() { return &sys_sleepgrain; }
  int* get_sys_schedadvance() { return &sys_schedadvance; }
***************
*** 160,168 ****
  
  int sys_defaultfont;
- #ifdef MSW
- #define DEFAULTFONT 12
- #else
  #define DEFAULTFONT 10
- #endif
  
  static void openit(const char *dirname, const char *filename)
--- 166,170 ----
***************
*** 384,389 ****
  "-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",
--- 386,392 ----
  "-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",
***************
*** 745,749 ****
              argc -= 2; argv += 2;
          }
!         else if (!strcmp(*argv, "-font") && argc > 1)
          {
              sys_defaultfont = sys_nearestfontsize(atoi(argv[1]));
--- 748,752 ----
              argc -= 2; argv += 2;
          }
!         else if ((!strcmp(*argv, "-font-size") || !strcmp(*argv, "-font")) && argc > 1)
          {
              sys_defaultfont = sys_nearestfontsize(atoi(argv[1]));
***************
*** 751,756 ****
              argv += 2;
          }
!                 /* tb: font name { */
!         else if (!strcmp(*argv, "-typeface") && argc > 1)
          {
              strncpy(sys_font,*(argv+1),sizeof(sys_font)-1);
--- 754,758 ----
              argv += 2;
          }
!         else if ((!strcmp(*argv, "-font-face") || !strcmp(*argv, "-typeface")) && argc > 1)
          {
              strncpy(sys_font,*(argv+1),sizeof(sys_font)-1);
***************
*** 759,763 ****
              argv += 2;
          }
!                 /* } tb */
          else if (!strcmp(*argv, "-verbose"))
          {
--- 761,771 ----
              argv += 2;
          }
!         else if (!strcmp(*argv, "-font-weight") && argc > 1)
!         {
!             strncpy(sys_fontweight,*(argv+1),sizeof(sys_fontweight)-1);
!             sys_fontweight[sizeof(sys_fontweight)-1] = 0;
!             argc -= 2;
!             argv += 2;
!         }
          else if (!strcmp(*argv, "-verbose"))
          {
***************
*** 815,819 ****
          {
              sys_externalschedlib = 1;
!             strcpy(sys_externalschedlibname, argv[1]);
              argv += 2;
              argc -= 2;
--- 823,828 ----
          {
              sys_externalschedlib = 1;
!             strncpy(sys_externalschedlibname, argv[1],
!                 sizeof(sys_externalschedlibname) - 1);
              argv += 2;
              argc -= 2;
***************
*** 822,826 ****
          {
              sys_extraflags = 1;
!             strcpy(sys_extraflagsstring, argv[1]);
              argv += 2;
              argc -= 2;
--- 831,836 ----
          {
              sys_extraflags = 1;
!             strncpy(sys_extraflagsstring, argv[1],
!                 sizeof(sys_extraflagsstring) - 1);
              argv += 2;
              argc -= 2;

Index: m_sched.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_sched.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** m_sched.c	28 Dec 2007 03:28:31 -0000	1.11
--- m_sched.c	28 Dec 2007 03:43:05 -0000	1.12
***************
*** 29,32 ****
--- 29,37 ----
  int sys_sleepgrain;
  
+ void sched_reopenmeplease(void)   /* request from s_audio for deferred reopen */
+ {
+     sys_quit = SYS_QUIT_RESTART;
+ }
+ 
  typedef void (*t_clockmethod)(void *client);
  
***************
*** 287,291 ****
      if (sched_meterson)
      {
!         float inmax, outmax;
          sys_getmeters(&inmax, &outmax);
          indb = 0.5 + rmstodb(inmax);
--- 292,296 ----
      if (sched_meterson)
      {
!         t_sample inmax, outmax;
          sys_getmeters(&inmax, &outmax);
          indb = 0.5 + rmstodb(inmax);
***************
*** 312,316 ****
  }
  
! void glob_meters(void *dummy, float f)
  {
      if (f == 0)
--- 317,321 ----
  }
  
! void glob_meters(void *dummy, t_float f)
  {
      if (f == 0)
***************
*** 343,350 ****
          sched_referencelogicaltime = clock_getlogicaltime();
      }
!         if (flag == SCHED_AUDIO_CALLBACK && sched_useaudio != SCHED_AUDIO_CALLBACK)
                  sys_quit = SYS_QUIT_RESTART;
!         if (flag != SCHED_AUDIO_CALLBACK && sched_useaudio == SCHED_AUDIO_CALLBACK)
!                 post("sorry, can't turn off callbacks yet; restart Pd");  /* not right yet! */
          
      sys_time_per_dsp_tick = (TIMEUNITPERSEC) *
--- 348,358 ----
          sched_referencelogicaltime = clock_getlogicaltime();
      }
!         if (flag == SCHED_AUDIO_CALLBACK &&
!             sched_useaudio != SCHED_AUDIO_CALLBACK)
                  sys_quit = SYS_QUIT_RESTART;
!         if (flag != SCHED_AUDIO_CALLBACK &&
!             sched_useaudio == SCHED_AUDIO_CALLBACK)
!                 post("sorry, can't turn off callbacks yet; restart Pd");
!                     /* not right yet! */
          
      sys_time_per_dsp_tick = (TIMEUNITPERSEC) *
***************
*** 530,534 ****
  {
      sys_initmidiqueue();
!     while (1)
      {
  #ifdef MSW
--- 538,542 ----
  {
      sys_initmidiqueue();
!     while (!sys_quit)
      {
  #ifdef MSW

Index: d_soundfile.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_soundfile.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** d_soundfile.c	20 Jul 2007 03:25:20 -0000	1.14
--- d_soundfile.c	28 Dec 2007 03:43:03 -0000	1.15
***************
*** 426,430 ****
  }
  
! static void soundfile_xferin(int sfchannels, int nvecs, float **vecs,
      long itemsread, unsigned char *buf, int nitems, int bytespersamp,
      int bigendian, int spread)
--- 426,430 ----
  }
  
! static void soundfile_xferin_sample(int sfchannels, int nvecs, t_sample **vecs,
      long itemsread, unsigned char *buf, int nitems, int bytespersamp,
      int bigendian, int spread)
***************
*** 432,436 ****
      int i, j;
      unsigned char *sp, *sp2;
!     float *fp;
      int nchannels = (sfchannels < nvecs ? sfchannels : nvecs);
      int bytesperframe = bytespersamp * sfchannels;
--- 432,504 ----
      int i, j;
      unsigned char *sp, *sp2;
!     t_sample *fp;
!     int nchannels = (sfchannels < nvecs ? sfchannels : nvecs);
!     int bytesperframe = bytespersamp * sfchannels;
!     for (i = 0, sp = buf; i < nchannels; i++, sp += bytespersamp)
!     {
!         if (bytespersamp == 2)
!         {
!             if (bigendian)
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                         *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16));
!             }
!             else
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                         *fp = SCALE * ((sp2[1] << 24) | (sp2[0] << 16));
!             }
!         }
!         else if (bytespersamp == 3)
!         {
!             if (bigendian)
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                         *fp = SCALE * ((sp2[0] << 24) | (sp2[1] << 16)
!                             | (sp2[2] << 8));
!             }
!             else
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                         *fp = SCALE * ((sp2[2] << 24) | (sp2[1] << 16)
!                             | (sp2[0] << 8));
!             }
!         }
!         else if (bytespersamp == 4)
!         {
!             if (bigendian)
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                         *(long *)fp = ((sp2[0] << 24) | (sp2[1] << 16)
!                             | (sp2[2] << 8) | sp2[3]);
!             }
!             else
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + spread * itemsread;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                         *(long *)fp = ((sp2[3] << 24) | (sp2[2] << 16)
!                             | (sp2[1] << 8) | sp2[0]);
!             }
!         }
!     }
!         /* zero out other outputs */
!     for (i = sfchannels; i < nvecs; i++)
!         for (j = nitems, fp = vecs[i]; j--; )
!             *fp++ = 0;
! 
! }
! 
! static void soundfile_xferin_float(int sfchannels, int nvecs, t_float **vecs,
!     long itemsread, unsigned char *buf, int nitems, int bytespersamp,
!     int bigendian, int spread)
! {
!     int i, j;
!     unsigned char *sp, *sp2;
!     t_float *fp;
      int nchannels = (sfchannels < nvecs ? sfchannels : nvecs);
      int bytesperframe = bytespersamp * sfchannels;
***************
*** 519,523 ****
      t_symbol **p_filesym,
      int *p_filetype, int *p_bytespersamp, int *p_swap, int *p_bigendian,
!     int *p_normalize, long *p_onset, long *p_nframes, float *p_rate)
  {
      int argc = *p_argc;
--- 587,591 ----
      t_symbol **p_filesym,
      int *p_filetype, int *p_bytespersamp, int *p_swap, int *p_bigendian,
!     int *p_normalize, long *p_onset, long *p_nframes, t_float *p_rate)
  {
      int argc = *p_argc;
***************
*** 527,531 ****
      long onset = 0, nframes = 0x7fffffff;
      t_symbol *filesym;
!     float rate = -1;
      
      while (argc > 0 && argv->a_type == A_SYMBOL &&
--- 595,599 ----
      long onset = 0, nframes = 0x7fffffff;
      t_symbol *filesym;
!     t_float rate = -1;
      
      while (argc > 0 && argv->a_type == A_SYMBOL &&
***************
*** 669,673 ****
  static int create_soundfile(t_canvas *canvas, const char *filename,
      int filetype, int nframes, int bytespersamp,
!     int bigendian, int nchannels, int swap, float samplerate)
  {
      char filenamebuf[MAXPDSTRING], buf2[MAXPDSTRING];
--- 737,741 ----
  static int create_soundfile(t_canvas *canvas, const char *filename,
      int filetype, int nframes, int bytespersamp,
!     int bigendian, int nchannels, int swap, t_float samplerate)
  {
      char filenamebuf[MAXPDSTRING], buf2[MAXPDSTRING];
***************
*** 828,838 ****
  }
  
! static void soundfile_xferout(int nchannels, float **vecs,
      unsigned char *buf, int nitems, long onset, int bytespersamp,
!     int bigendian, float normalfactor, int spread)
  {
      int i, j;
      unsigned char *sp, *sp2;
!     float *fp;
      int bytesperframe = bytespersamp * nchannels;
      long xx;
--- 896,906 ----
  }
  
! static void soundfile_xferout_sample(int nchannels, t_sample **vecs,
      unsigned char *buf, int nitems, long onset, int bytespersamp,
!     int bigendian, t_sample normalfactor, int spread)
  {
      int i, j;
      unsigned char *sp, *sp2;
!     t_sample *fp;
      int bytesperframe = bytespersamp * nchannels;
      long xx;
***************
*** 841,845 ****
          if (bytespersamp == 2)
          {
!             float ff = normalfactor * 32768.;
              if (bigendian)
              {
--- 909,913 ----
          if (bytespersamp == 2)
          {
!             t_sample ff = normalfactor * 32768.;
              if (bigendian)
              {
***************
*** 875,879 ****
          else if (bytespersamp == 3)
          {
!             float ff = normalfactor * 8388608.;
              if (bigendian)
              {
--- 943,947 ----
          else if (bytespersamp == 3)
          {
!             t_sample ff = normalfactor * 8388608.;
              if (bigendian)
              {
***************
*** 916,920 ****
                      j < nitems; j++, sp2 += bytesperframe, fp += spread)
                  {
!                     float f2 = *fp * normalfactor;
                      xx = *(long *)&f2;
                      sp2[0] = (xx >> 24); sp2[1] = (xx >> 16);
--- 984,988 ----
                      j < nitems; j++, sp2 += bytesperframe, fp += spread)
                  {
!                     t_sample f2 = *fp * normalfactor;
                      xx = *(long *)&f2;
                      sp2[0] = (xx >> 24); sp2[1] = (xx >> 16);
***************
*** 927,931 ****
                      j < nitems; j++, sp2 += bytesperframe, fp += spread)
                  {
!                     float f2 = *fp * normalfactor;
                      xx = *(long *)&f2;
                      sp2[3] = (xx >> 24); sp2[2] = (xx >> 16);
--- 995,1107 ----
                      j < nitems; j++, sp2 += bytesperframe, fp += spread)
                  {
!                     t_sample f2 = *fp * normalfactor;
!                     xx = *(long *)&f2;
!                     sp2[3] = (xx >> 24); sp2[2] = (xx >> 16);
!                     sp2[1] = (xx >> 8); sp2[0] = xx;
!                 }
!             }
!         }
!     }
! }
! static void soundfile_xferout_float(int nchannels, t_float **vecs,
!     unsigned char *buf, int nitems, long onset, int bytespersamp,
!     int bigendian, t_sample normalfactor, int spread)
! {
!     int i, j;
!     unsigned char *sp, *sp2;
!     t_float *fp;
!     int bytesperframe = bytespersamp * nchannels;
!     long xx;
!     for (i = 0, sp = buf; i < nchannels; i++, sp += bytespersamp)
!     {
!         if (bytespersamp == 2)
!         {
!             t_sample ff = normalfactor * 32768.;
!             if (bigendian)
!             {
!                 for (j = 0, sp2 = sp, fp = vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                 {
!                     int xx = 32768. + (*fp * ff);
!                     xx -= 32768;
!                     if (xx < -32767)
!                         xx = -32767;
!                     if (xx > 32767)
!                         xx = 32767;
!                     sp2[0] = (xx >> 8);
!                     sp2[1] = xx;
!                 }
!             }
!             else
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                 {
!                     int xx = 32768. + (*fp * ff);
!                     xx -= 32768;
!                     if (xx < -32767)
!                         xx = -32767;
!                     if (xx > 32767)
!                         xx = 32767;
!                     sp2[1] = (xx >> 8);
!                     sp2[0] = xx;
!                 }
!             }
!         }
!         else if (bytespersamp == 3)
!         {
!             t_sample ff = normalfactor * 8388608.;
!             if (bigendian)
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                 {
!                     int xx = 8388608. + (*fp * ff);
!                     xx -= 8388608;
!                     if (xx < -8388607)
!                         xx = -8388607;
!                     if (xx > 8388607)
!                         xx = 8388607;
!                     sp2[0] = (xx >> 16);
!                     sp2[1] = (xx >> 8);
!                     sp2[2] = xx;
!                 }
!             }
!             else
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                 {
!                     int xx = 8388608. + (*fp * ff);
!                     xx -= 8388608;
!                     if (xx < -8388607)
!                         xx = -8388607;
!                     if (xx > 8388607)
!                         xx = 8388607;
!                     sp2[2] = (xx >> 16);
!                     sp2[1] = (xx >> 8);
!                     sp2[0] = xx;
!                 }
!             }
!         }
!         else if (bytespersamp == 4)
!         {
!             if (bigendian)
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                 {
!                     t_sample f2 = *fp * normalfactor;
!                     xx = *(long *)&f2;
!                     sp2[0] = (xx >> 24); sp2[1] = (xx >> 16);
!                     sp2[2] = (xx >> 8); sp2[3] = xx;
!                 }
!             }
!             else
!             {
!                 for (j = 0, sp2 = sp, fp=vecs[i] + onset;
!                     j < nitems; j++, sp2 += bytesperframe, fp += spread)
!                 {
!                     t_sample f2 = *fp * normalfactor;
                      xx = *(long *)&f2;
                      sp2[3] = (xx >> 24); sp2[2] = (xx >> 16);
***************
*** 936,940 ****
      }
  }
- 
  
  /* ------- soundfiler - reads and writes soundfiles to/from "garrays" ---- */
--- 1112,1115 ----
***************
*** 1122,1128 ****
          nitems = fread(sampbuf, channels * bytespersamp, thisread, fp);
          if (nitems <= 0) break;
!         soundfile_xferin(channels, argc, (float **)vecs, itemsread,
              (unsigned char *)sampbuf, nitems, bytespersamp, bigendian,
!                 sizeof(t_word)/sizeof(float));
          itemsread += nitems;
      }
--- 1297,1303 ----
          nitems = fread(sampbuf, channels * bytespersamp, thisread, fp);
          if (nitems <= 0) break;
!         soundfile_xferin_float(channels, argc, (t_float **)vecs, itemsread,
              (unsigned char *)sampbuf, nitems, bytespersamp, bigendian,
!                 sizeof(t_word)/sizeof(t_sample));
          itemsread += nitems;
      }
***************
*** 1158,1162 ****
      if (fd >= 0)
          close (fd);
!     outlet_float(x->x_obj.ob_outlet, (float)itemsread); 
  }
  
--- 1333,1337 ----
      if (fd >= 0)
          close (fd);
!     outlet_float(x->x_obj.ob_outlet, (t_float)itemsread); 
  }
  
***************
*** 1176,1180 ****
      int bufframes, nitems;
      int fd = -1;
!     float normfactor, biggest = 0, samplerate;
      t_symbol *filesym;
  
--- 1351,1356 ----
      int bufframes, nitems;
      int fd = -1;
!     t_sample normfactor, biggest = 0;
!     t_float samplerate;
      t_symbol *filesym;
  
***************
*** 1245,1251 ****
          int thiswrite = nframes - itemswritten, nitems, nbytes;
          thiswrite = (thiswrite > bufframes ? bufframes : thiswrite);
!         soundfile_xferout(argc, (t_float **)vecs, (unsigned char *)sampbuf,
              thiswrite, onset, bytespersamp, bigendian, normfactor,
!                  sizeof(t_word)/sizeof(float));
          nbytes = write(fd, sampbuf, nchannels * bytespersamp * thiswrite);
          if (nbytes < nchannels * bytespersamp * thiswrite)
--- 1421,1427 ----
          int thiswrite = nframes - itemswritten, nitems, nbytes;
          thiswrite = (thiswrite > bufframes ? bufframes : thiswrite);
!         soundfile_xferout_float(argc, (t_float **)vecs, (unsigned char *)sampbuf,
              thiswrite, onset, bytespersamp, bigendian, normfactor,
!                  sizeof(t_word)/sizeof(t_sample));
          nbytes = write(fd, sampbuf, nchannels * bytespersamp * thiswrite);
          if (nbytes < nchannels * bytespersamp * thiswrite)
***************
*** 1257,1261 ****
          }
          itemswritten += thiswrite;
!         onset += thiswrite;
      }
      if (fd >= 0)
--- 1433,1437 ----
          }
          itemswritten += thiswrite;
!         onset += thiswrite * (sizeof(t_word)/sizeof(float));
      }
      if (fd >= 0)
***************
*** 1282,1286 ****
      long bozo = soundfiler_dowrite(x, x->x_canvas,
          argc, argv);
!     outlet_float(x->x_obj.ob_outlet, (float)bozo); 
  }
  
--- 1458,1462 ----
      long bozo = soundfiler_dowrite(x, x->x_canvas,
          argc, argv);
!     outlet_float(x->x_obj.ob_outlet, (t_float)bozo); 
  }
  
***************
*** 1344,1348 ****
      t_outlet *x_bangout;                    /* bang-on-done outlet */
      int x_state;                            /* opened, running, or idle */
!     float x_insamplerate;   /* sample rate of input signal if known */
          /* parameters to communicate with subthread */
      int x_requestcode;      /* pending request from parent to I/O thread */
--- 1520,1524 ----
      t_outlet *x_bangout;                    /* bang-on-done outlet */
      int x_state;                            /* opened, running, or idle */
!     t_float x_insamplerate;   /* sample rate of input signal if known */
          /* parameters to communicate with subthread */
      int x_requestcode;      /* pending request from parent to I/O thread */
***************
*** 1353,1357 ****
      int x_bigendian;        /* true if file is big-endian */
      int x_sfchannels;       /* number of channels in soundfile */
!     float x_samplerate;     /* sample rate of soundfile */
      long x_onsetframes;     /* number of sample frames to skip */
      long x_bytelimit;       /* max number of data bytes to read */
--- 1529,1533 ----
      int x_bigendian;        /* true if file is big-endian */
      int x_sfchannels;       /* number of channels in soundfile */
!     t_float x_samplerate;     /* sample rate of soundfile */
      long x_onsetframes;     /* number of sample frames to skip */
      long x_bytelimit;       /* max number of data bytes to read */
***************
*** 1366,1370 ****
      int x_itemswritten;     /* writesf~ only; items writen */
      int x_swap;             /* writesf~ only; true if byte swapping */
!     float x_f;              /* writesf~ only; scalar for signal inlet */
      pthread_mutex_t x_mutex;
      pthread_cond_t x_requestcondition;
--- 1542,1546 ----
      int x_itemswritten;     /* writesf~ only; items writen */
      int x_swap;             /* writesf~ only; true if byte swapping */
!     t_float x_f;              /* writesf~ only; scalar for signal inlet */
      pthread_mutex_t x_mutex;
      pthread_cond_t x_requestcondition;
***************
*** 1745,1749 ****
          bytespersample = x->x_bytespersample,
          bigendian = x->x_bigendian;
!     float *fp;
      if (x->x_state == STATE_STREAM)
      {
--- 1921,1925 ----
          bytespersample = x->x_bytespersample,
          bigendian = x->x_bigendian;
!     t_sample *fp;
      if (x->x_state == STATE_STREAM)
      {
***************
*** 1789,1793 ****
              if (xfersize)
              {
!                 soundfile_xferin(sfchannels, noutlets, x->x_outvec, 0,
                      (unsigned char *)(x->x_buf + x->x_fifotail), xfersize,
                          bytespersample, bigendian, 1);
--- 1965,1969 ----
              if (xfersize)
              {
!                 soundfile_xferin_sample(sfchannels, noutlets, x->x_outvec, 0,
                      (unsigned char *)(x->x_buf + x->x_fifotail), xfersize,
                          bytespersample, bigendian, 1);
***************
*** 1804,1808 ****
          }
  
!         soundfile_xferin(sfchannels, noutlets, x->x_outvec, 0,
              (unsigned char *)(x->x_buf + x->x_fifotail), vecsize,
                  bytespersample, bigendian, 1);
--- 1980,1984 ----
          }
  
!         soundfile_xferin_sample(sfchannels, noutlets, x->x_outvec, 0,
              (unsigned char *)(x->x_buf + x->x_fifotail), vecsize,
                  bytespersample, bigendian, 1);
***************
*** 2000,2004 ****
              char *filename = x->x_filename;
              t_canvas *canvas = x->x_canvas;
!             float samplerate = x->x_samplerate;
  
                  /* alter the request code so that an ensuing "open" will get
--- 2176,2180 ----
              char *filename = x->x_filename;
              t_canvas *canvas = x->x_canvas;
!             t_float samplerate = x->x_samplerate;
  
                  /* alter the request code so that an ensuing "open" will get
***************
*** 2245,2249 ****
          bytespersample = x->x_bytespersample,
          bigendian = x->x_bigendian;
!     float *fp;
      if (x->x_state == STATE_STREAM)
      {
--- 2421,2425 ----
          bytespersample = x->x_bytespersample,
          bigendian = x->x_bigendian;
!     t_sample *fp;
      if (x->x_state == STATE_STREAM)
      {
***************
*** 2264,2268 ****
          }
  
!         soundfile_xferout(sfchannels, x->x_outvec,
              (unsigned char *)(x->x_buf + x->x_fifohead), vecsize, 0,
                  bytespersample, bigendian, 1., 1);
--- 2440,2444 ----
          }
  
!         soundfile_xferout_sample(sfchannels, x->x_outvec,
              (unsigned char *)(x->x_buf + x->x_fifohead), vecsize, 0,
                  bytespersample, bigendian, 1., 1);
***************
*** 2317,2321 ****
      int filetype, bytespersamp, swap, bigendian, normalize;
      long onset, nframes;
!     float samplerate;
      if (x->x_state != STATE_IDLE)
      {
--- 2493,2497 ----
      int filetype, bytespersamp, swap, bigendian, normalize;
      long onset, nframes;
!     t_float samplerate;
      if (x->x_state != STATE_IDLE)
      {

Index: m_binbuf.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_binbuf.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** m_binbuf.c	20 Jul 2007 03:25:20 -0000	1.14
--- m_binbuf.c	28 Dec 2007 03:43:04 -0000	1.15
***************
*** 388,394 ****
  }
  
- 
- #define MSTACKSIZE 10000 /* FIXME -- make this grow as needed */
- 
  void binbuf_print(t_binbuf *x)
  {
--- 388,391 ----
***************
*** 532,542 ****
  }
  
  void binbuf_eval(t_binbuf *x, t_pd *target, int argc, t_atom *argv)
  {
!     static t_atom mstack[MSTACKSIZE], *msp = mstack, *ems = mstack+MSTACKSIZE;
!     t_atom *stackwas = msp;
      t_atom *at = x->b_vec;
      int ac = x->b_n;
!     int nargs;
      while (1)
      {
--- 529,596 ----
  }
  
+ #define SMALLMSG 5
+ #define HUGEMSG 1000
+ #ifdef MSW
+ #include <malloc.h>
+ #else
+ #include <alloca.h>
+ #endif
+ #if HAVE_ALLOCA
+ #define ATOMS_ALLOCA(x, n) ((x) = (t_atom *)((n) < HUGEMSG ?  \
+         alloca((n) * sizeof(t_atom)) : getbytes((n) * sizeof(t_atom))))
+ #define ATOMS_FREEA(x, n) ( \
+     ((n) < HUGEMSG || (freebytes((x), (n) * sizeof(t_atom)), 0)))
+ #else
+ #define ATOMS_ALLOCA(x, n) ((x) = (t_atom *)getbytes((n) * sizeof(t_atom)))
+ #define ATOMS_FREEA(x, n) (freebytes((x), (n) * sizeof(t_atom)))
+ #endif
+ 
  void binbuf_eval(t_binbuf *x, t_pd *target, int argc, t_atom *argv)
  {
!     t_atom smallstack[SMALLMSG], *mstack, *msp;
      t_atom *at = x->b_vec;
      int ac = x->b_n;
!     int nargs, maxnargs = 0;
!     if (ac <= SMALLMSG)
!         mstack = smallstack;
!     else
!     {
! #if 1
!             /* count number of args in biggest message.  The wierd
!             treatment of "pd_objectmaker" is because when the message
!             goes out to objectmaker, commas and semis are passed
!             on as regular args (see below).  We're tacitly assuming here
!             that the pd_objectmaker target can't come up via a named
!             destination in the message, only because the original "target"
!             points there. */
!         if (target == &pd_objectmaker)
!             maxnargs = ac;
!         else
!         {
!             int i, j = (target ? 0 : -1);
!             for (i = 0; i < ac; i++)
!             {
!                 if (at[i].a_type == A_SEMI)
!                     j = -1;
!                 else if (at[i].a_type == A_COMMA)
!                     j = 0;
!                 else if (++j > maxnargs)
!                     maxnargs = j;
!             }
!         }
!         if (maxnargs <= SMALLMSG)
!             mstack = smallstack;
!         else ATOMS_ALLOCA(mstack, maxnargs);
! #else
!             /* just pessimistically allocate enough to hold everything
!             at once.  This turned out to run slower in a simple benchmark
!             I tried, perhaps because the extra memory allocation
!             hurt the cache hit rate. */
!         maxnargs = ac;
!         ATOMS_ALLOCA(mstack, maxnargs);
! #endif
! 
!     }
!     msp = mstack;
      while (1)
      {
***************
*** 598,606 ****
              t_symbol *s9;
              if (!ac) goto gotmess;
-             if (msp >= ems)
-             {
-                 error("message stack overflow");
-                 goto broken;
-             }
              switch (at->a_type)
              {
--- 652,655 ----
***************
*** 668,683 ****
          if (nargs)
          {
!             switch (stackwas->a_type)
              {
              case A_SYMBOL:
!                 typedmess(target, stackwas->a_w.w_symbol, nargs-1, stackwas+1);
                  break;
              case A_FLOAT:
!                 if (nargs == 1) pd_float(target, stackwas->a_w.w_float);
!                 else pd_list(target, 0, nargs, stackwas);
                  break;
              }
          }
!         msp = stackwas;
          if (!ac) break;
          target = nexttarget;
--- 717,732 ----
          if (nargs)
          {
!             switch (mstack->a_type)
              {
              case A_SYMBOL:
!                 typedmess(target, mstack->a_w.w_symbol, nargs-1, mstack+1);
                  break;
              case A_FLOAT:
!                 if (nargs == 1) pd_float(target, mstack->a_w.w_float);
!                 else pd_list(target, 0, nargs, mstack);
                  break;
              }
          }
!         msp = mstack;
          if (!ac) break;
          target = nexttarget;
***************
*** 685,692 ****
          ac--;
      }
! 
!     return;
! broken:
!     msp = stackwas;
  }
  
--- 734,740 ----
          ac--;
      }
! broken: 
!     if (maxnargs > SMALLMSG)
!          ATOMS_FREEA(mstack, maxnargs);
  }
  
***************
*** 960,964 ****
                              atom_getfloatarg(5, natom, nextmess) -
                                  atom_getfloatarg(3, natom, nextmess),
!                             (float)sys_defaultfont);
                  }
              }
--- 1008,1012 ----
                              atom_getfloatarg(5, natom, nextmess) -
                                  atom_getfloatarg(3, natom, nextmess),
!                             (t_float)sys_defaultfont);
                  }
              }
***************
*** 1043,1047 ****
                  else if (!strcmp(second, "slider"))
                  {
!                     float inc = atom_getfloatarg(7, natom, nextmess);
                      if (inc <= 0)
                          inc = 1;
--- 1091,1095 ----
                  else if (!strcmp(second, "slider"))
                  {
!                     t_float inc = atom_getfloatarg(7, natom, nextmess);
                      if (inc <= 0)
                          inc = 1;

Index: d_fft_fftsg.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_fft_fftsg.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** d_fft_fftsg.c	29 Jul 2007 20:17:07 -0000	1.2
--- d_fft_fftsg.c	28 Dec 2007 03:43:03 -0000	1.3
***************
*** 72,85 ****
  }
  
! EXTERN void mayer_fht(float *fz, int n)
  {
      post("FHT: not yet implemented");
  }
  
! EXTERN void mayer_dofft(float *fz1, float *fz2, int n, int sgn)
  {
      FFTFLT *buf, *fp3;
      int i;
!     float *fp1, *fp2;
      buf = alloca(n * (2 * sizeof(FFTFLT)));
      if (!ooura_init(n))
--- 72,85 ----
  }
  
! EXTERN void mayer_fht(t_sample *fz, int n)
  {
      post("FHT: not yet implemented");
  }
  
! EXTERN void mayer_dofft(t_sample *fz1, t_sample *fz2, int n, int sgn)
  {
      FFTFLT *buf, *fp3;
      int i;
!     t_sample *fp1, *fp2;
      buf = alloca(n * (2 * sizeof(FFTFLT)));
      if (!ooura_init(n))
***************
*** 100,118 ****
  }
  
! EXTERN void mayer_fft(int n, float *fz1, float *fz2)
  {
      mayer_dofft(fz1, fz2, n, -1);
  }
  
! EXTERN void mayer_ifft(int n, float *fz1, float *fz2)
  {
      mayer_dofft(fz1, fz2, n, 1);
  }
  
! EXTERN void mayer_realfft(int n, float *fz)
  {
      FFTFLT *buf, *fp3;
      int i, nover2 = n/2;
!     float *fp1, *fp2;
      buf = alloca(n * sizeof(FFTFLT));
      if (!ooura_init(n))
--- 100,118 ----
  }
  
! EXTERN void mayer_fft(int n, t_sample *fz1, t_sample *fz2)
  {
      mayer_dofft(fz1, fz2, n, -1);
  }
  
! EXTERN void mayer_ifft(int n, t_sample *fz1, t_sample *fz2)
  {
      mayer_dofft(fz1, fz2, n, 1);
  }
  
! EXTERN void mayer_realfft(int n, t_sample *fz)
  {
      FFTFLT *buf, *fp3;
      int i, nover2 = n/2;
!     t_sample *fp1, *fp2;
      buf = alloca(n * sizeof(FFTFLT));
      if (!ooura_init(n))
***************
*** 128,136 ****
  }
  
! EXTERN void mayer_realifft(int n, float *fz)
  {
      FFTFLT *buf, *fp3;
      int i, nover2 = n/2;
!     float *fp1, *fp2;
      buf = alloca(n * sizeof(FFTFLT));
      if (!ooura_init(n))
--- 128,136 ----
  }
  
! EXTERN void mayer_realifft(int n, t_sample *fz)
  {
      FFTFLT *buf, *fp3;
      int i, nover2 = n/2;
!     t_sample *fp1, *fp2;
      buf = alloca(n * sizeof(FFTFLT));
      if (!ooura_init(n))

Index: s_audio_jack.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_jack.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** s_audio_jack.c	2 Aug 2007 00:33:50 -0000	1.8
--- s_audio_jack.c	28 Dec 2007 03:43:05 -0000	1.9
***************
*** 19,24 ****
  #define JACK_OUT_MAX  64
  static jack_nframes_t jack_filled = 0;
! static float jack_outbuf[NUM_JACK_PORTS*BUF_JACK];
! static float jack_inbuf[NUM_JACK_PORTS*BUF_JACK];
  static int jack_started = 0;
  
--- 19,24 ----
  #define JACK_OUT_MAX  64
  static jack_nframes_t jack_filled = 0;
! static t_sample jack_outbuf[NUM_JACK_PORTS*BUF_JACK];
! static t_sample jack_inbuf[NUM_JACK_PORTS*BUF_JACK];
  static int jack_started = 0;
  
***************
*** 40,46 ****
  {
          int j;
!         float *out; 
!         float *in;
!         
          
          if (nframes > JACK_OUT_MAX) jack_out_max = nframes;
--- 40,44 ----
  {
          int j;
!         jack_default_audio_sample_t *out, *in;
          
          if (nframes > JACK_OUT_MAX) jack_out_max = nframes;
***************
*** 48,59 ****
          if (jack_filled >= nframes) {
                  if (jack_filled != nframes) fprintf(stderr,"Partial read");
! 
!                 for (j = 0; j < sys_outchannels;  j++) {
                          out = jack_port_get_buffer (output_port[j], nframes);
!                         memcpy(out, jack_outbuf + (j * BUF_JACK), sizeof (float) * nframes);
!                 }
!                 for (j = 0; j < sys_inchannels; j++) {
                          in = jack_port_get_buffer( input_port[j], nframes);
!                         memcpy(jack_inbuf + (j * BUF_JACK), in, sizeof (float) * nframes);
                  }
                  jack_filled -= nframes;
--- 46,79 ----
          if (jack_filled >= nframes) {
                  if (jack_filled != nframes) fprintf(stderr,"Partial read");
!                 /* hmm, how to find out whether 't_sample' and 'jack_default_audio_sample_t' are actually the same type??? */
!                 if(sizeof(t_sample)==sizeof(jack_default_audio_sample_t)) 
!                 {
!                   for (j = 0; j < sys_outchannels;  j++) {
                          out = jack_port_get_buffer (output_port[j], nframes);
!                         memcpy(out, jack_outbuf + (j * BUF_JACK), sizeof (jack_default_audio_sample_t) * nframes);
!                   }
!                   for (j = 0; j < sys_inchannels; j++) {
                          in = jack_port_get_buffer( input_port[j], nframes);
!                         memcpy(jack_inbuf + (j * BUF_JACK), in, sizeof (jack_default_audio_sample_t) * nframes);
!                   }
!                 } 
!                 else
!                 {
!                   unsigned int frame=0;
!                   t_sample*data;
!                   for (j = 0; j < sys_outchannels;  j++) {
!                         out = jack_port_get_buffer (output_port[j], nframes);
!                         data=jack_outbuf + (j * BUF_JACK);
!                         for(frame=0; frame<nframes; frame++) {
!                           *out++=*data++;
!                         }
!                   }
!                   for (j = 0; j < sys_inchannels; j++) {
!                         in = jack_port_get_buffer( input_port[j], nframes);
!                         data=jack_inbuf+(j*BUF_JACK);
!                         for(frame=0; frame<nframes; frame++) {
!                           *data++=*in++;
!                         }
!                   }
                  }
                  jack_filled -= nframes;
***************
*** 323,327 ****
  
  {
!         float * fp;
          int j;
          int rtnval =  SENDDACS_YES;
--- 343,347 ----
  
  {
!         t_sample * fp;
          int j;
          int rtnval =  SENDDACS_YES;
***************
*** 344,353 ****
          fp = sys_soundout;
          for (j = 0; j < sys_outchannels; j++) {
!                 memcpy(jack_outbuf + (j * BUF_JACK) + jack_filled,fp, DEFDACBLKSIZE*sizeof(float));
                  fp += DEFDACBLKSIZE;  
          }
          fp = sys_soundin;
          for (j = 0; j < sys_inchannels; j++) {
!                 memcpy(fp, jack_inbuf + (j * BUF_JACK) + jack_filled, DEFDACBLKSIZE*sizeof(float));
                  fp += DEFDACBLKSIZE;
          }
--- 364,373 ----
          fp = sys_soundout;
          for (j = 0; j < sys_outchannels; j++) {
!                 memcpy(jack_outbuf + (j * BUF_JACK) + jack_filled,fp, DEFDACBLKSIZE*sizeof(t_sample));
                  fp += DEFDACBLKSIZE;  
          }
          fp = sys_soundin;
          for (j = 0; j < sys_inchannels; j++) {
!                 memcpy(fp, jack_inbuf + (j * BUF_JACK) + jack_filled, DEFDACBLKSIZE*sizeof(t_sample));
                  fp += DEFDACBLKSIZE;
          }
***************
*** 358,362 ****
            }
  
!         memset(sys_soundout,0,DEFDACBLKSIZE*sizeof(float)*sys_outchannels);
          jack_filled += DEFDACBLKSIZE;
          return rtnval;
--- 378,382 ----
            }
  
!         memset(sys_soundout,0,DEFDACBLKSIZE*sizeof(t_sample)*sys_outchannels);
          jack_filled += DEFDACBLKSIZE;
          return rtnval;

Index: m_obj.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_obj.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** m_obj.c	20 Jan 2007 04:06:06 -0000	1.5
--- m_obj.c	28 Dec 2007 03:43:05 -0000	1.6
***************
*** 16,20 ****
      t_float *iu_floatslot;
      t_symbol **iu_symslot;
!     t_sample iu_floatsignalvalue;
  };
  
--- 16,20 ----
      t_float *iu_floatslot;
      t_symbol **iu_symslot;
!     t_float iu_floatsignalvalue;
  };
  
***************
*** 661,665 ****
  }
  
! t_sample *obj_findsignalscalar(t_object *x, int m)
  {
      int n = 0;
--- 661,665 ----
  }
  
! t_float *obj_findsignalscalar(t_object *x, int m)
  {
      int n = 0;
***************
*** 669,673 ****
          if (!m--)
              return (x->ob_pd->c_floatsignalin > 0 ?
!                 (t_sample *)(((char *)x) + x->ob_pd->c_floatsignalin) : 0);
          n++;
      }
--- 669,673 ----
          if (!m--)
              return (x->ob_pd->c_floatsignalin > 0 ?
!                 (t_float *)(((char *)x) + x->ob_pd->c_floatsignalin) : 0);
          n++;
      }

Index: g_template.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_template.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** g_template.c	20 Jul 2007 03:25:20 -0000	1.19
--- g_template.c	28 Dec 2007 03:43:04 -0000	1.20
***************
*** 148,152 ****
      int onset, type;
      t_symbol *arraytype;
!     float val = 0;
      if (template_find_field(x, fieldname, &onset, &type, &arraytype))
      {
--- 148,152 ----
      int onset, type;
      t_symbol *arraytype;
!     t_float val = 0;
      if (template_find_field(x, fieldname, &onset, &type, &arraytype))
      {
***************
*** 722,733 ****
          t_symbol *fd_varsym;    /* the field is variable and this is the name */
      } fd_un;
!     float fd_v1;        /* min and max values */
!     float fd_v2;
!     float fd_screen1;   /* min and max screen values */
!     float fd_screen2;
!     float fd_quantum;   /* quantization in value */ 
  };
  
! static void fielddesc_setfloat_const(t_fielddesc *fd, float f)
  {
      fd->fd_type = A_FLOAT;
--- 722,733 ----
          t_symbol *fd_varsym;    /* the field is variable and this is the name */
      } fd_un;
!     t_float fd_v1;        /* min and max values */
!     t_float fd_v2;
!     t_float fd_screen1;   /* min and max screen values */
!     t_float fd_screen2;
!     t_float fd_quantum;   /* quantization in value */ 
  };
  
! static void fielddesc_setfloat_const(t_fielddesc *fd, t_float f)
  {
      fd->fd_type = A_FLOAT;
***************
*** 852,858 ****
  
      /* convert a variable's value to a screen coordinate via its fielddesc */
! t_float fielddesc_cvttocoord(t_fielddesc *f, float val)
  {
!     float coord, pix, extreme, div;
      if (f->fd_v2 == f->fd_v1)
          return (val);
--- 852,858 ----
  
      /* convert a variable's value to a screen coordinate via its fielddesc */
! t_float fielddesc_cvttocoord(t_fielddesc *f, t_float val)
  {
!     t_float coord, pix, extreme, div;
      if (f->fd_v2 == f->fd_v1)
          return (val);
***************
*** 878,882 ****
          if (f->fd_var)
          {
!             float val = template_getfloat(template,
                  f->fd_un.fd_varsym, wp, loud);
              return (fielddesc_cvttocoord(f, val));
--- 878,882 ----
          if (f->fd_var)
          {
!             t_float val = template_getfloat(template,
                  f->fd_un.fd_varsym, wp, loud);
              return (fielddesc_cvttocoord(f, val));
***************
*** 910,922 ****
  
      /* convert from a screen coordinate to a variable value */
! float fielddesc_cvtfromcoord(t_fielddesc *f, float coord)
  {
!     float val;
      if (f->fd_screen2 == f->fd_screen1)
          val = coord;
      else
      {
!         float div = (f->fd_v2 - f->fd_v1)/(f->fd_screen2 - f->fd_screen1);
!         float extreme;
          val = f->fd_v1 + (coord - f->fd_screen1) * div;
          if (f->fd_quantum != 0)
--- 910,922 ----
  
      /* convert from a screen coordinate to a variable value */
! t_float fielddesc_cvtfromcoord(t_fielddesc *f, t_float coord)
  {
!     t_float val;
      if (f->fd_screen2 == f->fd_screen1)
          val = coord;
      else
      {
!         t_float div = (f->fd_v2 - f->fd_v1)/(f->fd_screen2 - f->fd_screen1);
!         t_float extreme;
          val = f->fd_v1 + (coord - f->fd_screen1) * div;
          if (f->fd_quantum != 0)
***************
*** 933,941 ****
  
  void fielddesc_setcoord(t_fielddesc *f, t_template *template,
!     t_word *wp, float coord, int loud)
  {
      if (f->fd_type == A_FLOAT && f->fd_var)
      {
!         float val = fielddesc_cvtfromcoord(f, coord);
          template_setfloat(template,
                  f->fd_un.fd_varsym, wp, val, loud);
--- 933,941 ----
  
  void fielddesc_setcoord(t_fielddesc *f, t_template *template,
!     t_word *wp, t_float coord, int loud)
  {
      if (f->fd_type == A_FLOAT && f->fd_var)
      {
!         t_float val = fielddesc_cvtfromcoord(f, coord);
          template_setfloat(template,
                  f->fd_un.fd_varsym, wp, val, loud);
***************
*** 1041,1045 ****
  
  static void curve_getrect(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int *xp1, int *yp1, int *xp2, int *yp2)
  {
--- 1041,1045 ----
  
  static void curve_getrect(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int *xp1, int *yp1, int *xp2, int *yp2)
  {
***************
*** 1073,1077 ****
  
  static void curve_displace(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int dx, int dy)
  {
--- 1073,1077 ----
  
  static void curve_displace(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int dx, int dy)
  {
***************
*** 1080,1084 ****
  
  static void curve_select(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int state)
  {
--- 1080,1084 ----
  
  static void curve_select(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int state)
  {
***************
*** 1087,1091 ****
  
  static void curve_activate(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int state)
  {
--- 1087,1091 ----
  
  static void curve_activate(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int state)
  {
***************
*** 1123,1127 ****
  
  static void curve_vis(t_gobj *z, t_glist *glist, 
!     t_word *data, t_template *template, float basex, float basey,
      int vis)
  {
--- 1123,1127 ----
  
  static void curve_vis(t_gobj *z, t_glist *glist, 
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int vis)
  {
***************
*** 1138,1142 ****
          {
              int flags = x->x_flags, closed = (flags & CLOSED);
!             float width = fielddesc_getfloat(&x->x_width, template, data, 1);
              char outline[20], fill[20];
              int pix[200];
--- 1138,1142 ----
          {
              int flags = x->x_flags, closed = (flags & CLOSED);
!             t_float width = fielddesc_getfloat(&x->x_width, template, data, 1);
              char outline[20], fill[20];
              int pix[200];
***************
*** 1186,1195 ****
  
  static int curve_motion_field;
! static float curve_motion_xcumulative;
! static float curve_motion_xbase;
! static float curve_motion_xper;
! static float curve_motion_ycumulative;
! static float curve_motion_ybase;
! static float curve_motion_yper;
  static t_glist *curve_motion_glist;
  static t_scalar *curve_motion_scalar;
--- 1186,1195 ----
  
  static int curve_motion_field;
! static t_float curve_motion_xcumulative;
! static t_float curve_motion_xbase;
! static t_float curve_motion_xper;
! static t_float curve_motion_ycumulative;
! static t_float curve_motion_ybase;
! static t_float curve_motion_yper;
  static t_glist *curve_motion_glist;
  static t_scalar *curve_motion_scalar;
***************
*** 1238,1242 ****
  static int curve_click(t_gobj *z, t_glist *glist, 
      t_word *data, t_template *template, t_scalar *sc, t_array *ap,
!     float basex, float basey,
      int xpix, int ypix, int shift, int alt, int dbl, int doit)
  {
--- 1238,1242 ----
  static int curve_click(t_gobj *z, t_glist *glist, 
      t_word *data, t_template *template, t_scalar *sc, t_array *ap,
!     t_float basex, t_float basey,
      int xpix, int ypix, int shift, int alt, int dbl, int doit)
  {
***************
*** 1439,1444 ****
      t_word *data, t_template *ownertemplate, 
      t_symbol **elemtemplatesymp, t_array **arrayp,
!     float *linewidthp, float *xlocp, float *xincp, float *ylocp, float *stylep,
!     float *visp, float *scalarvisp,
      t_fielddesc **xfield, t_fielddesc **yfield, t_fielddesc **wfield)
  {
--- 1439,1444 ----
      t_word *data, t_template *ownertemplate, 
      t_symbol **elemtemplatesymp, t_array **arrayp,
!     t_float *linewidthp, t_float *xlocp, t_float *xincp, t_float *ylocp, t_float *stylep,
!     t_float *visp, t_float *scalarvisp,
      t_fielddesc **xfield, t_fielddesc **yfield, t_fielddesc **wfield)
  {
***************
*** 1539,1543 ****
  
  static void plot_getrect(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int *xp1, int *yp1, int *xp2, int *yp2)
  {
--- 1539,1543 ----
  
  static void plot_getrect(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int *xp1, int *yp1, int *xp2, int *yp2)
  {
***************
*** 1547,1555 ****
      t_template *elemtemplate;
      t_symbol *elemtemplatesym;
!     float linewidth, xloc, xinc, yloc, style, xsum, yval, vis, scalarvis;
      t_array *array;
      int x1 = 0x7fffffff, y1 = 0x7fffffff, x2 = -0x7fffffff, y2 = -0x7fffffff;
      int i;
!     float xpix, ypix, wpix;
      t_fielddesc *xfielddesc, *yfielddesc, *wfielddesc;
      if (!plot_readownertemplate(x, data, template, 
--- 1547,1555 ----
      t_template *elemtemplate;
      t_symbol *elemtemplatesym;
!     t_float linewidth, xloc, xinc, yloc, style, xsum, yval, vis, scalarvis;
      t_array *array;
      int x1 = 0x7fffffff, y1 = 0x7fffffff, x2 = -0x7fffffff, y2 = -0x7fffffff;
      int i;
!     t_float xpix, ypix, wpix;
      t_fielddesc *xfielddesc, *yfielddesc, *wfielddesc;
      if (!plot_readownertemplate(x, data, template, 
***************
*** 1566,1570 ****
          for (i = 0, xsum = 0; i < array->a_n; i += incr)
          {
!             float usexloc, useyloc;
              t_gobj *y;
                  /* get the coords of the point proper */
--- 1566,1570 ----
          for (i = 0, xsum = 0; i < array->a_n; i += incr)
          {
!             t_float usexloc, useyloc;
              t_gobj *y;
                  /* get the coords of the point proper */
***************
*** 1586,1594 ****
                  if (xonset >= 0)
                      usexloc = basex + xloc + fielddesc_cvttocoord(xfielddesc, 
!                         *(float *)(((char *)(array->a_vec) + elemsize * i)
                              + xonset));
                  else usexloc = basex + xsum, xsum += xinc;
                  if (yonset >= 0)
!                     yval = *(float *)(((char *)(array->a_vec) + elemsize * i)
                          + yonset);
                  else yval = 0;
--- 1586,1594 ----
                  if (xonset >= 0)
                      usexloc = basex + xloc + fielddesc_cvttocoord(xfielddesc, 
!                         *(t_float *)(((char *)(array->a_vec) + elemsize * i)
                              + xonset));
                  else usexloc = basex + xsum, xsum += xinc;
                  if (yonset >= 0)
!                     yval = *(t_float *)(((char *)(array->a_vec) + elemsize * i)
                          + yonset);
                  else yval = 0;
***************
*** 1623,1627 ****
  
  static void plot_displace(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int dx, int dy)
  {
--- 1623,1627 ----
  
  static void plot_displace(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int dx, int dy)
  {
***************
*** 1630,1634 ****
  
  static void plot_select(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int state)
  {
--- 1630,1634 ----
  
  static void plot_select(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int state)
  {
***************
*** 1637,1641 ****
  
  static void plot_activate(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int state)
  {
--- 1637,1641 ----
  
  static void plot_activate(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int state)
  {
***************
*** 1644,1648 ****
  
  static void plot_vis(t_gobj *z, t_glist *glist, 
!     t_word *data, t_template *template, float basex, float basey,
      int tovis)
  {
--- 1644,1648 ----
  
  static void plot_vis(t_gobj *z, t_glist *glist, 
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int tovis)
  {
***************
*** 1652,1656 ****
      t_template *elemtemplate;
      t_symbol *elemtemplatesym;
!     float linewidth, xloc, xinc, yloc, style, usexloc, xsum, yval, vis,
          scalarvis;
      t_array *array;
--- 1652,1656 ----
      t_template *elemtemplate;
      t_symbol *elemtemplatesym;
!     t_float linewidth, xloc, xinc, yloc, style, usexloc, xsum, yval, vis,
          scalarvis;
      t_array *array;
***************
*** 1682,1690 ****
          if (style == PLOTSTYLE_POINTS)
          {
!             float minyval = 1e20, maxyval = -1e20;
              int ndrawn = 0;
              for (xsum = basex + xloc, i = 0; i < nelem; i++)
              {
!                 float yval, xpix, ypix, nextxloc;
                  int ixpix, inextx;
  
--- 1682,1690 ----
          if (style == PLOTSTYLE_POINTS)
          {
!             t_float minyval = 1e20, maxyval = -1e20;
              int ndrawn = 0;
              for (xsum = basex + xloc, i = 0; i < nelem; i++)
              {
!                 t_float yval, xpix, ypix, nextxloc;
                  int ixpix, inextx;
  
***************
*** 1692,1696 ****
                  {
                      usexloc = basex + xloc +
!                         *(float *)((elem + elemsize * i) + xonset);
                      ixpix = glist_xtopixels(glist, 
                          fielddesc_cvttocoord(xfielddesc, usexloc));
--- 1692,1696 ----
                  {
                      usexloc = basex + xloc +
!                         *(t_float *)((elem + elemsize * i) + xonset);
                      ixpix = glist_xtopixels(glist, 
                          fielddesc_cvttocoord(xfielddesc, usexloc));
***************
*** 1708,1712 ****
  
                  if (yonset >= 0)
!                     yval = yloc + *(float *)((elem + elemsize * i) + yonset);
                  else yval = 0;
                  if (yval > maxyval)
--- 1708,1712 ----
  
                  if (yonset >= 0)
!                     yval = yloc + *(t_float *)((elem + elemsize * i) + yonset);
                  else yval = 0;
                  if (yval > maxyval)
***************
*** 1735,1739 ****
              char outline[20];
              int lastpixel = -1, ndrawn = 0;
!             float yval = 0, wval = 0, xpix;
              int ixpix = 0;
                  /* draw the trace */
--- 1735,1739 ----
              char outline[20];
              int lastpixel = -1, ndrawn = 0;
!             t_float yval = 0, wval = 0, xpix;
              int ixpix = 0;
                  /* draw the trace */
***************
*** 1750,1760 ****
                  {
                      if (xonset >= 0)
!                         usexloc = xloc + *(float *)((elem + elemsize * i)
                              + xonset);
                      else usexloc = xsum, xsum += xinc;
                      if (yonset >= 0)
!                         yval = *(float *)((elem + elemsize * i) + yonset);
                      else yval = 0;
!                     wval = *(float *)((elem + elemsize * i) + wonset);
                      xpix = glist_xtopixels(glist,
                          basex + fielddesc_cvttocoord(xfielddesc, usexloc));
--- 1750,1760 ----
                  {
                      if (xonset >= 0)
!                         usexloc = xloc + *(t_float *)((elem + elemsize * i)
                              + xonset);
                      else usexloc = xsum, xsum += xinc;
                      if (yonset >= 0)
!                         yval = *(t_float *)((elem + elemsize * i) + yonset);
                      else yval = 0;
!                     wval = *(t_float *)((elem + elemsize * i) + wonset);
                      xpix = glist_xtopixels(glist,
                          basex + fielddesc_cvttocoord(xfielddesc, usexloc));
***************
*** 1775,1787 ****
                  for (i = nelem-1; i >= 0; i--)
                  {
!                     float usexloc;
                      if (xonset >= 0)
!                         usexloc = xloc + *(float *)((elem + elemsize * i)
                              + xonset);
                      else xsum -= xinc, usexloc = xsum;
                      if (yonset >= 0)
!                         yval = *(float *)((elem + elemsize * i) + yonset);
                      else yval = 0;
!                     wval = *(float *)((elem + elemsize * i) + wonset);
                      xpix = glist_xtopixels(glist,
                          basex + fielddesc_cvttocoord(xfielddesc, usexloc));
--- 1775,1787 ----
                  for (i = nelem-1; i >= 0; i--)
                  {
!                     t_float usexloc;
                      if (xonset >= 0)
!                         usexloc = xloc + *(t_float *)((elem + elemsize * i)
                              + xonset);
                      else xsum -= xinc, usexloc = xsum;
                      if (yonset >= 0)
!                         yval = *(t_float *)((elem + elemsize * i) + yonset);
                      else yval = 0;
!                     wval = *(t_float *)((elem + elemsize * i) + wonset);
                      xpix = glist_xtopixels(glist,
                          basex + fielddesc_cvttocoord(xfielddesc, usexloc));
***************
*** 1827,1837 ****
                  for (xsum = xloc, i = 0; i < nelem; i++)
                  {
!                     float usexloc;
                      if (xonset >= 0)
!                         usexloc = xloc + *(float *)((elem + elemsize * i) +
                              xonset);
                      else usexloc = xsum, xsum += xinc;
                      if (yonset >= 0)
!                         yval = *(float *)((elem + elemsize * i) + yonset);
                      else yval = 0;
                      xpix = glist_xtopixels(glist,
--- 1827,1837 ----
                  for (xsum = xloc, i = 0; i < nelem; i++)
                  {
!                     t_float usexloc;
                      if (xonset >= 0)
!                         usexloc = xloc + *(t_float *)((elem + elemsize * i) +
                              xonset);
                      else usexloc = xsum, xsum += xinc;
                      if (yonset >= 0)
!                         yval = *(t_float *)((elem + elemsize * i) + yonset);
                      else yval = 0;
                      xpix = glist_xtopixels(glist,
***************
*** 1869,1880 ****
              for (xsum = xloc, i = 0; i < nelem; i++)
              {
!                 float usexloc, useyloc;
                  t_gobj *y;
                  if (xonset >= 0)
                      usexloc = basex + xloc +
!                         *(float *)((elem + elemsize * i) + xonset);
                  else usexloc = basex + xsum, xsum += xinc;
                  if (yonset >= 0)
!                     yval = *(float *)((elem + elemsize * i) + yonset);
                  else yval = 0;
                  useyloc = basey + yloc +
--- 1869,1880 ----
              for (xsum = xloc, i = 0; i < nelem; i++)
              {
!                 t_float usexloc, useyloc;
                  t_gobj *y;
                  if (xonset >= 0)
                      usexloc = basex + xloc +
!                         *(t_float *)((elem + elemsize * i) + xonset);
                  else usexloc = basex + xsum, xsum += xinc;
                  if (yonset >= 0)
!                     yval = *(t_float *)((elem + elemsize * i) + yonset);
                  else yval = 0;
                  useyloc = basey + yloc +
***************
*** 1918,1927 ****
  static int plot_click(t_gobj *z, t_glist *glist, 
      t_word *data, t_template *template, t_scalar *sc, t_array *ap,
!     float basex, float basey,
      int xpix, int ypix, int shift, int alt, int dbl, int doit)
  {
      t_plot *x = (t_plot *)z;
      t_symbol *elemtemplatesym;
!     float linewidth, xloc, xinc, yloc, style, vis, scalarvis;
      t_array *array;
      t_fielddesc *xfielddesc, *yfielddesc, *wfielddesc;
--- 1918,1927 ----
  static int plot_click(t_gobj *z, t_glist *glist, 
      t_word *data, t_template *template, t_scalar *sc, t_array *ap,
!     t_float basex, t_float basey,
      int xpix, int ypix, int shift, int alt, int dbl, int doit)
  {
      t_plot *x = (t_plot *)z;
      t_symbol *elemtemplatesym;
!     t_float linewidth, xloc, xinc, yloc, style, vis, scalarvis;
      t_array *array;
      t_fielddesc *xfielddesc, *yfielddesc, *wfielddesc;
***************
*** 2059,2063 ****
  
  static void drawnumber_getrect(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int *xp1, int *yp1, int *xp2, int *yp2)
  {
--- 2059,2063 ----
  
  static void drawnumber_getrect(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int *xp1, int *yp1, int *xp2, int *yp2)
  {
***************
*** 2091,2095 ****
  
  static void drawnumber_displace(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int dx, int dy)
  {
--- 2091,2095 ----
  
  static void drawnumber_displace(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int dx, int dy)
  {
***************
*** 2098,2102 ****
  
  static void drawnumber_select(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int state)
  {
--- 2098,2102 ----
  
  static void drawnumber_select(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int state)
  {
***************
*** 2106,2110 ****
  
  static void drawnumber_activate(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, float basex, float basey,
      int state)
  {
--- 2106,2110 ----
  
  static void drawnumber_activate(t_gobj *z, t_glist *glist,
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int state)
  {
***************
*** 2113,2117 ****
  
  static void drawnumber_vis(t_gobj *z, t_glist *glist, 
!     t_word *data, t_template *template, float basex, float basey,
      int vis)
  {
--- 2113,2117 ----
  
  static void drawnumber_vis(t_gobj *z, t_glist *glist, 
!     t_word *data, t_template *template, t_float basex, t_float basey,
      int vis)
  {
***************
*** 2137,2142 ****
          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);
      }
--- 2137,2142 ----
          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);
      }
***************
*** 2144,2148 ****
  }
  
! static float drawnumber_motion_ycumulative;
  static t_glist *drawnumber_motion_glist;
  static t_scalar *drawnumber_motion_scalar;
--- 2144,2148 ----
  }
  
! static t_float drawnumber_motion_ycumulative;
  static t_glist *drawnumber_motion_glist;
  static t_scalar *drawnumber_motion_scalar;
***************
*** 2226,2230 ****
      {
              /* key entry for a numeric field.  This is just a stopgap. */
!         float newf;
          if (drawnumber_motion_firstkey)
              sbuf[0] = 0;
--- 2226,2230 ----
      {
              /* key entry for a numeric field.  This is just a stopgap. */
!         t_float newf;
          if (drawnumber_motion_firstkey)
              sbuf[0] = 0;
***************
*** 2259,2263 ****
  static int drawnumber_click(t_gobj *z, t_glist *glist, 
      t_word *data, t_template *template, t_scalar *sc, t_array *ap,
!     float basex, float basey,
      int xpix, int ypix, int shift, int alt, int dbl, int doit)
  {
--- 2259,2263 ----
  static int drawnumber_click(t_gobj *z, t_glist *glist, 
      t_word *data, t_template *template, t_scalar *sc, t_array *ap,
!     t_float basex, t_float basey,
      int xpix, int ypix, int shift, int alt, int dbl, int doit)
  {

Index: g_array.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_array.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** g_array.c	20 Jul 2007 03:25:20 -0000	1.13
--- g_array.c	28 Dec 2007 03:43:03 -0000	1.14
***************
*** 395,399 ****
      int saveit = ((flags & 1) != 0);
      int style = ((flags & 6) >> 1);
!     float stylewas = template_getfloat(
          template_findbyname(x->x_scalar->sc_template),
              gensym("style"), x->x_scalar->sc_vec, 1);
--- 395,399 ----
      int saveit = ((flags & 1) != 0);
      int style = ((flags & 6) >> 1);
!     t_float stylewas = template_getfloat(
          template_findbyname(x->x_scalar->sc_template),
              gensym("style"), x->x_scalar->sc_vec, 1);
***************
*** 450,454 ****
              garray_fittograph(x, size, style);
          template_setfloat(scalartemplate, gensym("style"),
!             x->x_scalar->sc_vec, (float)style, 0);
  
          garray_setsaveit(x, (saveit != 0));
--- 450,454 ----
              garray_fittograph(x, size, style);
          template_setfloat(scalartemplate, gensym("style"),
!             x->x_scalar->sc_vec, (t_float)style, 0);
  
          garray_setsaveit(x, (saveit != 0));
***************
*** 461,465 ****
  {
      int i, xonset=0, yonset=0, type=0, elemsize=0;
!     float yval;
      char cmdbuf[200];
      t_symbol *arraytype;
--- 461,465 ----
  {
      int i, xonset=0, yonset=0, type=0, elemsize=0;
!     t_float yval;
      char cmdbuf[200];
      t_symbol *arraytype;
***************
*** 479,483 ****
      for (i = 0; i < ARRAYPAGESIZE && i < a->a_n; i++)
      {
!         yval = *(float *)(a->a_vec +
                 elemsize * i + yonset);
          sys_vgui(".%sArrayWindow.lb insert %d {%d) %g}\n",
--- 479,483 ----
      for (i = 0; i < ARRAYPAGESIZE && i < a->a_n; i++)
      {
!         yval = *(t_float *)(a->a_vec +
                 elemsize * i + yonset);
          sys_vgui(".%sArrayWindow.lb insert %d {%d) %g}\n",
***************
*** 494,498 ****
  {
      int i, xonset=0, yonset=0, type=0, elemsize=0, topItem;
!     float yval;
      char cmdbuf[200];
      t_symbol *arraytype;
--- 494,498 ----
  {
      int i, xonset=0, yonset=0, type=0, elemsize=0, topItem;
!     t_float yval;
      char cmdbuf[200];
      t_symbol *arraytype;
***************
*** 525,529 ****
           i++)
      {
!         yval = *(float *)(a->a_vec + \
                 elemsize * i + yonset);
          sys_vgui(".%sArrayWindow.lb insert %d {%d) %g}\n",
--- 525,529 ----
           i++)
      {
!         yval = *(t_float *)(a->a_vec + \
                 elemsize * i + yonset);
          sys_vgui(".%sArrayWindow.lb insert %d {%d) %g}\n",
***************
*** 576,589 ****
  void array_getcoordinate(t_glist *glist,
      char *elem, int xonset, int yonset, int wonset, int indx,
!     float basex, float basey, float xinc,
      t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
!     float *xp, float *yp, float *wp)
  {
!     float xval, yval, ypix, wpix;
      if (xonset >= 0)
!         xval = *(float *)(elem + xonset);
      else xval = indx * xinc;
      if (yonset >= 0)
!         yval = *(float *)(elem + yonset);
      else yval = 0;
      ypix = glist_ytopixels(glist, basey +
--- 576,589 ----
  void array_getcoordinate(t_glist *glist,
      char *elem, int xonset, int yonset, int wonset, int indx,
!     t_float basex, t_float basey, t_float xinc,
      t_fielddesc *xfielddesc, t_fielddesc *yfielddesc, t_fielddesc *wfielddesc,
!     t_float *xp, t_float *yp, t_float *wp)
  {
!     t_float xval, yval, ypix, wpix;
      if (xonset >= 0)
!         xval = *(t_float *)(elem + xonset);
      else xval = indx * xinc;
      if (yonset >= 0)
!         yval = *(t_float *)(elem + yonset);
      else yval = 0;
      ypix = glist_ytopixels(glist, basey +
***************
*** 592,596 ****
      {
              /* found "w" field which controls linewidth. */
!         float wval = *(float *)(elem + wonset);
          wpix = glist_ytopixels(glist, basey + 
              fielddesc_cvttocoord(yfielddesc, yval) +
--- 592,596 ----
      {
              /* found "w" field which controls linewidth. */
!         t_float wval = *(t_float *)(elem + wonset);
          wpix = glist_ytopixels(glist, basey + 
              fielddesc_cvttocoord(yfielddesc, yval) +
***************
*** 606,611 ****
  }
  
! static float array_motion_xcumulative;
! static float array_motion_ycumulative;
  static t_fielddesc *array_motion_xfield;
  static t_fielddesc *array_motion_yfield;
--- 606,611 ----
  }
  
! static t_float array_motion_xcumulative;
! static t_float array_motion_ycumulative;
  static t_fielddesc *array_motion_xfield;
  static t_fielddesc *array_motion_yfield;
***************
*** 618,624 ****
  static int array_motion_elemsize;
  static int array_motion_altkey;
! static float array_motion_initx;
! static float array_motion_xperpix;
! static float array_motion_yperpix;
  static int array_motion_lastx;
  static int array_motion_fatten;
--- 618,624 ----
  static int array_motion_elemsize;
  static int array_motion_altkey;
! static t_float array_motion_initx;
! static t_float array_motion_xperpix;
! static t_float array_motion_yperpix;
  static int array_motion_lastx;
  static int array_motion_fatten;
***************
*** 639,645 ****
              t_word *thisword = (t_word *)(((char *)array_motion_wp) +
                  i * array_motion_elemsize);
!             float xwas = fielddesc_getcoord(array_motion_xfield, 
                  array_motion_template, thisword, 1);
!             float ywas = (array_motion_yfield ?
                  fielddesc_getcoord(array_motion_yfield, 
                      array_motion_template, thisword, 1) : 0);
--- 639,645 ----
              t_word *thisword = (t_word *)(((char *)array_motion_wp) +
                  i * array_motion_elemsize);
!             t_float xwas = fielddesc_getcoord(array_motion_xfield, 
                  array_motion_template, thisword, 1);
!             t_float ywas = (array_motion_yfield ?
                  fielddesc_getcoord(array_motion_yfield, 
                      array_motion_template, thisword, 1) : 0);
***************
*** 652,656 ****
                      if (i == 0)
                      {
!                         float newy = ywas + dy * array_motion_yperpix;
                          if (newy < 0)
                              newy = 0;
--- 652,656 ----
                      if (i == 0)
                      {
!                         t_float newy = ywas + dy * array_motion_yperpix;
                          if (newy < 0)
                              newy = 0;
***************
*** 673,677 ****
          int thisx = array_motion_initx + array_motion_xcumulative + 0.5, x2;
          int increment, i, nchange;
!         float newy = array_motion_ycumulative,
              oldy = fielddesc_getcoord(array_motion_yfield,
                  array_motion_template,
--- 673,677 ----
          int thisx = array_motion_initx + array_motion_xcumulative + 0.5, x2;
          int increment, i, nchange;
!         t_float newy = array_motion_ycumulative,
              oldy = fielddesc_getcoord(array_motion_yfield,
                  array_motion_template,
***************
*** 679,683 ****
                          array_motion_elemsize * array_motion_lastx),
                              1);
!         float ydiff = newy - oldy;
          if (thisx < 0) thisx = 0;
          else if (thisx >= array_motion_npoints)
--- 679,683 ----
                          array_motion_elemsize * array_motion_lastx),
                              1);
!         t_float ydiff = newy - oldy;
          if (thisx < 0) thisx = 0;
          else if (thisx >= array_motion_npoints)
***************
*** 705,709 ****
  int scalar_doclick(t_word *data, t_template *template, t_scalar *sc,
      t_array *ap, struct _glist *owner,
!     float xloc, float yloc, int xpix, int ypix,
      int shift, int alt, int dbl, int doit);
  
--- 705,709 ----
  int scalar_doclick(t_word *data, t_template *template, t_scalar *sc,
      t_array *ap, struct _glist *owner,
!     t_float xloc, t_float yloc, int xpix, int ypix,
      int shift, int alt, int dbl, int doit);
  
***************
*** 713,717 ****
      t_scalar *sc, t_array *ap,
      t_symbol *elemtemplatesym,
!     float linewidth, float xloc, float xinc, float yloc,
      t_fielddesc *xfield, t_fielddesc *yfield, t_fielddesc *wfield,
      int xpix, int ypix, int shift, int alt, int dbl, int doit)
--- 713,717 ----
      t_scalar *sc, t_array *ap,
      t_symbol *elemtemplatesym,
!     t_float linewidth, t_float xloc, t_float xinc, t_float yloc,
      t_fielddesc *xfield, t_fielddesc *yfield, t_fielddesc *wfield,
      int xpix, int ypix, int shift, int alt, int dbl, int doit)
***************
*** 720,724 ****
      t_template *elemtemplate;
      int elemsize, yonset, wonset, xonset, i, incr, hit;
!     float xsum;
  
      if (elemtemplatesym == &s_float)
--- 720,724 ----
      t_template *elemtemplate;
      int elemsize, yonset, wonset, xonset, i, incr, hit;
!     t_float xsum;
  
      if (elemtemplatesym == &s_float)
***************
*** 734,744 ****
      for (i = 0, xsum = 0; i < array->a_n; i += incr)
      {
!         float usexloc, useyloc;
          if (xonset >= 0)
              usexloc = xloc + fielddesc_cvttocoord(xfield, 
!                 *(float *)(((char *)(array->a_vec) + elemsize * i) + xonset));
          else usexloc = xloc + xsum, xsum += xinc;
          useyloc = yloc + (yonset >= 0 ? fielddesc_cvttocoord(yfield,
!             *(float *)(((char *)(array->a_vec) + elemsize * i) + yonset)) : 0);
          
          if (hit = scalar_doclick(
--- 734,744 ----
      for (i = 0, xsum = 0; i < array->a_n; i += incr)
      {
!         t_float usexloc, useyloc;
          if (xonset >= 0)
              usexloc = xloc + fielddesc_cvttocoord(xfield, 
!                 *(t_float *)(((char *)(array->a_vec) + elemsize * i) + xonset));
          else usexloc = xloc + xsum, xsum += xinc;
          useyloc = yloc + (yonset >= 0 ? fielddesc_cvttocoord(yfield,
!             *(t_float *)(((char *)(array->a_vec) + elemsize * i) + yonset)) : 0);
          
          if (hit = scalar_doclick(
***************
*** 756,760 ****
  int array_doclick(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap,
      t_symbol *elemtemplatesym,
!     float linewidth, float xloc, float xinc, float yloc, float scalarvis,
      t_fielddesc *xfield, t_fielddesc *yfield, t_fielddesc *wfield,
      int xpix, int ypix, int shift, int alt, int dbl, int doit)
--- 756,760 ----
  int array_doclick(t_array *array, t_glist *glist, t_scalar *sc, t_array *ap,
      t_symbol *elemtemplatesym,
!     t_float linewidth, t_float xloc, t_float xinc, t_float yloc, t_float scalarvis,
      t_fielddesc *xfield, t_fielddesc *yfield, t_fielddesc *wfield,
      int xpix, int ypix, int shift, int alt, int dbl, int doit)
***************
*** 768,777 ****
          &xonset, &yonset, &wonset))
      {
!         float best = 100;
              /* if it has more than 2000 points, just check 1000 of them. */
          int incr = (array->a_n <= 2000 ? 1 : array->a_n / 1000);
          for (i = 0; i < array->a_n; i += incr)
          {
!             float pxpix, pypix, pwpix, dx, dy;
              array_getcoordinate(glist, (char *)(array->a_vec) + i * elemsize,
                  xonset, yonset, wonset, i, xloc, yloc, xinc,
--- 768,777 ----
          &xonset, &yonset, &wonset))
      {
!         t_float best = 100;
              /* if it has more than 2000 points, just check 1000 of them. */
          int incr = (array->a_n <= 2000 ? 1 : array->a_n / 1000);
          for (i = 0; i < array->a_n; i += incr)
          {
!             t_float pxpix, pypix, pwpix, dx, dy;
              array_getcoordinate(glist, (char *)(array->a_vec) + i * elemsize,
                  xonset, yonset, wonset, i, xloc, yloc, xinc,
***************
*** 811,815 ****
          for (i = 0; i < array->a_n; i += incr)
          {
!             float pxpix, pypix, pwpix, dx, dy, dy2, dy3;
              array_getcoordinate(glist, (char *)(array->a_vec) + i * elemsize,
                  xonset, yonset, wonset, i, xloc, yloc, xinc,
--- 811,815 ----
          for (i = 0; i < array->a_n; i += incr)
          {
!             t_float pxpix, pypix, pwpix, dx, dy, dy2, dy3;
              array_getcoordinate(glist, (char *)(array->a_vec) + i * elemsize,
                  xonset, yonset, wonset, i, xloc, yloc, xinc,
***************
*** 904,908 ****
                              fielddesc_getcoord(yfield, array_motion_template,
                                  (t_word *)(elem + i * elemsize), 1);
!                             /* *(float *)((elem + elemsize * i) + yonset); */
                      }
                      else
--- 904,908 ----
                              fielddesc_getcoord(yfield, array_motion_template,
                                  (t_word *)(elem + i * elemsize), 1);
!                             /* *(t_float *)((elem + elemsize * i) + yonset); */
                      }
                      else
***************
*** 930,934 ****
      int *xp1, int *yp1, int *xp2, int *yp2)
  {
!     float x1 = 0x7fffffff, y1 = 0x7fffffff, x2 = -0x7fffffff, y2 = -0x7fffffff;
      t_canvas *elemtemplatecanvas;
      t_template *elemtemplate;
--- 930,934 ----
      int *xp1, int *yp1, int *xp2, int *yp2)
  {
!     t_float x1 = 0x7fffffff, y1 = 0x7fffffff, x2 = -0x7fffffff, y2 = -0x7fffffff;
      t_canvas *elemtemplatecanvas;
      t_template *elemtemplate;
***************
*** 945,949 ****
          for (i = 0; i < array->a_n; i += incr)
          {
!             float pxpix, pypix, pwpix, dx, dy;
              array_getcoordinate(glist, (char *)(array->a_vec) +
                  i * elemsize,
--- 945,949 ----
          for (i = 0; i < array->a_n; i += incr)
          {
!             t_float pxpix, pypix, pwpix, dx, dy;
              array_getcoordinate(glist, (char *)(array->a_vec) +
                  i * elemsize,
***************
*** 1153,1157 ****
  int garray_getfloatarray(t_garray *x, int *size, t_float **vec)
  {
!     if (sizeof(t_word) != sizeof(float))
      {
          static int warned;
--- 1153,1157 ----
  int garray_getfloatarray(t_garray *x, int *size, t_float **vec)
  {
!     if (sizeof(t_word) != sizeof(t_float))
      {
          static int warned;
***************
*** 1181,1185 ****
          error("%s: needs floating-point 'y' field", x->x_realname);
      else for (i = 0; i < array->a_n; i++)
!         *((float *)((char *)array->a_vec
              + elemsize * i) + yonset) = g;
      garray_redraw(x);
--- 1181,1185 ----
          error("%s: needs floating-point 'y' field", x->x_realname);
      else for (i = 0; i < array->a_n; i++)
!         *((t_float *)((char *)array->a_vec
              + elemsize * i) + yonset) = g;
      garray_redraw(x);
***************
*** 1187,1191 ****
  
      /* sum of Fourier components; called from routines below */
! static void garray_dofo(t_garray *x, int npoints, float dcval,
      int nsin, t_float *vsin, int sineflag)
  {
--- 1187,1191 ----
  
      /* sum of Fourier components; called from routines below */
! static void garray_dofo(t_garray *x, int npoints, t_float dcval,
      int nsin, t_float *vsin, int sineflag)
  {
***************
*** 1214,1218 ****
              for (j = 0, fj = 0; j < nsin; j++, fj += phase)
                  sum += vsin[j] * cos(fj);
!         *((float *)((array->a_vec + elemsize * i)) + yonset)
              = sum;
      }
--- 1214,1218 ----
              for (j = 0, fj = 0; j < nsin; j++, fj += phase)
                  sum += vsin[j] * cos(fj);
!         *((t_float *)((array->a_vec + elemsize * i)) + yonset)
              = sum;
      }
***************
*** 1283,1287 ****
      for (i = 0, maxv = 0; i < array->a_n; i++)
      {
!         double v = *((float *)(array->a_vec + elemsize * i)
              + yonset);
          if (v > maxv)
--- 1283,1287 ----
      for (i = 0, maxv = 0; i < array->a_n; i++)
      {
!         double v = *((t_float *)(array->a_vec + elemsize * i)
              + yonset);
          if (v > maxv)
***************
*** 1294,1298 ****
          renormer = f / maxv;
          for (i = 0; i < array->a_n; i++)
!             *((float *)(array->a_vec + elemsize * i) + yonset)
                  *= renormer;
      }
--- 1294,1298 ----
          renormer = f / maxv;
          for (i = 0; i < array->a_n; i++)
!             *((t_float *)(array->a_vec + elemsize * i) + yonset)
                  *= renormer;
      }
***************
*** 1332,1336 ****
          }
          for (i = 0; i < argc; i++)
!             *((float *)(array->a_vec + elemsize * (i + firstindex)) + yonset)
                  = atom_getfloat(argv + i);
      }
--- 1332,1336 ----
          }
          for (i = 0; i < argc; i++)
!             *((t_float *)(array->a_vec + elemsize * (i + firstindex)) + yonset)
                  = atom_getfloat(argv + i);
      }
***************
*** 1403,1407 ****
      for (i = 0; i < nelem; i++)
      {
!         if (!fscanf(fd, "%f", ((float *)(array->a_vec +
              elemsize * i) + yonset)))
          {
--- 1403,1407 ----
      for (i = 0; i < nelem; i++)
      {
!         if (!fscanf(fd, "%f", ((t_float *)(array->a_vec +
              elemsize * i) + yonset)))
          {
***************
*** 1412,1416 ****
      }
      while (i < nelem)
!         *((float *)(array->a_vec +
              elemsize * i) + yonset) = 0, i++;
      fclose(fd);
--- 1412,1416 ----
      }
      while (i < nelem)
!         *((t_float *)(array->a_vec +
              elemsize * i) + yonset) = 0, i++;
      fclose(fd);
***************
*** 1440,1444 ****
      {
          if (fprintf(fd, "%g\n",
!             *(float *)(((array->a_vec + sizeof(t_word) * i)) + yonset)) < 1)
          {
              post("%s: write error", filename->s_name);
--- 1440,1444 ----
      {
          if (fprintf(fd, "%g\n",
!             *(t_float *)(((array->a_vec + sizeof(t_word) * i)) + yonset)) < 1)
          {
              post("%s: write error", filename->s_name);

Index: s_audio_oss.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_oss.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** s_audio_oss.c	28 Nov 2004 21:20:43 -0000	1.7
--- s_audio_oss.c	28 Dec 2007 03:43:05 -0000	1.8
***************
*** 43,48 ****
  /* GLOBALS */
  static int linux_meters;        /* true if we're metering */
! static float linux_inmax;       /* max input amplitude */
! static float linux_outmax;      /* max output amplitude */
  static int linux_fragsize = 0;  /* for block mode; block size (sample frames) */
  
--- 43,48 ----
  /* GLOBALS */
  static int linux_meters;        /* true if we're metering */
! static t_sample linux_inmax;       /* max input amplitude */
! static t_sample linux_outmax;      /* max output amplitude */
  static int linux_fragsize = 0;  /* for block mode; block size (sample frames) */
  
***************
*** 65,69 ****
  
      /* exported variables */
! float sys_dacsr;
  t_sample *sys_soundout;
  t_sample *sys_soundin;
--- 65,69 ----
  
      /* exported variables */
! t_float sys_dacsr;
  t_sample *sys_soundout;
  t_sample *sys_soundin;
***************
*** 246,251 ****
  static int oss_setchannels(int fd, int wantchannels, char *devname)
  {
!     int param = wantchannels;
! 
      while (param > 1)
      {
--- 246,270 ----
  static int oss_setchannels(int fd, int wantchannels, char *devname)
  {
!     int param;
!     if (sys_verbose)
!         post("setchan %d", wantchannels);
!     if (ioctl(fd, SNDCTL_DSP_CHANNELS, &param) == -1)
!     {
!         if (sys_verbose)
!             error("OSS: SOUND_DSP_READ_CHANNELS failed %s", devname);
!     }
!     else
!     {
!         if (sys_verbose)
!             post("channels originally %d for %s", param, devname);
!         if (param == wantchannels)
!         {
!             if (sys_verbose)
!                 post("number of channels doesn't need setting\n");
!             return (wantchannels);
!         }
!     }
!     param = wantchannels;
! whynot:    
      while (param > 1)
      {
***************
*** 400,407 ****
  
              /* perhaps it's already open from the above? */
!         if (linux_dacs[n].d_fd >= 0)
          {
              fd = linux_adcs[n].d_fd;
              alreadyopened = 1;
          }
          else
--- 419,428 ----
  
              /* perhaps it's already open from the above? */
!         if (linux_adcs[n].d_fd >= 0)
          {
              fd = linux_adcs[n].d_fd;
              alreadyopened = 1;
+             if (sys_verbose)
+                 post("already opened it");
          }
          else
***************
*** 625,629 ****
  int oss_send_dacs(void)
  {
!     float *fp1, *fp2;
      long fill;
      int i, j, dev, rtnval = SENDDACS_YES;
--- 646,650 ----
  int oss_send_dacs(void)
  {
!     t_sample *fp1, *fp2;
      long fill;
      int i, j, dev, rtnval = SENDDACS_YES;
***************
*** 759,763 ****
      }
      memset(sys_soundout, 0,
!         sys_outchannels * (sizeof(float) * DEFDACBLKSIZE));
  
          /* do input */
--- 780,784 ----
      }
      memset(sys_soundout, 0,
!         sys_outchannels * (sizeof(t_sample) * DEFDACBLKSIZE));
  
          /* do input */

Index: g_io.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_io.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** g_io.c	19 Sep 2006 22:30:33 -0000	1.7
--- g_io.c	28 Dec 2007 03:43:04 -0000	1.8
***************
*** 293,300 ****
      t_outlet *x_parentoutlet;
      int x_bufsize;
!     t_float *x_buf;         /* signal buffer; zero if not a signal */
!     t_float *x_endbuf;
!     t_float *x_empty;       /* next to read out of buffer in epilog code */
!     t_float *x_write;       /* next to write in to buffer */
      int x_hop;              /* hopsize */
          /* vice versa from the inlet, if we don't block, this holds the
--- 293,300 ----
      t_outlet *x_parentoutlet;
      int x_bufsize;
!     t_sample *x_buf;         /* signal buffer; zero if not a signal */
!     t_sample *x_endbuf;
!     t_sample *x_empty;       /* next to read out of buffer in epilog code */
!     t_sample *x_write;       /* next to write in to buffer */
      int x_hop;              /* hopsize */
          /* vice versa from the inlet, if we don't block, this holds the
***************
*** 374,378 ****
      t_float *in = (t_float *)(w[2]);
      int n = (int)(w[3]);
!     t_float *out = x->x_write, *outwas = out;
  #if 0
      if (tot < 5) post("-in %lx out %lx n %d", in, out, n);
--- 374,378 ----
      t_float *in = (t_float *)(w[2]);
      int n = (int)(w[3]);
!     t_sample *out = x->x_write, *outwas = out;
  #if 0
      if (tot < 5) post("-in %lx out %lx n %d", in, out, n);
***************
*** 394,401 ****
  {
      t_voutlet *x = (t_voutlet *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
  
      int n = (int)(w[3]);
!     t_float *in = x->x_empty;
      if (x->x_updown.downsample != x->x_updown.upsample)
          out = x->x_updown.s_vec;
--- 394,401 ----
  {
      t_voutlet *x = (t_voutlet *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
  
      int n = (int)(w[3]);
!     t_sample *in = x->x_empty;
      if (x->x_updown.downsample != x->x_updown.upsample)
          out = x->x_updown.s_vec;
***************
*** 414,419 ****
      t_voutlet *x = (t_voutlet *)(w[1]);
      int n = (int)(w[2]);
!     t_float *in  = x->x_empty;
!     t_float *out = x->x_updown.s_vec;
  
  #if 0
--- 414,419 ----
      t_voutlet *x = (t_voutlet *)(w[1]);
      int n = (int)(w[2]);
!     t_sample *in  = x->x_empty;
!     t_sample *out = x->x_updown.s_vec;
  
  #if 0
***************
*** 505,511 ****
          if (bufsize != (oldbufsize = x->x_bufsize))
          {
!             t_float *buf = x->x_buf;
              t_freebytes(buf, oldbufsize * sizeof(*buf));
!             buf = (t_float *)t_getbytes(bufsize * sizeof(*buf));
              memset((char *)buf, 0, bufsize * sizeof(*buf));
              x->x_bufsize = bufsize;
--- 505,511 ----
          if (bufsize != (oldbufsize = x->x_bufsize))
          {
!             t_sample *buf = x->x_buf;
              t_freebytes(buf, oldbufsize * sizeof(*buf));
!             buf = (t_sample *)t_getbytes(bufsize * sizeof(*buf));
              memset((char *)buf, 0, bufsize * sizeof(*buf));
              x->x_bufsize = bufsize;
***************
*** 557,561 ****
          &x->x_obj.ob_pd, &s_signal);
      inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
!     x->x_endbuf = x->x_buf = (t_float *)getbytes(0);
      x->x_bufsize = 0;
  
--- 557,561 ----
          &x->x_obj.ob_pd, &s_signal);
      inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal);
!     x->x_endbuf = x->x_buf = (t_sample *)getbytes(0);
      x->x_bufsize = 0;
  

Index: d_global.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_global.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** d_global.c	6 Sep 2004 20:20:33 -0000	1.2
--- d_global.c	28 Dec 2007 03:43:03 -0000	1.3
***************
*** 18,23 ****
      t_symbol *x_sym;
      int x_n;
!     float *x_vec;
!     float x_f;
  } t_sigsend;
  
--- 18,23 ----
      t_symbol *x_sym;
      int x_n;
!     t_sample *x_vec;
!     t_float x_f;
  } t_sigsend;
  
***************
*** 28,33 ****
      x->x_sym = s;
      x->x_n = DEFSENDVS;
!     x->x_vec = (float *)getbytes(DEFSENDVS * sizeof(float));
!     memset((char *)(x->x_vec), 0, DEFSENDVS * sizeof(float));
      x->x_f = 0;
      return (x);
--- 28,33 ----
      x->x_sym = s;
      x->x_n = DEFSENDVS;
!     x->x_vec = (t_sample *)getbytes(DEFSENDVS * sizeof(t_sample));
!     memset((char *)(x->x_vec), 0, DEFSENDVS * sizeof(t_sample));
      x->x_f = 0;
      return (x);
***************
*** 36,41 ****
  static t_int *sigsend_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
      while (n--)
--- 36,41 ----
  static t_int *sigsend_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
      while (n--)
***************
*** 58,62 ****
  {
      pd_unbind(&x->x_obj.ob_pd, x->x_sym);
!     freebytes(x->x_vec, x->x_n * sizeof(float));
  }
  
--- 58,62 ----
  {
      pd_unbind(&x->x_obj.ob_pd, x->x_sym);
!     freebytes(x->x_vec, x->x_n * sizeof(t_sample));
  }
  
***************
*** 77,81 ****
      t_object x_obj;
      t_symbol *x_sym;
!     t_float *x_wherefrom;
      int x_n;
  } t_sigreceive;
--- 77,81 ----
      t_object x_obj;
      t_symbol *x_sym;
!     t_sample *x_wherefrom;
      int x_n;
  } t_sigreceive;
***************
*** 94,100 ****
  {
      t_sigreceive *x = (t_sigreceive *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
!     t_float *in = x->x_wherefrom;
      if (in)
      {
--- 94,100 ----
  {
      t_sigreceive *x = (t_sigreceive *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
!     t_sample *in = x->x_wherefrom;
      if (in)
      {
***************
*** 114,120 ****
  {
      t_sigreceive *x = (t_sigreceive *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
!     t_float *in = x->x_wherefrom;
      if (in)
      {
--- 114,120 ----
  {
      t_sigreceive *x = (t_sigreceive *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
!     t_sample *in = x->x_wherefrom;
      if (in)
      {
***************
*** 195,199 ****
      t_symbol *x_sym;
      int x_n;
!     float *x_vec;
  } t_sigcatch;
  
--- 195,199 ----
      t_symbol *x_sym;
      int x_n;
!     t_sample *x_vec;
  } t_sigcatch;
  
***************
*** 204,209 ****
      x->x_sym = s;
      x->x_n = DEFSENDVS;
!     x->x_vec = (float *)getbytes(DEFSENDVS * sizeof(float));
!     memset((char *)(x->x_vec), 0, DEFSENDVS * sizeof(float));
      outlet_new(&x->x_obj, &s_signal);
      return (x);
--- 204,209 ----
      x->x_sym = s;
      x->x_n = DEFSENDVS;
!     x->x_vec = (t_sample *)getbytes(DEFSENDVS * sizeof(t_sample));
!     memset((char *)(x->x_vec), 0, DEFSENDVS * sizeof(t_sample));
      outlet_new(&x->x_obj, &s_signal);
      return (x);
***************
*** 212,217 ****
  static t_int *sigcatch_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
      while (n--) *out++ = *in, *in++ = 0; 
--- 212,217 ----
  static t_int *sigcatch_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
      while (n--) *out++ = *in, *in++ = 0; 
***************
*** 222,227 ****
  static t_int *sigcatch_perf8(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      int n = (int)(w[3]);
      for (; n; n -= 8, in += 8, out += 8)
--- 222,227 ----
  static t_int *sigcatch_perf8(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = (int)(w[3]);
      for (; n; n -= 8, in += 8, out += 8)
***************
*** 251,255 ****
  {
      pd_unbind(&x->x_obj.ob_pd, x->x_sym);
!     freebytes(x->x_vec, x->x_n * sizeof(float));
  }
  
--- 251,255 ----
  {
      pd_unbind(&x->x_obj.ob_pd, x->x_sym);
!     freebytes(x->x_vec, x->x_n * sizeof(t_sample));
  }
  
***************
*** 269,273 ****
      t_object x_obj;
      t_symbol *x_sym;
!     t_float *x_whereto;
      int x_n;
      t_float x_f;
--- 269,273 ----
      t_object x_obj;
      t_symbol *x_sym;
!     t_sample *x_whereto;
      int x_n;
      t_float x_f;
***************
*** 287,293 ****
  {
      t_sigthrow *x = (t_sigthrow *)(w[1]);
!     t_float *in = (t_float *)(w[2]);
      int n = (int)(w[3]);
!     t_float *out = x->x_whereto;
      if (out)
      {
--- 287,293 ----
  {
      t_sigthrow *x = (t_sigthrow *)(w[1]);
!     t_sample *in = (t_sample *)(w[2]);
      int n = (int)(w[3]);
!     t_sample *out = x->x_whereto;
      if (out)
      {

Index: x_misc.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_misc.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** x_misc.c	2 Aug 2007 00:33:50 -0000	1.4
--- x_misc.c	28 Dec 2007 03:43:06 -0000	1.5
***************
*** 71,75 ****
  }
  
! static void random_seed(t_random *x, float f, float glob)
  {
      x->x_state = f;
--- 71,75 ----
  }
  
! static void random_seed(t_random *x, t_float f, t_float glob)
  {
      x->x_state = f;
***************
*** 229,233 ****
  {
  #ifdef UNISTD
!     float elapsedcpu;
      struct tms newcputime;
      times(&newcputime);
--- 229,233 ----
  {
  #ifdef UNISTD
!     t_float elapsedcpu;
      struct tms newcputime;
      times(&newcputime);
***************
*** 238,242 ****
  #endif
  #ifdef MSW
!     float elapsedcpu;
      FILETIME ignorethis, ignorethat;
      LARGE_INTEGER usertime, kerneltime;
--- 238,242 ----
  #endif
  #ifdef MSW
!     t_float elapsedcpu;
      FILETIME ignorethis, ignorethat;
      LARGE_INTEGER usertime, kerneltime;

Index: g_scalar.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_scalar.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** g_scalar.c	20 Jul 2007 03:25:20 -0000	1.9
--- g_scalar.c	28 Dec 2007 03:43:04 -0000	1.10
***************
*** 50,54 ****
          if (type == DT_FLOAT)
          {
!             float f;
              if (argc)
              {
--- 50,54 ----
          if (type == DT_FLOAT)
          {
!             t_float f;
              if (argc)
              {
***************
*** 146,150 ****
  
  /* -------------------- widget behavior for scalar ------------ */
! void scalar_getbasexy(t_scalar *x, float *basex, float *basey)
  {
      t_template *template = template_findbyname(x->sc_template);
--- 146,150 ----
  
  /* -------------------- widget behavior for scalar ------------ */
! void scalar_getbasexy(t_scalar *x, t_float *basex, t_float *basey)
  {
      t_template *template = template_findbyname(x->sc_template);
***************
*** 161,165 ****
      int x1 = 0x7fffffff, x2 = -0x7fffffff, y1 = 0x7fffffff, y2 = -0x7fffffff;
      t_gobj *y;
!     float basex, basey;
      scalar_getbasexy(x, &basex, &basey);
          /* if someone deleted the template canvas, we're just a point */
--- 161,165 ----
      int x1 = 0x7fffffff, x2 = -0x7fffffff, y1 = 0x7fffffff, y2 = -0x7fffffff;
      t_gobj *y;
!     t_float basex, basey;
      scalar_getbasexy(x, &basex, &basey);
          /* if someone deleted the template canvas, we're just a point */
***************
*** 261,266 ****
      gpointer_setglist(&gp, glist, x);
      SETPOINTER(&at[0], &gp);
!     SETFLOAT(&at[1], (float)dx);
!     SETFLOAT(&at[2], (float)dy);
      template_notify(template, gensym("displace"), 2, at);
      scalar_redraw(x, glist);
--- 261,266 ----
      gpointer_setglist(&gp, glist, x);
      SETPOINTER(&at[0], &gp);
!     SETFLOAT(&at[1], (t_float)dx);
!     SETFLOAT(&at[2], (t_float)dy);
      template_notify(template, gensym("displace"), 2, at);
      scalar_redraw(x, glist);
***************
*** 284,288 ****
      t_canvas *templatecanvas = template_findcanvas(template);
      t_gobj *y;
!     float basex, basey;
      scalar_getbasexy(x, &basex, &basey);
          /* if we don't know how to draw it, make a small rectangle */
--- 284,288 ----
      t_canvas *templatecanvas = template_findcanvas(template);
      t_gobj *y;
!     t_float basex, basey;
      scalar_getbasexy(x, &basex, &basey);
          /* if we don't know how to draw it, make a small rectangle */
***************
*** 328,332 ****
  int scalar_doclick(t_word *data, t_template *template, t_scalar *sc,
      t_array *ap, struct _glist *owner,
!     float xloc, float yloc, int xpix, int ypix,
      int shift, int alt, int dbl, int doit)
  {
--- 328,332 ----
  int scalar_doclick(t_word *data, t_template *template, t_scalar *sc,
      t_array *ap, struct _glist *owner,
!     t_float xloc, t_float yloc, int xpix, int ypix,
      int shift, int alt, int dbl, int doit)
  {
***************
*** 334,339 ****
      t_canvas *templatecanvas = template_findcanvas(template);
      t_gobj *y;
!     float basex = template_getfloat(template, gensym("x"), data, 0);
!     float basey = template_getfloat(template, gensym("y"), data, 0);
      for (y = templatecanvas->gl_list; y; y = y->g_next)
      {
--- 334,339 ----
      t_canvas *templatecanvas = template_findcanvas(template);
      t_gobj *y;
!     t_float basex = template_getfloat(template, gensym("x"), data, 0);
!     t_float basey = template_getfloat(template, gensym("y"), data, 0);
      for (y = templatecanvas->gl_list; y; y = y->g_next)
      {

Index: configure.in
===================================================================
RCS file: /cvsroot/pure-data/pd/src/configure.in,v
retrieving revision 1.25
retrieving revision 1.26
diff -C2 -d -r1.25 -r1.26
*** configure.in	18 Aug 2007 23:32:43 -0000	1.25
--- configure.in	28 Dec 2007 03:43:02 -0000	1.26
***************
*** 8,11 ****
--- 8,12 ----
  AC_SUBST(binarymode, -m755)
  AC_SUBST(fftw, no)
+ AC_SUBST(tk, yes)
  AC_SUBST(PDLIB)
  AC_SUBST(CPPFLAGS)
***************
*** 22,25 ****
--- 23,27 ----
  AC_SUBST(EXTERNTARGET)
  AC_SUBST(ASIOSRC)
+ AC_SUBST(GUISRC)
  
  dnl other defaults
***************
*** 43,46 ****
--- 45,52 ----
  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")
+ AC_ARG_ENABLE(tk,       [  --disable-tk            build without tcl/tk-GUI],
+     tk=$enableval)
  
  dnl Checks for programs.
***************
*** 78,82 ****
  dnl Checking for `sin' function in -lm:
  AC_CHECK_LIB(m, sin,PDLIB="$PDLIB -lm",
! 	         echo "math library required" || exit 1)
  
  dnl Checking for `pthread_create' function in -pthread
--- 84,88 ----
  dnl Checking for `sin' function in -lm:
  AC_CHECK_LIB(m, sin,PDLIB="$PDLIB -lm",
!                  echo "math library required" || exit 1)
  
  dnl Checking for `pthread_create' function in -pthread
***************
*** 88,92 ****
  
  dnl Check for fftw package
! if test x$fftw == "xyes";
  then
  AC_CHECK_LIB(fftw, fftw_one,PDLIB="$PDLIB -lfftw",
--- 94,98 ----
  
  dnl Check for fftw package
! if test x$fftw = "xyes";
  then
  AC_CHECK_LIB(fftw, fftw_one,PDLIB="$PDLIB -lfftw",
***************
*** 97,177 ****
  
  foundit=no
! if test $foundit == "no";
  then
      AC_CHECK_HEADER(tcl.h,foundit=yes,)
  fi
! if test $foundit == "no";
  then
      AC_CHECK_HEADER(tcl8.7/tcl.h,
!     	GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.7";foundit=yes,)
  fi
! if test $foundit == "no";
  then
      AC_CHECK_HEADER(tcl8.6/tcl.h,
!     	GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.6";foundit=yes,)
  fi
! if test $foundit == "no";
  then
      AC_CHECK_HEADER(tcl8.5/tcl.h,
!     	GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.5";foundit=yes,)
  fi
! if test $foundit == "no";
  then
      AC_CHECK_HEADER(tcl8.4/tcl.h,
!     	GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.4";foundit=yes,)
  fi
! 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,)
  fi
! if test $foundit == "no";
  then
      AC_CHECK_HEADER(tcl8.2/tcl.h,
!     	GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.2";foundit=yes,)
  fi
! if test $foundit == "no";
  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
      echo .................... alsa= $alsa
  dnl This should be fixed so Pd can use ALSA shared libraries where appropriate.
!     if test x$alsa == xyes; then
! 	AC_CHECK_LIB(asound,snd_pcm_info,PDLIB="$PDLIB -lasound" ; alsa="yes",alsa="no")
      fi
  
      dnl Checking for JACK
  
!     if test x$jack == xyes; then
          AC_CHECK_LIB(rt,shm_open,LIBS="$LIBS -lrt")
          AC_CHECK_LIB(jack,jack_set_xrun_callback,LIBS="$LIBS -ljack";jack=xrun,jack=no)
--- 103,189 ----
  
  foundit=no
! if test $foundit = "no";
  then
      AC_CHECK_HEADER(tcl.h,foundit=yes,)
  fi
! if test $foundit = "no";
  then
      AC_CHECK_HEADER(tcl8.7/tcl.h,
!         GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.7";foundit=yes,)
  fi
! if test $foundit = "no";
  then
      AC_CHECK_HEADER(tcl8.6/tcl.h,
!         GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.6";foundit=yes,)
  fi
! if test $foundit = "no";
  then
      AC_CHECK_HEADER(tcl8.5/tcl.h,
!         GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.5";foundit=yes,)
  fi
! if test $foundit = "no";
  then
      AC_CHECK_HEADER(tcl8.4/tcl.h,
!         GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.4";foundit=yes,)
  fi
! 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,)
  fi
! if test $foundit = "no";
  then
      AC_CHECK_HEADER(tcl8.2/tcl.h,
!         GUIFLAGS="$GUIFLAGS -I/usr/include/tcl8.2";foundit=yes,)
  fi
! if test $foundit = "no";
  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 x$tk != "xno"; then
! GUISRC="t_main.c t_tkcmd.c"
! else
! GUISRC=
! fi
! 
! if test `uname -s` = Linux;
  then
      dnl Ckecking for ALSA
      echo .................... alsa= $alsa
  dnl This should be fixed so Pd can use ALSA shared libraries where appropriate.
!     if test x$alsa = xyes; then
!         AC_CHECK_LIB(asound,snd_pcm_info,PDLIB="$PDLIB -lasound" ; alsa="yes",alsa="no")
      fi
  
      dnl Checking for JACK
  
!     if test x$jack = xyes; then
          AC_CHECK_LIB(rt,shm_open,LIBS="$LIBS -lrt")
          AC_CHECK_LIB(jack,jack_set_xrun_callback,LIBS="$LIBS -ljack";jack=xrun,jack=no)
***************
*** 185,261 ****
      EXT=pd_linux
      CPPFLAGS="-DDL_OPEN -DPA_USE_OSS -DUNIX -DUNISTD\
!     	-DUSEAPI_OSS \
! 	-fno-strict-aliasing"
      SYSSRC="s_midi_oss.c s_audio_oss.c"
!     if test x$alsa == "xyes";
      then
!     	SYSSRC=$SYSSRC" s_audio_alsa.c s_audio_alsamm.c s_midi_alsa.c"
! 	CPPFLAGS=$CPPFLAGS" -DPA_USE_ALSA -DUSEAPI_ALSA"
! 	LDFLAGS=$LDFLAGS" -lasound"
      fi
  
!     if test x$portaudio == "xyes";
      then
!     	CPPFLAGS=$CPPFLAGS" -DUSEAPI_PORTAUDIO -DHAVE_SYS_SOUNDCARD_H \
! 	-Wno-error \
          -I../portaudio/include -I../portaudio/src/common \
! 	-I../portaudio/src/os/unix/ \
          -I../portmidi/pm_common \
          -I../portmidi/pm_linux"
! 	SYSSRC="s_audio_pa.c \
!     	s_audio_pablio.c     \
! 	s_audio_paring.c     \
! 	../portaudio/src/common/pa_allocation.c  \
! 	../portaudio/src/common/pa_converters.c  \
! 	../portaudio/src/common/pa_cpuload.c     \
! 	../portaudio/src/common/pa_dither.c      \
! 	../portaudio/src/common/pa_front.c       \
! 	../portaudio/src/common/pa_process.c     \
! 	../portaudio/src/common/pa_skeleton.c    \
! 	../portaudio/src/common/pa_stream.c      \
! 	../portaudio/src/common/pa_trace.c       \
! 	../portaudio/src/common/pa_debugprint.c  \
! 	../portaudio/src/common/pa_ringbuffer.c  \
! 	../portaudio/src/os/unix/pa_unix_hostapis.c \
! 	../portaudio/src/os/unix/pa_unix_util.c     \
! 	../portaudio/src/hostapi/oss/pa_unix_oss.c "$SYSSRC
! 	if test x$alsa == "xyes";
! 	then
!     	    SYSSRC="../portaudio/src/hostapi/alsa/pa_linux_alsa.c "$SYSSRC
! 	    CPPFLAGS=$CPPFLAGS" -DPA_USE_ALSA"
! 	fi
! 	if test x$jack == "xyes";
! 	then
!     	    SYSSRC="../portaudio/src/hostapi/jack/pa_jack.c "$SYSSRC
! 	    CPPFLAGS=$CPPFLAGS" -DPA_USE_JACK"
! 	fi
      fi
!     if test x$setuid == "xyes";
      then
!     	binarymode="-m4755"
      fi
      STRIPFLAG=-s
      GUINAME="pd-gui"
!     if test x$USE_DEBUG_CFLAGS == "xyes";
      then
! 	MORECFLAGS=$MORECFLAGS" -g"
      else
! 	MORECFLAGS=$MORECFLAGS" -O6 -funroll-loops -fomit-frame-pointer"
      fi
!     if test x$jack == "xyes";
      then
          LDFLAGS=$LDFLAGS" -lrt -ljack"
      fi
!     if test x$jack == "xrun";
      then
          LDFLAGS=$LDFLAGS" -lrt -ljack"
      fi
  
-     echo MORECFLAGS --------------- $MORECFLAGS
      OSNUMBER=0
  
  fi
  
! if test `uname -s` == Darwin;
  then
      LDFLAGS="-Wl -framework CoreAudio \
--- 197,272 ----
      EXT=pd_linux
      CPPFLAGS="-DDL_OPEN -DPA_USE_OSS -DUNIX -DUNISTD\
!         -DUSEAPI_OSS \
!         -fno-strict-aliasing"
      SYSSRC="s_midi_oss.c s_audio_oss.c"
!     if test x$alsa = "xyes";
      then
!         SYSSRC=$SYSSRC" s_audio_alsa.c s_audio_alsamm.c s_midi_alsa.c"
!         CPPFLAGS=$CPPFLAGS" -DPA_USE_ALSA -DUSEAPI_ALSA"
!         LDFLAGS=$LDFLAGS" -lasound"
      fi
  
!     if test x$portaudio = "xyes";
      then
!         CPPFLAGS=$CPPFLAGS" -DUSEAPI_PORTAUDIO -DHAVE_SYS_SOUNDCARD_H \
!         -Wno-error \
          -I../portaudio/include -I../portaudio/src/common \
!         -I../portaudio/src/os/unix/ \
          -I../portmidi/pm_common \
          -I../portmidi/pm_linux"
!         SYSSRC="s_audio_pa.c \
!         s_audio_pablio.c     \
!         s_audio_paring.c     \
!         ../portaudio/src/common/pa_allocation.c  \
!         ../portaudio/src/common/pa_converters.c  \
!         ../portaudio/src/common/pa_cpuload.c     \
!         ../portaudio/src/common/pa_dither.c      \
!         ../portaudio/src/common/pa_front.c       \
!         ../portaudio/src/common/pa_process.c     \
!         ../portaudio/src/common/pa_skeleton.c    \
!         ../portaudio/src/common/pa_stream.c      \
!         ../portaudio/src/common/pa_trace.c       \
!         ../portaudio/src/common/pa_debugprint.c  \
!         ../portaudio/src/common/pa_ringbuffer.c  \
!         ../portaudio/src/os/unix/pa_unix_hostapis.c \
!         ../portaudio/src/os/unix/pa_unix_util.c     \
!         ../portaudio/src/hostapi/oss/pa_unix_oss.c "$SYSSRC
!         if test x$alsa = "xyes";
!         then
!             SYSSRC="../portaudio/src/hostapi/alsa/pa_linux_alsa.c "$SYSSRC
!             CPPFLAGS=$CPPFLAGS" -DPA_USE_ALSA"
!         fi
!         if test x$jack = "xyes";
!         then
!             SYSSRC="../portaudio/src/hostapi/jack/pa_jack.c "$SYSSRC
!             CPPFLAGS=$CPPFLAGS" -DPA_USE_JACK"
!         fi
      fi
!     if test x$setuid = "xyes";
      then
!         binarymode="-m4755"
      fi
      STRIPFLAG=-s
      GUINAME="pd-gui"
!     if test x$USE_DEBUG_CFLAGS = "xyes";
      then
!         MORECFLAGS=$MORECFLAGS" -g"
      else
!         MORECFLAGS=$MORECFLAGS" -O6 -funroll-loops -fomit-frame-pointer"
      fi
!     if test x$jack = "xyes";
      then
          LDFLAGS=$LDFLAGS" -lrt -ljack"
      fi
!     if test x$jack = "xrun";
      then
          LDFLAGS=$LDFLAGS" -lrt -ljack"
      fi
  
      OSNUMBER=0
  
  fi
  
! if test `uname -s` = Darwin;
  then
      LDFLAGS="-Wl -framework CoreAudio \
***************
*** 264,301 ****
      EXT=pd_darwin
      CPPFLAGS="-DDL_OPEN -DMACOSX -DUNISTD -I/usr/X11R6/include \
! 	-I../portaudio/include -I../portaudio/src/common \
! 	-I../portaudio/src/os/mac_osx/ \
! 	-I../portmidi/pm_common -I../portmidi/pm_mac \
! 	-I../portmidi/porttime \
! 	-DUSEAPI_PORTAUDIO -DPA19 -DPA_USE_COREAUDIO -DNEWBUFFER"
      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 \
!     	s_audio_pablio.c     \
! 	s_audio_paring.c     \
! 	../portaudio/src/common/pa_allocation.c  \
! 	../portaudio/src/common/pa_converters.c  \
! 	../portaudio/src/common/pa_cpuload.c     \
! 	../portaudio/src/common/pa_dither.c      \
! 	../portaudio/src/common/pa_front.c       \
! 	../portaudio/src/common/pa_process.c     \
! 	../portaudio/src/common/pa_skeleton.c    \
! 	../portaudio/src/common/pa_stream.c      \
! 	../portaudio/src/common/pa_trace.c       \
! 	../portaudio/src/common/pa_debugprint.c       \
! 	../portaudio/src/common/pa_ringbuffer.c  \
! 	../portaudio/src/os/unix/pa_unix_util.c     \
! 	../portaudio/src/os/mac_osx/pa_mac_hostapis.c   \
! 	../portaudio/src/hostapi/coreaudio/pa_mac_core.c  \
! 	../portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.c  \
! 	../portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.c  \
          ../portmidi/pm_mac/pmmac.c \
          ../portmidi/pm_mac/pmmacosxcm.c \
--- 275,317 ----
      EXT=pd_darwin
      CPPFLAGS="-DDL_OPEN -DMACOSX -DUNISTD -I/usr/X11R6/include \
!         -I../portaudio/include -I../portaudio/src/common \
!         -I../portaudio/src/os/mac_osx/ \
!         -I../portmidi/pm_common -I../portmidi/pm_mac \
!         -I../portmidi/porttime \
!         -DUSEAPI_PORTAUDIO -DPA19 -DPA_USE_COREAUDIO -DNEWBUFFER"
!     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 -DPA_BIG_ENDIAN -Wno-error"
+         EXTERNTARGET=d_ppc
      fi
      SYSSRC="s_midi_pm.c s_audio_pa.c \
!         s_audio_pablio.c     \
!         s_audio_paring.c     \
!         ../portaudio/src/common/pa_allocation.c  \
!         ../portaudio/src/common/pa_converters.c  \
!         ../portaudio/src/common/pa_cpuload.c     \
!         ../portaudio/src/common/pa_dither.c      \
!         ../portaudio/src/common/pa_front.c       \
!         ../portaudio/src/common/pa_process.c     \
!         ../portaudio/src/common/pa_skeleton.c    \
!         ../portaudio/src/common/pa_stream.c      \
!         ../portaudio/src/common/pa_trace.c       \
!         ../portaudio/src/common/pa_debugprint.c       \
!         ../portaudio/src/common/pa_ringbuffer.c  \
!         ../portaudio/src/os/unix/pa_unix_util.c     \
!         ../portaudio/src/os/mac_osx/pa_mac_hostapis.c   \
!         ../portaudio/src/hostapi/coreaudio/pa_mac_core.c  \
!         ../portaudio/src/hostapi/coreaudio/pa_mac_core_blocking.c  \
!         ../portaudio/src/hostapi/coreaudio/pa_mac_core_utilities.c  \
          ../portmidi/pm_mac/pmmac.c \
          ../portmidi/pm_mac/pmmacosxcm.c \
***************
*** 307,316 ****
  
  # find the Tcl/Tk Frameworks
!  	 if test -d "../../Frameworks";
      then
          # Miller's location
          TCLTK_FRAMEWORKS_PATH="../../Frameworks"
!  	 elif test -d "/Library/Frameworks";
! 	 then
          # get it from the default install location
          TCLTK_FRAMEWORKS_PATH="/Library/Frameworks"
--- 323,332 ----
  
  # find the Tcl/Tk Frameworks
!          if test -d "../../Frameworks";
      then
          # Miller's location
          TCLTK_FRAMEWORKS_PATH="../../Frameworks"
!          elif test -d "/Library/Frameworks";
!          then
          # get it from the default install location
          TCLTK_FRAMEWORKS_PATH="/Library/Frameworks"
***************
*** 318,338 ****
          # Panther has Tcl here; Tiger has Tcl and Tk here
          TCLTK_FRAMEWORKS_PATH="/System/Library/Frameworks"
!     fi		 
      GUIFLAGS="-F$TCLTK_FRAMEWORKS_PATH -framework Tcl -framework Tk \
          -I$TCLTK_FRAMEWORKS_PATH/Tk.framework/Versions/Current/Headers \
          -I$TCLTK_FRAMEWORKS_PATH/Tcl.framework/Versions/Current/Headers \
          -I$TCLTK_FRAMEWORKS_PATH/Tcl.framework/Versions/8.4/PrivateHeaders"
!     if test x$USE_DEBUG_CFLAGS == "xyes";
      then
! 	MORECFLAGS=$MORECFLAGS" -g"
      else
! 	MORECFLAGS=$MORECFLAGS" -O2"
      fi
      OSNUMBER=2
!     if test x$jack == "xyes";
      then
!     	LDFLAGS=$LDFLAGS" -weak_framework Jack"
      fi
!     if test x$jack == "xrun";
      then
          LDFLAGS=$LDFLAGS" -weak_framework Jack"
--- 334,354 ----
          # Panther has Tcl here; Tiger has Tcl and Tk here
          TCLTK_FRAMEWORKS_PATH="/System/Library/Frameworks"
!     fi           
      GUIFLAGS="-F$TCLTK_FRAMEWORKS_PATH -framework Tcl -framework Tk \
          -I$TCLTK_FRAMEWORKS_PATH/Tk.framework/Versions/Current/Headers \
          -I$TCLTK_FRAMEWORKS_PATH/Tcl.framework/Versions/Current/Headers \
          -I$TCLTK_FRAMEWORKS_PATH/Tcl.framework/Versions/8.4/PrivateHeaders"
!     if test x$USE_DEBUG_CFLAGS = "xyes";
      then
!         MORECFLAGS=$MORECFLAGS" -g"
      else
!         MORECFLAGS=$MORECFLAGS" -O2"
      fi
      OSNUMBER=2
!     if test x$jack = "xyes";
      then
!         LDFLAGS=$LDFLAGS" -weak_framework Jack"
      fi
!     if test x$jack = "xrun";
      then
          LDFLAGS=$LDFLAGS" -weak_framework Jack"
***************
*** 343,352 ****
  ASIOSRC=
  
! if test `uname -s` == MINGW32_NT-5.0;
  then
      EXT=dll
      MORECFLAGS="-DUSEAPI_PORTAUDIO -DPA19 -DMSW -DPA_NO_DS -DPD_INTERNAL \
          -I../portaudio/include -I../portaudio/src/common \
! 	-I../portaudio/src/os/win/ \
          -mwindows -mms-bitfields "$MORECFLAGS
      PDLIB=$PDLIB" -lwsock32 -lwinmm -lole32 -lstdc++"
--- 359,368 ----
  ASIOSRC=
  
! if test `uname -s` = MINGW32_NT-5.0;
  then
      EXT=dll
      MORECFLAGS="-DUSEAPI_PORTAUDIO -DPA19 -DMSW -DPA_NO_DS -DPD_INTERNAL \
          -I../portaudio/include -I../portaudio/src/common \
!         -I../portaudio/src/os/win/ \
          -mwindows -mms-bitfields "$MORECFLAGS
      PDLIB=$PDLIB" -lwsock32 -lwinmm -lole32 -lstdc++"
***************
*** 354,375 ****
      SYSSRC="s_audio_pa.c s_audio_pablio.c s_audio_paring.c \
          s_audio_mmio.c s_midi_mmio.c \
! 	../portaudio/src/common/pa_allocation.c  \
! 	../portaudio/src/common/pa_converters.c  \
! 	../portaudio/src/common/pa_cpuload.c     \
! 	../portaudio/src/common/pa_dither.c      \
! 	../portaudio/src/common/pa_front.c       \
! 	../portaudio/src/common/pa_process.c     \
! 	../portaudio/src/common/pa_skeleton.c    \
! 	../portaudio/src/common/pa_stream.c      \
! 	../portaudio/src/common/pa_trace.c       \
! 	../portaudio/src/common/pa_debugprint.c       \
! 	../portaudio/src/common/pa_ringbuffer.c  \
          ../portaudio/src/os/win/pa_win_util.c       \
          ../portaudio/src/os/win/pa_win_hostapis.c   \
          ../portaudio/src/os/win/pa_x86_plain_converters.c   \
          ../portaudio/src/hostapi/wmme/pa_win_wmme.c"
! 	 ASIOSRC="../portaudio/src/hostapi/asio/iasiothiscallresolver.cpp \
! 	 ../portaudio/src/hostapi/pa_asio/asio.cpp ../asio/asio.cpp \
! 	 ../asio/asiodrivers.cpp ../asio/asiolist.cpp"
      STRIPFLAG="--strip-unneeded"
      GUINAME="pdtcl.dll"
--- 370,391 ----
      SYSSRC="s_audio_pa.c s_audio_pablio.c s_audio_paring.c \
          s_audio_mmio.c s_midi_mmio.c \
!         ../portaudio/src/common/pa_allocation.c  \
!         ../portaudio/src/common/pa_converters.c  \
!         ../portaudio/src/common/pa_cpuload.c     \
!         ../portaudio/src/common/pa_dither.c      \
!         ../portaudio/src/common/pa_front.c       \
!         ../portaudio/src/common/pa_process.c     \
!         ../portaudio/src/common/pa_skeleton.c    \
!         ../portaudio/src/common/pa_stream.c      \
!         ../portaudio/src/common/pa_trace.c       \
!         ../portaudio/src/common/pa_debugprint.c       \
!         ../portaudio/src/common/pa_ringbuffer.c  \
          ../portaudio/src/os/win/pa_win_util.c       \
          ../portaudio/src/os/win/pa_win_hostapis.c   \
          ../portaudio/src/os/win/pa_x86_plain_converters.c   \
          ../portaudio/src/hostapi/wmme/pa_win_wmme.c"
!          ASIOSRC="../portaudio/src/hostapi/asio/iasiothiscallresolver.cpp \
!          ../portaudio/src/hostapi/pa_asio/asio.cpp ../asio/asio.cpp \
!          ../asio/asiodrivers.cpp ../asio/asiolist.cpp"
      STRIPFLAG="--strip-unneeded"
      GUINAME="pdtcl.dll"
***************
*** 379,388 ****
  # support for jack, on either linux or darwin:
  
! if test x$jack == "xyes";
  then
      MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK"
      SYSSRC=$SYSSRC" s_audio_jack.c"
  fi
! if test x$jack == "xrun";
  then
      MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK -DJACK_XRUN"
--- 395,404 ----
  # support for jack, on either linux or darwin:
  
! if test x$jack = "xyes";
  then
      MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK"
      SYSSRC=$SYSSRC" s_audio_jack.c"
  fi
! if test x$jack = "xrun";
  then
      MORECFLAGS=$MORECFLAGS" -DUSEAPI_JACK -DJACK_XRUN"
***************
*** 390,394 ****
  fi
  
! if test x$fftw == "xyes";
  then
      SYSSRC=$SYSSRC" d_fft_fftw.c d_fftroutine.c"
--- 406,410 ----
  fi
  
! if test x$fftw = "xyes";
  then
      SYSSRC=$SYSSRC" d_fft_fftw.c d_fftroutine.c"

Index: g_vdial.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_vdial.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** g_vdial.c	8 Sep 2006 23:45:30 -0000	1.6
--- g_vdial.c	28 Dec 2007 03:43:04 -0000	1.7
***************
*** 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 \
***************
*** 348,352 ****
          if((x->x_change)&&(x->x_on != x->x_on_old))
          {
!             SETFLOAT(x->x_at, (float)x->x_on_old);
              SETFLOAT(x->x_at+1, 0.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 348,352 ----
          if((x->x_change)&&(x->x_on != x->x_on_old))
          {
!             SETFLOAT(x->x_at, (t_float)x->x_on_old);
              SETFLOAT(x->x_at+1, 0.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 355,359 ****
          }
          x->x_on_old = x->x_on;
!         SETFLOAT(x->x_at, (float)x->x_on);
          SETFLOAT(x->x_at+1, 1.0);
          outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 355,359 ----
          }
          x->x_on_old = x->x_on;
!         SETFLOAT(x->x_at, (t_float)x->x_on);
          SETFLOAT(x->x_at+1, 1.0);
          outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 383,387 ****
          if((x->x_change)&&(i != x->x_on_old))
          {
!             SETFLOAT(x->x_at, (float)x->x_on_old);
              SETFLOAT(x->x_at+1, 0.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 383,387 ----
          if((x->x_change)&&(i != x->x_on_old))
          {
!             SETFLOAT(x->x_at, (t_float)x->x_on_old);
              SETFLOAT(x->x_at+1, 0.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 394,398 ****
          (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
          x->x_on_old = x->x_on;
!         SETFLOAT(x->x_at, (float)x->x_on);
          SETFLOAT(x->x_at+1, 1.0);
          outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 394,398 ----
          (*x->x_gui.x_draw)(x, x->x_gui.x_glist, IEM_GUI_DRAW_MODE_UPDATE);
          x->x_on_old = x->x_on;
!         SETFLOAT(x->x_at, (t_float)x->x_on);
          SETFLOAT(x->x_at+1, 1.0);
          outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 427,431 ****
              if(x->x_gui.x_fsf.x_put_in2out)
              {
!                 SETFLOAT(x->x_at, (float)x->x_on_old);
                  SETFLOAT(x->x_at+1, 0.0);
                  outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 427,431 ----
              if(x->x_gui.x_fsf.x_put_in2out)
              {
!                 SETFLOAT(x->x_at, (t_float)x->x_on_old);
                  SETFLOAT(x->x_at+1, 0.0);
                  outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 441,445 ****
          if(x->x_gui.x_fsf.x_put_in2out)
          {
!             SETFLOAT(x->x_at, (float)x->x_on);
              SETFLOAT(x->x_at+1, 1.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
--- 441,445 ----
          if(x->x_gui.x_fsf.x_put_in2out)
          {
!             SETFLOAT(x->x_at, (t_float)x->x_on);
              SETFLOAT(x->x_at+1, 1.0);
              outlet_list(x->x_gui.x_obj.ob_outlet, &s_list, 2, x->x_at);
***************
*** 467,471 ****
      int yy =  (int)ypos - text_ypix(&x->x_gui.x_obj, x->x_gui.x_glist);
  
!     vradio_fout(x, (float)(yy / x->x_gui.x_h));
  }
  
--- 467,471 ----
      int yy =  (int)ypos - text_ypix(&x->x_gui.x_obj, x->x_gui.x_glist);
  
!     vradio_fout(x, (t_float)(yy / x->x_gui.x_h));
  }
  
***************
*** 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.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** s_inter.c	18 Aug 2007 23:32:44 -0000	1.20
--- s_inter.c	28 Dec 2007 03:43:06 -0000	1.21
***************
*** 91,95 ****
  extern char *pd_version;
  extern int sys_guisetportnumber;
- extern char sys_font[]; /* tb: typeface */
  
  static int sys_nfdpoll;
--- 91,94 ----
***************
*** 850,854 ****
  #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};
--- 849,854 ----
  #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};
***************
*** 1238,1242 ****
              (socklen_t *)&len);
  #ifdef OOPS
!         close(xsock);
  #endif
          if (sys_guisock < 0) sys_sockerror("accept");
--- 1238,1242 ----
              (socklen_t *)&len);
  #ifdef OOPS
!         sys_closesocket(xsock);
  #endif
          if (sys_guisock < 0) sys_sockerror("accept");
***************
*** 1258,1263 ****
           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);
--- 1258,1263 ----
           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);
***************
*** 1293,1297 ****
      if (!sys_nogui)
      {
!         close(sys_guisock);
          sys_rmpollfn(sys_guisock);
      }
--- 1293,1297 ----
      if (!sys_nogui)
      {
!         sys_closesocket(sys_guisock);
          sys_rmpollfn(sys_guisock);
      }

Index: d_delay.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_delay.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** d_delay.c	28 Nov 2004 21:20:42 -0000	1.3
--- d_delay.c	28 Dec 2007 03:43:03 -0000	1.4
***************
*** 17,21 ****
  {
      int c_n;
!     float *c_vec;
      int c_phase;
  } t_delwritectl;
--- 17,21 ----
  {
      int c_n;
!     t_sample *c_vec;
      int c_phase;
  } t_delwritectl;
***************
*** 29,33 ****
      int x_rsortno;  /* DSP sort # for first delread or write in chain */
      int x_vecsize;  /* vector size for delread~ to use */
!     float x_f;
  } t_sigdelwrite;
  
--- 29,33 ----
      int x_rsortno;  /* DSP sort # for first delread or write in chain */
      int x_vecsize;  /* vector size for delread~ to use */
!     t_float x_f;
  } t_sigdelwrite;
  
***************
*** 60,64 ****
      pd_bind(&x->x_obj.ob_pd, s);
      x->x_sym = s;
!     nsamps = msec * sys_getsr() * (float)(0.001f);
      if (nsamps < 1) nsamps = 1;
      nsamps += ((- nsamps) & (SAMPBLK - 1));
--- 60,64 ----
      pd_bind(&x->x_obj.ob_pd, s);
      x->x_sym = s;
!     nsamps = msec * sys_getsr() * (t_float)(0.001f);
      if (nsamps < 1) nsamps = 1;
      nsamps += ((- nsamps) & (SAMPBLK - 1));
***************
*** 66,70 ****
      x->x_cspace.c_n = nsamps;
      x->x_cspace.c_vec =
!         (float *)getbytes((nsamps + XTRASAMPS) * sizeof(float));
      x->x_cspace.c_phase = XTRASAMPS;
      x->x_sortno = 0;
--- 66,70 ----
      x->x_cspace.c_n = nsamps;
      x->x_cspace.c_vec =
!         (t_sample *)getbytes((nsamps + XTRASAMPS) * sizeof(t_sample));
      x->x_cspace.c_phase = XTRASAMPS;
      x->x_sortno = 0;
***************
*** 76,88 ****
  static t_int *sigdelwrite_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
      t_delwritectl *c = (t_delwritectl *)(w[2]);
      int n = (int)(w[3]);
      int phase = c->c_phase, nsamps = c->c_n;
!     float *vp = c->c_vec, *bp = vp + phase, *ep = vp + (c->c_n + XTRASAMPS);
      phase += n;
      while (n--)
      {
!         float f = *in++;
          if (PD_BIGORSMALL(f))
              f = 0;
--- 76,89 ----
  static t_int *sigdelwrite_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      t_delwritectl *c = (t_delwritectl *)(w[2]);
      int n = (int)(w[3]);
      int phase = c->c_phase, nsamps = c->c_n;
!     t_sample *vp = c->c_vec, *bp = vp + phase, *ep = vp + (c->c_n + XTRASAMPS);
      phase += n;
+ 
      while (n--)
      {
!         t_sample f = *in++;
          if (PD_BIGORSMALL(f))
              f = 0;
***************
*** 98,101 ****
--- 99,104 ----
          }
      }
+     bp = vp + c->c_phase;
+ 
      c->c_phase = phase; 
      return (w+4);
***************
*** 113,117 ****
      pd_unbind(&x->x_obj.ob_pd, x->x_sym);
      freebytes(x->x_cspace.c_vec,
!         (x->x_cspace.c_n + XTRASAMPS) * sizeof(float));
  }
  
--- 116,120 ----
      pd_unbind(&x->x_obj.ob_pd, x->x_sym);
      freebytes(x->x_cspace.c_vec,
!         (x->x_cspace.c_n + XTRASAMPS) * sizeof(t_sample));
  }
  
***************
*** 173,185 ****
  static t_int *sigdelread_perform(t_int *w)
  {
!     t_float *out = (t_float *)(w[1]);
      t_delwritectl *c = (t_delwritectl *)(w[2]);
      int delsamps = *(int *)(w[3]);
      int n = (int)(w[4]);
      int phase = c->c_phase - delsamps, nsamps = c->c_n;
!     float *vp = c->c_vec, *bp, *ep = vp + (c->c_n + XTRASAMPS);
! 
      if (phase < 0) phase += nsamps;
      bp = vp + phase;
      while (n--)
      {
--- 176,188 ----
  static t_int *sigdelread_perform(t_int *w)
  {
!     t_sample *out = (t_sample *)(w[1]);
      t_delwritectl *c = (t_delwritectl *)(w[2]);
      int delsamps = *(int *)(w[3]);
      int n = (int)(w[4]);
      int phase = c->c_phase - delsamps, nsamps = c->c_n;
!     t_sample *vp = c->c_vec, *bp, *ep = vp + (c->c_n + XTRASAMPS);
      if (phase < 0) phase += nsamps;
      bp = vp + phase;
+ 
      while (n--)
      {
***************
*** 229,233 ****
      t_float x_sr;       /* samples per msec */
      int x_zerodel;      /* 0 or vecsize depending on read/write order */
!     float x_f;
  } t_sigvd;
  
--- 232,236 ----
      t_float x_sr;       /* samples per msec */
      int x_zerodel;      /* 0 or vecsize depending on read/write order */
!     t_float x_f;
  } t_sigvd;
  
***************
*** 246,251 ****
  static t_int *sigvd_perform(t_int *w)
  {
!     t_float *in = (t_float *)(w[1]);
!     t_float *out = (t_float *)(w[2]);
      t_delwritectl *ctl = (t_delwritectl *)(w[3]);
      t_sigvd *x = (t_sigvd *)(w[4]);
--- 249,254 ----
  static t_int *sigvd_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      t_delwritectl *ctl = (t_delwritectl *)(w[3]);
      t_sigvd *x = (t_sigvd *)(w[4]);
***************
*** 253,265 ****
  
      int nsamps = ctl->c_n;
!     float limit = nsamps - n - 1;
!     float fn = n-1;
!     float *vp = ctl->c_vec, *bp, *wp = vp + ctl->c_phase;
!     float zerodel = x->x_zerodel;
      while (n--)
      {
!         float delsamps = x->x_sr * *in++ - zerodel, frac;
          int idelsamps;
!         float a, b, c, d, cminusb;
          if (delsamps < 1.00001f) delsamps = 1.00001f;
          if (delsamps > limit) delsamps = limit;
--- 256,268 ----
  
      int nsamps = ctl->c_n;
!     t_sample limit = nsamps - n - 1;
!     t_sample fn = n-1;
!     t_sample *vp = ctl->c_vec, *bp, *wp = vp + ctl->c_phase;
!     t_sample zerodel = x->x_zerodel;
      while (n--)
      {
!         t_sample delsamps = x->x_sr * *in++ - zerodel, frac;
          int idelsamps;
!         t_sample a, b, c, d, cminusb;
          if (delsamps < 1.00001f) delsamps = 1.00001f;
          if (delsamps > limit) delsamps = limit;
***************
*** 267,271 ****
          fn = fn - 1.0f;
          idelsamps = delsamps;
!         frac = delsamps - (float)idelsamps;
          bp = wp - idelsamps;
          if (bp < vp + 4) bp += nsamps;
--- 270,274 ----
          fn = fn - 1.0f;
          idelsamps = delsamps;
!         frac = delsamps - (t_sample)idelsamps;
          bp = wp - idelsamps;
          if (bp < vp + 4) bp += nsamps;

Index: d_fft.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_fft.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** d_fft.c	3 Jun 2006 19:13:07 -0000	1.4
--- d_fft.c	28 Dec 2007 03:43:03 -0000	1.5
***************
*** 17,26 ****
  static t_int *sigfft_swap(t_int *w)
  {
!     float *in1 = (t_float *)(w[1]);
!     float *in2 = (t_float *)(w[2]);
      int n = w[3];
      for (;n--; in1++, in2++)
      {   
!         float f = *in1;
          *in1 = *in2;
          *in2 = f;
--- 17,26 ----
  static t_int *sigfft_swap(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
      int n = w[3];
      for (;n--; in1++, in2++)
      {   
!         t_sample f = *in1;
          *in1 = *in2;
          *in2 = f;
***************
*** 35,40 ****
  static t_int *sigrfft_flip(t_int *w)
  {
!     float *in = (t_float *)(w[1]);
!     float *out = (t_float *)(w[2]);
      int n = w[3];
      while (n--)
--- 35,40 ----
  static t_int *sigrfft_flip(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      int n = w[3];
      while (n--)
***************
*** 49,53 ****
  {
      t_object x_obj;
!     float x_f;
  } t_sigfft;
  
--- 49,53 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_sigfft;
  
***************
*** 74,79 ****
  static t_int *sigfft_perform(t_int *w)
  {
!     float *in1 = (t_float *)(w[1]);
!     float *in2 = (t_float *)(w[2]);
      int n = w[3];
      mayer_fft(n, in1, in2);
--- 74,79 ----
  static t_int *sigfft_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
      int n = w[3];
      mayer_fft(n, in1, in2);
***************
*** 83,88 ****
  static t_int *sigifft_perform(t_int *w)
  {
!     float *in1 = (t_float *)(w[1]);
!     float *in2 = (t_float *)(w[2]);
      int n = w[3];
      mayer_ifft(n, in1, in2);
--- 83,88 ----
  static t_int *sigifft_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
      int n = w[3];
      mayer_ifft(n, in1, in2);
***************
*** 93,100 ****
  {
      int n = sp[0]->s_n;
!     float *in1 = sp[0]->s_vec;
!     float *in2 = sp[1]->s_vec;
!     float *out1 = sp[2]->s_vec;
!     float *out2 = sp[3]->s_vec;
      if (out1 == in2 && out2 == in1)
          dsp_add(sigfft_swap, 3, out1, out2, n);
--- 93,100 ----
  {
      int n = sp[0]->s_n;
!     t_sample *in1 = sp[0]->s_vec;
!     t_sample *in2 = sp[1]->s_vec;
!     t_sample *out1 = sp[2]->s_vec;
!     t_sample *out2 = sp[3]->s_vec;
      if (out1 == in2 && out2 == in1)
          dsp_add(sigfft_swap, 3, out1, out2, n);
***************
*** 143,147 ****
  {
      t_object x_obj;
!     float x_f;
  } t_sigrfft;
  
--- 143,147 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_sigrfft;
  
***************
*** 157,161 ****
  static t_int *sigrfft_perform(t_int *w)
  {
!     float *in = (t_float *)(w[1]);
      int n = w[2];
      mayer_realfft(n, in);
--- 157,161 ----
  static t_int *sigrfft_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      int n = w[2];
      mayer_realfft(n, in);
***************
*** 166,172 ****
  {
      int n = sp[0]->s_n, n2 = (n>>1);
!     float *in1 = sp[0]->s_vec;
!     float *out1 = sp[1]->s_vec;
!     float *out2 = sp[2]->s_vec;
      if (n < 4)
      {
--- 166,172 ----
  {
      int n = sp[0]->s_n, n2 = (n>>1);
!     t_sample *in1 = sp[0]->s_vec;
!     t_sample *out1 = sp[1]->s_vec;
!     t_sample *out2 = sp[2]->s_vec;
      if (n < 4)
      {
***************
*** 200,204 ****
  {
      t_object x_obj;
!     float x_f;
  } t_sigrifft;
  
--- 200,204 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_sigrifft;
  
***************
*** 214,218 ****
  static t_int *sigrifft_perform(t_int *w)
  {
!     float *in = (t_float *)(w[1]);
      int n = w[2];
      mayer_realifft(n, in);
--- 214,218 ----
  static t_int *sigrifft_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
      int n = w[2];
      mayer_realifft(n, in);
***************
*** 223,229 ****
  {
      int n = sp[0]->s_n, n2 = (n>>1);
!     float *in1 = sp[0]->s_vec;
!     float *in2 = sp[1]->s_vec;
!     float *out1 = sp[2]->s_vec;
      if (n < 4)
      {
--- 223,229 ----
  {
      int n = sp[0]->s_n, n2 = (n>>1);
!     t_sample *in1 = sp[0]->s_vec;
!     t_sample *in2 = sp[1]->s_vec;
!     t_sample *out1 = sp[2]->s_vec;
      if (n < 4)
      {
***************
*** 260,264 ****
  {
      t_object x_obj;
!     float x_f;
  } t_sigframp;
  
--- 260,264 ----
  {
      t_object x_obj;
!     t_float x_f;
  } t_sigframp;
  
***************
*** 275,287 ****
  static t_int *sigframp_perform(t_int *w)
  {
!     float *inreal = (t_float *)(w[1]);
!     float *inimag = (t_float *)(w[2]);
!     float *outfreq = (t_float *)(w[3]);
!     float *outamp = (t_float *)(w[4]);
!     float lastreal = 0, currentreal = inreal[0], nextreal = inreal[1];
!     float lastimag = 0, currentimag = inimag[0], nextimag = inimag[1];
      int n = w[5];
      int m = n + 1;
!     float fbin = 1, oneovern2 = 1.f/((float)n * (float)n);
      
      inreal += 2;
--- 275,287 ----
  static t_int *sigframp_perform(t_int *w)
  {
!     t_sample *inreal = (t_sample *)(w[1]);
!     t_sample *inimag = (t_sample *)(w[2]);
!     t_sample *outfreq = (t_sample *)(w[3]);
!     t_sample *outamp = (t_sample *)(w[4]);
!     t_sample lastreal = 0, currentreal = inreal[0], nextreal = inreal[1];
!     t_sample lastimag = 0, currentimag = inimag[0], nextimag = inimag[1];
      int n = w[5];
      int m = n + 1;
!     t_sample fbin = 1, oneovern2 = 1.f/((t_sample)n * (t_sample)n);
      
      inreal += 2;
***************
*** 291,295 ****
      while (n--)
      {
!         float re, im, pow, freq;
          lastreal = currentreal;
          currentreal = nextreal;
--- 291,295 ----
      while (n--)
      {
!         t_sample re, im, pow, freq;
          lastreal = currentreal;
          currentreal = nextreal;
***************
*** 303,307 ****
          if (pow > 1e-19)
          {
!             float detune = ((lastreal - nextreal) * re +
                      (lastimag - nextimag) * im) / (2.0f * pow);
              if (detune > 2 || detune < -2) freq = pow = 0;
--- 303,307 ----
          if (pow > 1e-19)
          {
!             t_sample detune = ((lastreal - nextreal) * re +
                      (lastimag - nextimag) * im) / (2.0f * pow);
              if (detune > 2 || detune < -2) freq = pow = 0;

Index: m_pd.h
===================================================================
RCS file: /cvsroot/pure-data/pd/src/m_pd.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** m_pd.h	18 Aug 2007 23:32:43 -0000	1.20
--- m_pd.h	28 Dec 2007 03:43:05 -0000	1.21
***************
*** 12,16 ****
  #define PD_MINOR_VERSION 41
  #define PD_BUGFIX_VERSION 0
! #define PD_TEST_VERSION "test06"
  
  /* old name for "MSW" flag -- we have to take it for the sake of many old
--- 12,16 ----
  #define PD_MINOR_VERSION 41
  #define PD_BUGFIX_VERSION 0
! #define PD_TEST_VERSION "test10"
  
  /* old name for "MSW" flag -- we have to take it for the sake of many old
***************
*** 369,372 ****
--- 369,374 ----
      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);
***************
*** 480,484 ****
      int s_n;            /* number of points in the array */
      t_sample *s_vec;    /* the array */
!     float s_sr;         /* sample rate */
      int s_refcount;     /* number of times used */
      int s_isborrowed;   /* whether we're going to borrow our array */
--- 482,486 ----
      int s_n;            /* number of points in the array */
      t_sample *s_vec;    /* the array */
!     t_float s_sr;         /* sample rate */
      int s_refcount;     /* number of times used */
      int s_isborrowed;   /* whether we're going to borrow our array */
***************
*** 497,505 ****
  EXTERN void dsp_add_plus(t_sample *in1, t_sample *in2, t_sample *out, int n);
  EXTERN void dsp_add_copy(t_sample *in, t_sample *out, int n);
! EXTERN void dsp_add_scalarcopy(t_sample *in, t_sample *out, int n);
  EXTERN void dsp_add_zero(t_sample *out, int n);
  
  EXTERN int sys_getblksize(void);
! EXTERN float sys_getsr(void);
  EXTERN int sys_get_inchannels(void);
  EXTERN int sys_get_outchannels(void);
--- 499,507 ----
  EXTERN void dsp_add_plus(t_sample *in1, t_sample *in2, t_sample *out, int n);
  EXTERN void dsp_add_copy(t_sample *in, t_sample *out, int n);
! EXTERN void dsp_add_scalarcopy(t_float *in, t_sample *out, int n);
  EXTERN void dsp_add_zero(t_sample *out, int n);
  
  EXTERN int sys_getblksize(void);
! EXTERN t_float sys_getsr(void);
  EXTERN int sys_get_inchannels(void);
  EXTERN int sys_get_outchannels(void);
***************
*** 507,518 ****
  EXTERN void dsp_add(t_perfroutine f, int n, ...);
  EXTERN void dsp_addv(t_perfroutine f, int n, t_int *vec);
! EXTERN void pd_fft(float *buf, int npoints, int inverse);
  EXTERN int ilog2(int n);
  
! EXTERN void mayer_fht(float *fz, int n);
! EXTERN void mayer_fft(int n, float *real, float *imag);
! EXTERN void mayer_ifft(int n, float *real, float *imag);
! EXTERN void mayer_realfft(int n, float *real);
! EXTERN void mayer_realifft(int n, float *real);
  
  EXTERN float *cos_table;
--- 509,520 ----
  EXTERN void dsp_add(t_perfroutine f, int n, ...);
  EXTERN void dsp_addv(t_perfroutine f, int n, t_int *vec);
! EXTERN void pd_fft(t_float *buf, int npoints, int inverse);
  EXTERN int ilog2(int n);
  
! EXTERN void mayer_fht(t_sample *fz, int n);
! EXTERN void mayer_fft(int n, t_sample *real, t_sample *imag);
! EXTERN void mayer_ifft(int n, t_sample *real, t_sample *imag);
! EXTERN void mayer_realfft(int n, t_sample *real);
! EXTERN void mayer_realifft(int n, t_sample *real);
  
  EXTERN float *cos_table;
***************
*** 533,543 ****
    t_int upsample;   /* upsampling factor */
  
!   t_float *s_vec;   /* here we hold the resampled data */
    int      s_n;
  
!   t_float *coeffs;  /* coefficients for filtering... */
    int      coefsize;
  
!   t_float *buffer;  /* buffer for filtering */
    int      bufsize;
  } t_resample;
--- 535,545 ----
    t_int upsample;   /* upsampling factor */
  
!   t_sample *s_vec;   /* here we hold the resampled data */
    int      s_n;
  
!   t_sample *coeffs;  /* coefficients for filtering... */
    int      coefsize;
  
!   t_sample *buffer;  /* buffer for filtering */
    int      bufsize;
  } t_resample;
***************
*** 551,566 ****
  
  /* ----------------------- utility functions for signals -------------- */
! EXTERN float mtof(float);
! EXTERN float ftom(float);
! EXTERN float rmstodb(float);
! EXTERN float powtodb(float);
! EXTERN float dbtorms(float);
! EXTERN float dbtopow(float);
  
! EXTERN float q8_sqrt(float);
! EXTERN float q8_rsqrt(float);
  #ifndef N32     
! EXTERN float qsqrt(float);  /* old names kept for extern compatibility */
! EXTERN float qrsqrt(float);
  #endif
  /* --------------------- data --------------------------------- */
--- 553,568 ----
  
  /* ----------------------- utility functions for signals -------------- */
! EXTERN t_float mtof(t_float);
! EXTERN t_float ftom(t_float);
! EXTERN t_float rmstodb(t_float);
! EXTERN t_float powtodb(t_float);
! EXTERN t_float dbtorms(t_float);
! EXTERN t_float dbtopow(t_float);
  
! EXTERN t_float q8_sqrt(t_float);
! EXTERN t_float q8_rsqrt(t_float);
  #ifndef N32     
! EXTERN t_float qsqrt(t_float);  /* old names kept for extern compatibility */
! EXTERN t_float qrsqrt(t_float);
  #endif
  /* --------------------- data --------------------------------- */
***************
*** 573,577 ****
  EXTERN int garray_getfloatarray(t_garray *x, int *size, t_float **vec);
  EXTERN int garray_getfloatwords(t_garray *x, int *size, t_word **vec);
! EXTERN float garray_get(t_garray *x, t_symbol *s, t_int indx);
  EXTERN void garray_redraw(t_garray *x);
  EXTERN int garray_npoints(t_garray *x);
--- 575,579 ----
  EXTERN int garray_getfloatarray(t_garray *x, int *size, t_float **vec);
  EXTERN int garray_getfloatwords(t_garray *x, int *size, t_word **vec);
! EXTERN t_float garray_get(t_garray *x, t_symbol *s, t_int indx);
  EXTERN void garray_redraw(t_garray *x);
  EXTERN int garray_npoints(t_garray *x);
***************
*** 623,627 ****
  #define PD_USE_TE_XPIX
  
- 
  #if defined(__i386__) || defined(__x86_64__)
  /* a test for NANs and denormals.  Should only be necessary on i386. */
--- 625,628 ----

Index: g_graph.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_graph.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** g_graph.c	22 Oct 2006 21:46:11 -0000	1.11
--- g_graph.c	28 Dec 2007 03:43:04 -0000	1.12
***************
*** 182,190 ****
  }
  
! static float gobj_getxforsort(t_gobj *g)
  {
      if (pd_class(&g->g_pd) == scalar_class)
      {
!         float x1, y1;
          scalar_getbasexy((t_scalar *)g, &x1, &y1);
          return(x1);
--- 182,190 ----
  }
  
! static t_float gobj_getxforsort(t_gobj *g)
  {
      if (pd_class(&g->g_pd) == scalar_class)
      {
!         t_float x1, y1;
          scalar_getbasexy((t_scalar *)g, &x1, &y1);
          return(x1);
***************
*** 196,200 ****
  {
      t_gobj *g = 0, *g9 = 0;
!     float f1 = 0, f2 = 0;
      if (g1)
          f1 = gobj_getxforsort(g1);
--- 196,200 ----
  {
      t_gobj *g = 0, *g9 = 0;
!     t_float f1 = 0, f2 = 0;
      if (g1)
          f1 = gobj_getxforsort(g1);
***************
*** 258,266 ****
  {
      int nitems = 0, foo = 0;
!     float lastx = -1e37;
      t_gobj *g;
      for (g = x->gl_list; g; g = g->g_next)
      {
!         float x1 = gobj_getxforsort(g);
          if (x1 < lastx)
              foo = 1;
--- 258,266 ----
  {
      int nitems = 0, foo = 0;
!     t_float lastx = -1e37;
      t_gobj *g;
      for (g = x->gl_list; g; g = g->g_next)
      {
!         t_float x1 = gobj_getxforsort(g);
          if (x1 < lastx)
              foo = 1;
***************
*** 506,510 ****
  
      /* convert an x pixel value to an x coordinate value */
! float glist_pixelstox(t_glist *x, float xpix)
  {
          /* if we appear as a text box on parent, our range in our
--- 506,510 ----
  
      /* convert an x pixel value to an x coordinate value */
! t_float glist_pixelstox(t_glist *x, t_float xpix)
  {
          /* if we appear as a text box on parent, our range in our
***************
*** 534,538 ****
  }
  
! float glist_pixelstoy(t_glist *x, float ypix)
  {
      if (!x->gl_isgraph)
--- 534,538 ----
  }
  
! t_float glist_pixelstoy(t_glist *x, t_float ypix)
  {
      if (!x->gl_isgraph)
***************
*** 553,557 ****
  
      /* convert an x coordinate value to an x pixel location in window */
! float glist_xtopixels(t_glist *x, float xval)
  {
      if (!x->gl_isgraph)
--- 553,557 ----
  
      /* convert an x coordinate value to an x pixel location in window */
! t_float glist_xtopixels(t_glist *x, t_float xval)
  {
      if (!x->gl_isgraph)
***************
*** 570,574 ****
  }
  
! float glist_ytopixels(t_glist *x, float yval)
  {
      if (!x->gl_isgraph)
--- 570,574 ----
  }
  
! t_float glist_ytopixels(t_glist *x, t_float yval)
  {
      if (!x->gl_isgraph)
***************
*** 590,599 ****
        This is terribly inefficient;
        but probably not a big enough CPU hog to warrant optimizing. */
! float glist_dpixtodx(t_glist *x, float dxpix)
  { 
      return (dxpix * (glist_pixelstox(x, 1) - glist_pixelstox(x, 0)));
  }
  
! float glist_dpixtody(t_glist *x, float dypix)
  {
      return (dypix * (glist_pixelstoy(x, 1) - glist_pixelstoy(x, 0)));
--- 590,599 ----
        This is terribly inefficient;
        but probably not a big enough CPU hog to warrant optimizing. */
! t_float glist_dpixtodx(t_glist *x, t_float dxpix)
  { 
      return (dxpix * (glist_pixelstox(x, 1) - glist_pixelstox(x, 0)));
  }
  
! t_float glist_dpixtody(t_glist *x, t_float dypix)
  {
      return (dypix * (glist_pixelstoy(x, 1) - glist_pixelstoy(x, 0)));
***************
*** 724,728 ****
      {
          int i;
!         float f;
          t_gobj *g;
          t_symbol *arrayname;
--- 724,728 ----
      {
          int i;
!         t_float f;
          t_gobj *g;
          t_symbol *arrayname;
***************
*** 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);
          }
          
--- 742,748 ----
              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);
          }
          
***************
*** 751,755 ****
          if (x->gl_xtick.k_lperb)
          {
!             float upix, lpix;
              if (y2 < y1)
                  upix = y1, lpix = y2;
--- 751,755 ----
          if (x->gl_xtick.k_lperb)
          {
!             t_float upix, lpix;
              if (y2 < y1)
                  upix = y1, lpix = y2;
***************
*** 788,792 ****
          if (x->gl_ytick.k_lperb)
          {
!             float ubound, lbound;
              if (x->gl_y2 < x->gl_y1)
                  ubound = x->gl_y1, lbound = x->gl_y2;
--- 788,792 ----
          if (x->gl_ytick.k_lperb)
          {
!             t_float ubound, lbound;
              if (x->gl_y2 < x->gl_y1)
                  ubound = x->gl_y1, lbound = x->gl_y2;
***************
*** 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 */
--- 824,843 ----
          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 */
***************
*** 991,1000 ****
  }
  
! static float graph_lastxpix, graph_lastypix;
  
  static void graph_motion(void *z, t_floatarg dx, t_floatarg dy)
  {
      t_glist *x = (t_glist *)z;
!     float newxpix = graph_lastxpix + dx, newypix = graph_lastypix + dy;
      t_garray *a = (t_garray *)(x->gl_list);
      int oldx = 0.5 + glist_pixelstox(x, graph_lastxpix);
--- 992,1001 ----
  }
  
! static t_float graph_lastxpix, graph_lastypix;
  
  static void graph_motion(void *z, t_floatarg dx, t_floatarg dy)
  {
      t_glist *x = (t_glist *)z;
!     t_float newxpix = graph_lastxpix + dx, newypix = graph_lastypix + dy;
      t_garray *a = (t_garray *)(x->gl_list);
      int oldx = 0.5 + glist_pixelstox(x, graph_lastxpix);
***************
*** 1002,1007 ****
      t_word *vec;
      int nelem, i;
!     float oldy = glist_pixelstoy(x, graph_lastypix);
!     float newy = glist_pixelstoy(x, newypix);
      graph_lastxpix = newxpix;
      graph_lastypix = newypix;
--- 1003,1008 ----
      t_word *vec;
      int nelem, i;
!     t_float oldy = glist_pixelstoy(x, graph_lastypix);
!     t_float newy = glist_pixelstoy(x, newypix);
      graph_lastxpix = newxpix;
      graph_lastypix = newypix;
***************
*** 1021,1025 ****
          for (i = oldx + 1; i <= newx; i++)
              vec[i].w_float = newy + (oldy - newy) *
!                 ((float)(newx - i))/(float)(newx - oldx);
      }
      else if (oldx > newx + 1)
--- 1022,1026 ----
          for (i = oldx + 1; i <= newx; i++)
              vec[i].w_float = newy + (oldy - newy) *
!                 ((t_float)(newx - i))/(t_float)(newx - oldx);
      }
      else if (oldx > newx + 1)
***************
*** 1027,1031 ****
          for (i = oldx - 1; i >= newx; i--)
              vec[i].w_float = newy + (oldy - newy) *
!                 ((float)(newx - i))/(float)(newx - oldx);
      }
      else vec[newx].w_float = newy;
--- 1028,1032 ----
          for (i = oldx - 1; i >= newx; i--)
              vec[i].w_float = newy + (oldy - newy) *
!                 ((t_float)(newx - i))/(t_float)(newx - oldx);
      }
      else vec[newx].w_float = newy;

Index: d_filter.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_filter.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** d_filter.c	29 Jul 2005 19:01:19 -0000	1.5
--- d_filter.c	28 Dec 2007 03:43:03 -0000	1.6
***************
*** 12,17 ****
  typedef struct hipctl
  {
!     float c_x;
!     float c_coef;
  } t_hipctl;
  
--- 12,17 ----
  typedef struct hipctl
  {
!     t_sample c_x;
!     t_sample c_coef;
  } t_hipctl;
  
***************
*** 19,27 ****
  {
      t_object x_obj;
!     float x_sr;
!     float x_hz;
      t_hipctl x_cspace;
      t_hipctl *x_ctl;
!     float x_f;
  } t_sighip;
  
--- 19,27 ----
  {
      t_object x_obj;
!     t_float x_sr;
!     t_float x_hz;
      t_hipctl x_cspace;
      t_hipctl *x_ctl;
!     t_float x_f;
  } t_sighip;
  
***************
*** 55,70 ****
  static t_int *sighip_perform(t_int *w)
  {
!     float *in = (float *)(w[1]);
!     float *out = (float *)(w[2]);
      t_hipctl *c = (t_hipctl *)(w[3]);
      int n = (t_int)(w[4]);
      int i;
!     float last = c->c_x;
!     float coef = c->c_coef;
      if (coef < 1)
      {
          for (i = 0; i < n; i++)
          {
!             float new = *in++ + coef * last;
              *out++ = new - last;
              last = new;
--- 55,70 ----
  static t_int *sighip_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      t_hipctl *c = (t_hipctl *)(w[3]);
      int n = (t_int)(w[4]);
      int i;
!     t_sample last = c->c_x;
!     t_sample coef = c->c_coef;
      if (coef < 1)
      {
          for (i = 0; i < n; i++)
          {
!             t_sample new = *in++ + coef * last;
              *out++ = new - last;
              last = new;
***************
*** 113,118 ****
  typedef struct lopctl
  {
!     float c_x;
!     float c_coef;
  } t_lopctl;
  
--- 113,118 ----
  typedef struct lopctl
  {
!     t_sample c_x;
!     t_sample c_coef;
  } t_lopctl;
  
***************
*** 120,128 ****
  {
      t_object x_obj;
!     float x_sr;
!     float x_hz;
      t_lopctl x_cspace;
      t_lopctl *x_ctl;
!     float x_f;
  } t_siglop;
  
--- 120,128 ----
  {
      t_object x_obj;
!     t_float x_sr;
!     t_float x_hz;
      t_lopctl x_cspace;
      t_lopctl *x_ctl;
!     t_float x_f;
  } t_siglop;
  
***************
*** 162,173 ****
  static t_int *siglop_perform(t_int *w)
  {
!     float *in = (float *)(w[1]);
!     float *out = (float *)(w[2]);
      t_lopctl *c = (t_lopctl *)(w[3]);
      int n = (t_int)(w[4]);
      int i;
!     float last = c->c_x;
!     float coef = c->c_coef;
!     float feedback = 1 - coef;
      for (i = 0; i < n; i++)
          last = *out++ = coef * *in++ + feedback * last;
--- 162,173 ----
  static t_int *siglop_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      t_lopctl *c = (t_lopctl *)(w[3]);
      int n = (t_int)(w[4]);
      int i;
!     t_sample last = c->c_x;
!     t_sample coef = c->c_coef;
!     t_sample feedback = 1 - coef;
      for (i = 0; i < n; i++)
          last = *out++ = coef * *in++ + feedback * last;
***************
*** 203,211 ****
  typedef struct bpctl
  {
!     float c_x1;
!     float c_x2;
!     float c_coef1;
!     float c_coef2;
!     float c_gain;
  } t_bpctl;
  
--- 203,211 ----
  typedef struct bpctl
  {
!     t_sample c_x1;
!     t_sample c_x2;
!     t_sample c_coef1;
!     t_sample c_coef2;
!     t_sample c_gain;
  } t_bpctl;
  
***************
*** 213,222 ****
  {
      t_object x_obj;
!     float x_sr;
!     float x_freq;
!     float x_q;
      t_bpctl x_cspace;
      t_bpctl *x_ctl;
!     float x_f;
  } t_sigbp;
  
--- 213,222 ----
  {
      t_object x_obj;
!     t_float x_sr;
!     t_float x_freq;
!     t_float x_q;
      t_bpctl x_cspace;
      t_bpctl *x_ctl;
!     t_float x_f;
  } t_sigbp;
  
***************
*** 240,248 ****
  }
  
! static float sigbp_qcos(float f)
  {
      if (f >= -(0.5f*3.14159f) && f <= 0.5f*3.14159f)
      {
!         float g = f*f;
          return (((g*g*g * (-1.0f/720.0f) + g*g*(1.0f/24.0f)) - g*0.5) + 1);
      }
--- 240,248 ----
  }
  
! static t_float sigbp_qcos(t_float f)
  {
      if (f >= -(0.5f*3.14159f) && f <= 0.5f*3.14159f)
      {
!         t_float g = f*f;
          return (((g*g*g * (-1.0f/720.0f) + g*g*(1.0f/24.0f)) - g*0.5) + 1);
      }
***************
*** 252,256 ****
  static void sigbp_docoef(t_sigbp *x, t_floatarg f, t_floatarg q)
  {
!     float r, oneminusr, omega;
      if (f < 0.001) f = 10;
      if (q < 0) q = 0;
--- 252,256 ----
  static void sigbp_docoef(t_sigbp *x, t_floatarg f, t_floatarg q)
  {
!     t_float r, oneminusr, omega;
      if (f < 0.001) f = 10;
      if (q < 0) q = 0;
***************
*** 286,302 ****
  static t_int *sigbp_perform(t_int *w)
  {
!     float *in = (float *)(w[1]);
!     float *out = (float *)(w[2]);
      t_bpctl *c = (t_bpctl *)(w[3]);
      int n = (t_int)(w[4]);
      int i;
!     float last = c->c_x1;
!     float prev = c->c_x2;
!     float coef1 = c->c_coef1;
!     float coef2 = c->c_coef2;
!     float gain = c->c_gain;
      for (i = 0; i < n; i++)
      {
!         float output =  *in++ + coef1 * last + coef2 * prev;
          *out++ = gain * output;
          prev = last;
--- 286,302 ----
  static t_int *sigbp_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      t_bpctl *c = (t_bpctl *)(w[3]);
      int n = (t_int)(w[4]);
      int i;
!     t_sample last = c->c_x1;
!     t_sample prev = c->c_x2;
!     t_sample coef1 = c->c_coef1;
!     t_sample coef2 = c->c_coef2;
!     t_sample gain = c->c_gain;
      for (i = 0; i < n; i++)
      {
!         t_sample output =  *in++ + coef1 * last + coef2 * prev;
          *out++ = gain * output;
          prev = last;
***************
*** 339,349 ****
  typedef struct biquadctl
  {
!     float c_x1;
!     float c_x2;
!     float c_fb1;
!     float c_fb2;
!     float c_ff1;
!     float c_ff2;
!     float c_ff3;
  } t_biquadctl;
  
--- 339,349 ----
  typedef struct biquadctl
  {
!     t_sample c_x1;
!     t_sample c_x2;
!     t_sample c_fb1;
!     t_sample c_fb2;
!     t_sample c_ff1;
!     t_sample c_ff2;
!     t_sample c_ff3;
  } t_biquadctl;
  
***************
*** 351,355 ****
  {
      t_object x_obj;
!     float x_f;
      t_biquadctl x_cspace;
      t_biquadctl *x_ctl;
--- 351,355 ----
  {
      t_object x_obj;
!     t_float x_f;
      t_biquadctl x_cspace;
      t_biquadctl *x_ctl;
***************
*** 373,391 ****
  static t_int *sigbiquad_perform(t_int *w)
  {
!     float *in = (float *)(w[1]);
!     float *out = (float *)(w[2]);
      t_biquadctl *c = (t_biquadctl *)(w[3]);
      int n = (t_int)(w[4]);
      int i;
!     float last = c->c_x1;
!     float prev = c->c_x2;
!     float fb1 = c->c_fb1;
!     float fb2 = c->c_fb2;
!     float ff1 = c->c_ff1;
!     float ff2 = c->c_ff2;
!     float ff3 = c->c_ff3;
      for (i = 0; i < n; i++)
      {
!         float output =  *in++ + fb1 * last + fb2 * prev;
          if (PD_BIGORSMALL(output))
              output = 0; 
--- 373,391 ----
  static t_int *sigbiquad_perform(t_int *w)
  {
!     t_sample *in = (t_sample *)(w[1]);
!     t_sample *out = (t_sample *)(w[2]);
      t_biquadctl *c = (t_biquadctl *)(w[3]);
      int n = (t_int)(w[4]);
      int i;
!     t_sample last = c->c_x1;
!     t_sample prev = c->c_x2;
!     t_sample fb1 = c->c_fb1;
!     t_sample fb2 = c->c_fb2;
!     t_sample ff1 = c->c_ff1;
!     t_sample ff2 = c->c_ff2;
!     t_sample ff3 = c->c_ff3;
      for (i = 0; i < n; i++)
      {
!         t_sample output =  *in++ + fb1 * last + fb2 * prev;
          if (PD_BIGORSMALL(output))
              output = 0; 
***************
*** 401,410 ****
  static void sigbiquad_list(t_sigbiquad *x, t_symbol *s, int argc, t_atom *argv)
  {
!     float fb1 = atom_getfloatarg(0, argc, argv);
!     float fb2 = atom_getfloatarg(1, argc, argv);
!     float ff1 = atom_getfloatarg(2, argc, argv);
!     float ff2 = atom_getfloatarg(3, argc, argv);
!     float ff3 = atom_getfloatarg(4, argc, argv);
!     float discriminant = fb1 * fb1 + 4 * fb2;
      t_biquadctl *c = x->x_ctl;
      if (discriminant < 0) /* imaginary roots -- resonant filter */
--- 401,410 ----
  static void sigbiquad_list(t_sigbiquad *x, t_symbol *s, int argc, t_atom *argv)
  {
!     t_float fb1 = atom_getfloatarg(0, argc, argv);
!     t_float fb2 = atom_getfloatarg(1, argc, argv);
!     t_float ff1 = atom_getfloatarg(2, argc, argv);
!     t_float ff2 = atom_getfloatarg(3, argc, argv);
!     t_float ff3 = atom_getfloatarg(4, argc, argv);
!     t_float discriminant = fb1 * fb1 + 4 * fb2;
      t_biquadctl *c = x->x_ctl;
      if (discriminant < 0) /* imaginary roots -- resonant filter */
***************
*** 466,472 ****
  {
      t_object x_obj;
!     float x_f;
!     float x_lastin;
!     float x_lastout;
  } t_sigsamphold;
  
--- 466,472 ----
  {
      t_object x_obj;
!     t_float x_f;
!     t_sample x_lastin;
!     t_sample x_lastout;
  } t_sigsamphold;
  
***************
*** 486,500 ****
  static t_int *sigsamphold_perform(t_int *w)
  {
!     float *in1 = (float *)(w[1]);
!     float *in2 = (float *)(w[2]);
!     float *out = (float *)(w[3]);
      t_sigsamphold *x = (t_sigsamphold *)(w[4]);
      int n = (t_int)(w[5]);
      int i;
!     float lastin = x->x_lastin;
!     float lastout = x->x_lastout;
      for (i = 0; i < n; i++, *in1++)
      {
!         float next = *in2++;
          if (next < lastin) lastout = *in1;
          *out++ = lastout;
--- 486,500 ----
  static t_int *sigsamphold_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      t_sigsamphold *x = (t_sigsamphold *)(w[4]);
      int n = (t_int)(w[5]);
      int i;
!     t_sample lastin = x->x_lastin;
!     t_sample lastout = x->x_lastout;
      for (i = 0; i < n; i++, *in1++)
      {
!         t_sample next = *in2++;
          if (next < lastin) lastout = *in1;
          *out++ = lastout;
***************
*** 543,548 ****
  {
      t_object x_obj;
!     float x_f;
!     float x_last;
  } t_sigrpole;
  
--- 543,548 ----
  {
      t_object x_obj;
!     t_float x_f;
!     t_sample x_last;
  } t_sigrpole;
  
***************
*** 562,576 ****
  static t_int *sigrpole_perform(t_int *w)
  {
!     float *in1 = (float *)(w[1]);
!     float *in2 = (float *)(w[2]);
!     float *out = (float *)(w[3]);
      t_sigrpole *x = (t_sigrpole *)(w[4]);
      int n = (t_int)(w[5]);
      int i;
!     float last = x->x_last;
      for (i = 0; i < n; i++)
      {
!         float next = *in1++;
!         float coef = *in2++;
          *out++ = last = coef * last + next;
      }
--- 562,576 ----
  static t_int *sigrpole_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      t_sigrpole *x = (t_sigrpole *)(w[4]);
      int n = (t_int)(w[5]);
      int i;
!     t_sample last = x->x_last;
      for (i = 0; i < n; i++)
      {
!         t_sample next = *in1++;
!         t_sample coef = *in2++;
          *out++ = last = coef * last + next;
      }
***************
*** 616,621 ****
  {
      t_object x_obj;
!     float x_f;
!     float x_last;
  } t_sigrzero;
  
--- 616,621 ----
  {
      t_object x_obj;
!     t_float x_f;
!     t_sample x_last;
  } t_sigrzero;
  
***************
*** 635,649 ****
  static t_int *sigrzero_perform(t_int *w)
  {
!     float *in1 = (float *)(w[1]);
!     float *in2 = (float *)(w[2]);
!     float *out = (float *)(w[3]);
      t_sigrzero *x = (t_sigrzero *)(w[4]);
      int n = (t_int)(w[5]);
      int i;
!     float last = x->x_last;
      for (i = 0; i < n; i++)
      {
!         float next = *in1++;
!         float coef = *in2++;
          *out++ = next - coef * last;
          last = next;
--- 635,649 ----
  static t_int *sigrzero_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      t_sigrzero *x = (t_sigrzero *)(w[4]);
      int n = (t_int)(w[5]);
      int i;
!     t_sample last = x->x_last;
      for (i = 0; i < n; i++)
      {
!         t_sample next = *in1++;
!         t_sample coef = *in2++;
          *out++ = next - coef * last;
          last = next;
***************
*** 688,693 ****
  {
      t_object x_obj;
!     float x_f;
!     float x_last;
  } t_sigrzero_rev;
  
--- 688,693 ----
  {
      t_object x_obj;
!     t_float x_f;
!     t_sample x_last;
  } t_sigrzero_rev;
  
***************
*** 707,721 ****
  static t_int *sigrzero_rev_perform(t_int *w)
  {
!     float *in1 = (float *)(w[1]);
!     float *in2 = (float *)(w[2]);
!     float *out = (float *)(w[3]);
      t_sigrzero_rev *x = (t_sigrzero_rev *)(w[4]);
      int n = (t_int)(w[5]);
      int i;
!     float last = x->x_last;
      for (i = 0; i < n; i++)
      {
!         float next = *in1++;
!         float coef = *in2++;
          *out++ = last - coef * next;
          last = next;
--- 707,721 ----
  static t_int *sigrzero_rev_perform(t_int *w)
  {
!     t_sample *in1 = (t_sample *)(w[1]);
!     t_sample *in2 = (t_sample *)(w[2]);
!     t_sample *out = (t_sample *)(w[3]);
      t_sigrzero_rev *x = (t_sigrzero_rev *)(w[4]);
      int n = (t_int)(w[5]);
      int i;
!     t_sample last = x->x_last;
      for (i = 0; i < n; i++)
      {
!         t_sample next = *in1++;
!         t_sample coef = *in2++;
          *out++ = last - coef * next;
          last = next;
***************
*** 761,767 ****
  {
      t_object x_obj;
!     float x_f;
!     float x_lastre;
!     float x_lastim;
  } t_sigcpole;
  
--- 761,767 ----
  {
      t_object x_obj;
!     t_float x_f;
!     t_sample x_lastre;
!     t_sample x_lastim;
  } t_sigcpole;
  
***************
*** 787,808 ****
  static t_int *sigcpole_perform(t_int *w)
  {
!     float *inre1 = (float *)(w[1]);
!     float *inim1 = (float *)(w[2]);
!     float *inre2 = (float *)(w[3]);
!     float *inim2 = (float *)(w[4]);
!     float *outre = (float *)(w[5]);
!     float *outim = (float *)(w[6]);
      t_sigcpole *x = (t_sigcpole *)(w[7]);
      int n = (t_int)(w[8]);
      int i;
!     float lastre = x->x_lastre;
!     float lastim = x->x_lastim;
      for (i = 0; i < n; i++)
      {
!         float nextre = *inre1++;
!         float nextim = *inim1++;
!         float coefre = *inre2++;
!         float coefim = *inim2++;
!         float tempre = *outre++ = nextre + lastre * coefre - lastim * coefim;
          lastim = *outim++ = nextim + lastre * coefim + lastim * coefre;
          lastre = tempre;
--- 787,808 ----
  static t_int *sigcpole_perform(t_int *w)
  {
!     t_sample *inre1 = (t_sample *)(w[1]);
!     t_sample *inim1 = (t_sample *)(w[2]);
!     t_sample *inre2 = (t_sample *)(w[3]);
!     t_sample *inim2 = (t_sample *)(w[4]);
!     t_sample *outre = (t_sample *)(w[5]);
!     t_sample *outim = (t_sample *)(w[6]);
      t_sigcpole *x = (t_sigcpole *)(w[7]);
      int n = (t_int)(w[8]);
      int i;
!     t_sample lastre = x->x_lastre;
!     t_sample lastim = x->x_lastim;
      for (i = 0; i < n; i++)
      {
!         t_sample nextre = *inre1++;
!         t_sample nextim = *inim1++;
!         t_sample coefre = *inre2++;
!         t_sample coefim = *inim2++;
!         t_sample tempre = *outre++ = nextre + lastre * coefre - lastim * coefim;
          lastim = *outim++ = nextim + lastre * coefim + lastim * coefre;
          lastre = tempre;
***************
*** 854,860 ****
  {
      t_object x_obj;
!     float x_f;
!     float x_lastre;
!     float x_lastim;
  } t_sigczero;
  
--- 854,860 ----
  {
      t_object x_obj;
!     t_float x_f;
!     t_sample x_lastre;
!     t_sample x_lastim;
  } t_sigczero;
  
***************
*** 880,900 ****
  static t_int *sigczero_perform(t_int *w)
  {
!     float *inre1 = (float *)(w[1]);
!     float *inim1 = (float *)(w[2]);
!     float *inre2 = (float *)(w[3]);
!     float *inim2 = (float *)(w[4]);
!     float *outre = (float *)(w[5]);
!     float *outim = (float *)(w[6]);
      t_sigczero *x = (t_sigczero *)(w[7]);
      int n = (t_int)(w[8]);
      int i;
!     float lastre = x->x_lastre;
!     float lastim = x->x_lastim;
      for (i = 0; i < n; i++)
      {
!         float nextre = *inre1++;
!         float nextim = *inim1++;
!         float coefre = *inre2++;
!         float coefim = *inim2++;
          *outre++ = nextre - lastre * coefre + lastim * coefim;
          *outim++ = nextim - lastre * coefim - lastim * coefre;
--- 880,900 ----
  static t_int *sigczero_perform(t_int *w)
  {
!     t_sample *inre1 = (t_sample *)(w[1]);
!     t_sample *inim1 = (t_sample *)(w[2]);
!     t_sample *inre2 = (t_sample *)(w[3]);
!     t_sample *inim2 = (t_sample *)(w[4]);
!     t_sample *outre = (t_sample *)(w[5]);
!     t_sample *outim = (t_sample *)(w[6]);
      t_sigczero *x = (t_sigczero *)(w[7]);
      int n = (t_int)(w[8]);
      int i;
!     t_sample lastre = x->x_lastre;
!     t_sample lastim = x->x_lastim;
      for (i = 0; i < n; i++)
      {
!         t_sample nextre = *inre1++;
!         t_sample nextim = *inim1++;
!         t_sample coefre = *inre2++;
!         t_sample coefim = *inim2++;
          *outre++ = nextre - lastre * coefre + lastim * coefim;
          *outim++ = nextim - lastre * coefim - lastim * coefre;
***************
*** 944,950 ****
  {
      t_object x_obj;
!     float x_f;
!     float x_lastre;
!     float x_lastim;
  } t_sigczero_rev;
  
--- 944,950 ----
  {
      t_object x_obj;
!     t_float x_f;
!     t_sample x_lastre;
!     t_sample x_lastim;
  } t_sigczero_rev;
  
***************
*** 970,990 ****
  static t_int *sigczero_rev_perform(t_int *w)
  {
!     float *inre1 = (float *)(w[1]);
!     float *inim1 = (float *)(w[2]);
!     float *inre2 = (float *)(w[3]);
!     float *inim2 = (float *)(w[4]);
!     float *outre = (float *)(w[5]);
!     float *outim = (float *)(w[6]);
      t_sigczero_rev *x = (t_sigczero_rev *)(w[7]);
      int n = (t_int)(w[8]);
      int i;
!     float lastre = x->x_lastre;
!     float lastim = x->x_lastim;
      for (i = 0; i < n; i++)
      {
!         float nextre = *inre1++;
!         float nextim = *inim1++;
!         float coefre = *inre2++;
!         float coefim = *inim2++;
              /* transfer function is (A bar) - Z^-1, for the same
              frequency response as 1 - AZ^-1 from czero_tilde. */
--- 970,990 ----
  static t_int *sigczero_rev_perform(t_int *w)
  {
!     t_sample *inre1 = (t_sample *)(w[1]);
!     t_sample *inim1 = (t_sample *)(w[2]);
!     t_sample *inre2 = (t_sample *)(w[3]);
!     t_sample *inim2 = (t_sample *)(w[4]);
!     t_sample *outre = (t_sample *)(w[5]);
!     t_sample *outim = (t_sample *)(w[6]);
      t_sigczero_rev *x = (t_sigczero_rev *)(w[7]);
      int n = (t_int)(w[8]);
      int i;
!     t_sample lastre = x->x_lastre;
!     t_sample lastim = x->x_lastim;
      for (i = 0; i < n; i++)
      {
!         t_sample nextre = *inre1++;
!         t_sample nextim = *inim1++;
!         t_sample coefre = *inre2++;
!         t_sample coefim = *inim2++;
              /* transfer function is (A bar) - Z^-1, for the same
              frequency response as 1 - AZ^-1 from czero_tilde. */

Index: g_mycanvas.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_mycanvas.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** g_mycanvas.c	6 Sep 2004 20:20:34 -0000	1.5
--- g_mycanvas.c	28 Dec 2007 03:43:04 -0000	1.6
***************
*** 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: g_editor.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/g_editor.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** g_editor.c	9 Oct 2006 04:36:12 -0000	1.20
--- g_editor.c	28 Dec 2007 03:43:04 -0000	1.21
***************
*** 382,386 ****
  
  void canvas_disconnect(t_canvas *x,
!     float index1, float outno, float index2, float inno)
  {
      t_linetraverser t;
--- 382,386 ----
  
  void canvas_disconnect(t_canvas *x,
!     t_float index1, t_float outno, t_float index2, t_float inno)
  {
      t_linetraverser t;
***************
*** 794,797 ****
--- 794,808 ----
                  *x1p = x1, *y1p = y1, *x2p = x2, *y2p = y2, rval = y; 
      }
+         /* if there are at least two selected objects, we'd prefer
+         to find a selected one (never mind which) to the one we got. */
+     if (x->gl_editor && x->gl_editor->e_selection &&
+         x->gl_editor->e_selection->sel_next && !glist_isselected(x, y))
+     {
+         t_selection *sel;
+         for (sel = x->gl_editor->e_selection; sel; sel = sel->sel_next)
+             if (canvas_hitbox(x, sel->sel_what, xpos, ypos, &x1, &y1, &x2, &y2))
+                 *x1p = x1, *y1p = y1, *x2p = x2, *y2p = y2,
+                     rval = sel->sel_what; 
+     }
      return (rval);
  }
***************
*** 894,898 ****
  
  
!     float xperpix, yperpix, x1, y1, x2, y2, xpix, ypix, xmargin, ymargin; 
      int graphme, redraw = 0;
  
--- 905,909 ----
  
  
!     t_float xperpix, yperpix, x1, y1, x2, y2, xpix, ypix, xmargin, ymargin; 
      int graphme, redraw = 0;
  
***************
*** 967,971 ****
      /* called from the gui when a popup menu comes back with "properties,"
          "open," or "help." */
! static void canvas_done_popup(t_canvas *x, float which, float xpos, float ypos)
  {
      char pathbuf[MAXPDSTRING], namebuf[MAXPDSTRING];
--- 978,982 ----
      /* called from the gui when a popup menu comes back with "properties,"
          "open," or "help." */
! static void canvas_done_popup(t_canvas *x, t_float which, t_float xpos, t_float ypos)
  {
      char pathbuf[MAXPDSTRING], namebuf[MAXPDSTRING];
***************
*** 1202,1215 ****
          t_linetraverser t;
          t_outconnect *oc;
!         float fx = xpos, fy = ypos;
          t_glist *glist2 = glist_getcanvas(x);
          linetraverser_start(&t, glist2);
          while (oc = linetraverser_next(&t))
          {
!             float lx1 = t.tr_lx1, ly1 = t.tr_ly1,
                  lx2 = t.tr_lx2, ly2 = t.tr_ly2;
!             float area = (lx2 - lx1) * (fy - ly1) -
                  (ly2 - ly1) * (fx - lx1);
!             float dsquare = (lx2-lx1) * (lx2-lx1) + (ly2-ly1) * (ly2-ly1);
              if (area * area >= 50 * dsquare) continue;
              if ((lx2-lx1) * (fx-lx1) + (ly2-ly1) * (fy-ly1) < 0) continue;
--- 1213,1226 ----
          t_linetraverser t;
          t_outconnect *oc;
!         t_float fx = xpos, fy = ypos;
          t_glist *glist2 = glist_getcanvas(x);
          linetraverser_start(&t, glist2);
          while (oc = linetraverser_next(&t))
          {
!             t_float lx1 = t.tr_lx1, ly1 = t.tr_ly1,
                  lx2 = t.tr_lx2, ly2 = t.tr_ly2;
!             t_float area = (lx2 - lx1) * (fy - ly1) -
                  (ly2 - ly1) * (fx - lx1);
!             t_float dsquare = (lx2-lx1) * (lx2-lx1) + (ly2-ly1) * (ly2-ly1);
              if (area * area >= 50 * dsquare) continue;
              if ((lx2-lx1) * (fx-lx1) + (ly2-ly1) * (fy-ly1) < 0) continue;
***************
*** 1494,1500 ****
  #endif
      if (keynumsym->s_thing && down)
!         pd_float(keynumsym->s_thing, (float)keynum);
      if (keyupsym->s_thing && !down)
!         pd_float(keyupsym->s_thing, (float)keynum);
      if (keynamesym->s_thing)
      {
--- 1505,1511 ----
  #endif
      if (keynumsym->s_thing && down)
!         pd_float(keynumsym->s_thing, (t_float)keynum);
      if (keyupsym->s_thing && !down)
!         pd_float(keyupsym->s_thing, (t_float)keynum);
      if (keynamesym->s_thing)
      {
***************
*** 1513,1517 ****
              && x->gl_editor->e_keyfn && keynum)
                  (* x->gl_editor->e_keyfn)
!                     (x->gl_editor->e_grab, (float)keynum);
              /* if a text editor is open send the key on, as long as
              it is either "real" (has a key number) or else is an arrow key. */
--- 1524,1528 ----
              && x->gl_editor->e_keyfn && keynum)
                  (* x->gl_editor->e_keyfn)
!                     (x->gl_editor->e_grab, (t_float)keynum);
              /* if a text editor is open send the key on, as long as
              it is either "real" (has a key number) or else is an arrow key. */
***************
*** 2383,2387 ****
      t_floatarg whichresize)
  {
!     float realresize, realresx = 1, realresy = 1;
      t_canvas *x2 = canvas_getrootfor(x);
      if (!resize) realresize = 1;
--- 2394,2398 ----
      t_floatarg whichresize)
  {
!     t_float realresize, realresx = 1, realresy = 1;
      t_canvas *x2 = canvas_getrootfor(x);
      if (!resize) realresize = 1;

Index: d_ugen.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/d_ugen.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** d_ugen.c	24 Aug 2006 15:23:51 -0000	1.9
--- d_ugen.c	28 Dec 2007 03:43:03 -0000	1.10
***************
*** 19,23 ****
  
  extern t_class *vinlet_class, *voutlet_class, *canvas_class;
! t_sample *obj_findsignalscalar(t_object *x, int m);
  static int ugen_loud;
  static t_int *dsp_chain;
--- 19,23 ----
  
  extern t_class *vinlet_class, *voutlet_class, *canvas_class;
! t_float *obj_findsignalscalar(t_object *x, int m);
  static int ugen_loud;
  static t_int *dsp_chain;
***************
*** 39,43 ****
  t_int *zero_perform(t_int *w)   /* zero out a vector */
  {
!     t_float *out = (t_float *)(w[1]);
      int n = (int)(w[2]);
      while (n--) *out++ = 0; 
--- 39,43 ----
  t_int *zero_perform(t_int *w)   /* zero out a vector */
  {
!     t_sample *out = (t_sample *)(w[1]);
      int n = (int)(w[2]);
      while (n--) *out++ = 0; 
***************
*** 47,51 ****
  t_int *zero_perf8(t_int *w)
  {
!     t_float *out = (t_float *)(w[1]);
      int n = (int)(w[2]);
      
--- 47,51 ----
  t_int *zero_perf8(t_int *w)
  {
!     t_sample *out = (t_sample *)(w[1]);
      int n = (int)(w[2]);
      
***************
*** 428,432 ****
      signal_setborrowed(). */
  
! t_signal *signal_new(int n, float sr)
  {
      int logn, n2, vecsize = 0;
--- 428,432 ----
      signal_setborrowed(). */
  
! t_signal *signal_new(int n, t_float sr)
  {
      int logn, n2, vecsize = 0;
***************
*** 540,544 ****
      int dc_noutlets;
      t_signal **dc_iosigs;
!     float dc_srate;
      int dc_vecsize;         /* vector size, power of two */
      int dc_calcsize;        /* number of elements to calculate */
--- 540,544 ----
      int dc_noutlets;
      t_signal **dc_iosigs;
!     t_float dc_srate;
      int dc_vecsize;         /* vector size, power of two */
      int dc_calcsize;        /* number of elements to calculate */
***************
*** 613,617 ****
  {
      t_dspcontext *dc = (t_dspcontext *)getbytes(sizeof(*dc));
!     float parent_srate, srate;
      int parent_vecsize, vecsize;
  
--- 613,617 ----
  {
      t_dspcontext *dc = (t_dspcontext *)getbytes(sizeof(*dc));
!     t_float parent_srate, srate;
      int parent_vecsize, vecsize;
  
***************
*** 733,737 ****
          if (!uin->i_nconnect)
          {
!             t_sample *scalar;
              s3 = signal_new(dc->dc_vecsize, dc->dc_srate);
              /* post("%s: unconnected signal inlet set to zero",
--- 733,737 ----
          if (!uin->i_nconnect)
          {
!             t_float *scalar;
              s3 = signal_new(dc->dc_vecsize, dc->dc_srate);
              /* post("%s: unconnected signal inlet set to zero",
***************
*** 868,875 ****
      t_block *blk;
      t_dspcontext *parent_context = dc->dc_parentcontext;
!     float parent_srate;
      int parent_vecsize;
      int period, frequency, phase, vecsize, calcsize;
!     float srate;
      int chainblockbegin;    /* DSP chain onset before block prolog code */
      int chainblockend;      /* and after block epilog code */
--- 868,875 ----
      t_block *blk;
      t_dspcontext *parent_context = dc->dc_parentcontext;
!     t_float parent_srate;
      int parent_vecsize;
      int period, frequency, phase, vecsize, calcsize;
!     t_float srate;
      int chainblockbegin;    /* DSP chain onset before block prolog code */
      int chainblockend;      /* and after block epilog code */
***************
*** 1154,1158 ****
  {
      t_object x_obj;
!     float x_sr;
      t_canvas *x_canvas;
  } t_samplerate;
--- 1154,1158 ----
  {
      t_object x_obj;
!     t_float x_sr;
      t_canvas *x_canvas;
  } t_samplerate;
***************
*** 1162,1166 ****
  static void samplerate_tilde_bang(t_samplerate *x)
  {
!     float srate = sys_getsr();
      t_canvas *canvas = x->x_canvas;
      while (canvas)
--- 1162,1166 ----
  static void samplerate_tilde_bang(t_samplerate *x)
  {
!     t_float srate = sys_getsr();
      t_canvas *canvas = x->x_canvas;
      while (canvas)
***************
*** 1168,1172 ****
          t_block *b = (t_block *)canvas_getblock(block_class, &canvas);
          if (b) 
!             srate *= (float)(b->x_upsample) / (float)(b->x_downsample); 
      }
      outlet_float(x->x_obj.ob_outlet, srate);
--- 1168,1172 ----
          t_block *b = (t_block *)canvas_getblock(block_class, &canvas);
          if (b) 
!             srate *= (t_float)(b->x_upsample) / (t_float)(b->x_downsample); 
      }
      outlet_float(x->x_obj.ob_outlet, srate);

Index: x_connective.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/x_connective.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** x_connective.c	24 Aug 2006 15:23:52 -0000	1.9
--- x_connective.c	28 Dec 2007 03:43:06 -0000	1.10
***************
*** 507,511 ****
      if (x->x_type == A_FLOAT)
      {
!         float f;
          if (!argc) return;
          f = atom_getfloat(argv);
--- 507,511 ----
      if (x->x_type == A_FLOAT)
      {
!         t_float f;
          if (!argc) return;
          f = atom_getfloat(argv);
***************
*** 1058,1062 ****
  {
      t_object x_obj;
!     float x_state;
  } t_spigot;
  
--- 1058,1062 ----
  {
      t_object x_obj;
!     t_float x_state;
  } t_spigot;
  
***************
*** 1119,1123 ****
      t_object x_ob;
      t_outlet *x_out2;
!     float x_y;
  } t_moses;
  
--- 1119,1123 ----
      t_object x_ob;
      t_outlet *x_out2;
!     t_float x_y;
  } t_moses;
  
***************
*** 1175,1178 ****
--- 1175,1180 ----
  static void until_float(t_until *x, t_float f)
  {
+     if (f < 0)
+         f = 0;
      x->x_run = 1;
      x->x_count = f;
***************
*** 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);
  }
--- 1205,1255 ----
      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 ****
--- 1258,1270 ----
  {
      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 ****
--- 1273,1281 ----
  {
      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 ****
--- 1284,1288 ----
  {
      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.6
diff -C2 -d -r1.5 -r1.6
*** g_bang.c	8 Sep 2006 23:45:30 -0000	1.5
--- g_bang.c	28 Dec 2007 03:43:03 -0000	1.6
***************
*** 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.9
diff -C2 -d -r1.8 -r1.9
*** g_numbox.c	8 Sep 2006 23:45:30 -0000	1.8
--- g_numbox.c	28 Dec 2007 03:43:04 -0000	1.9
***************
*** 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,
***************
*** 390,394 ****
                  (int)x->x_gui.x_obj.te_xpix, (int)x->x_gui.x_obj.te_ypix,
                  gensym("nbx"), x->x_gui.x_w, x->x_gui.x_h,
!                 (float)x->x_min, (float)x->x_max,
                  x->x_lin0_log1, iem_symargstoint(&x->x_gui.x_isa),
                  srl[0], srl[1], srl[2],
--- 392,396 ----
                  (int)x->x_gui.x_obj.te_xpix, (int)x->x_gui.x_obj.te_ypix,
                  gensym("nbx"), x->x_gui.x_w, x->x_gui.x_h,
!                 (t_float)x->x_min, (t_float)x->x_max,
                  x->x_lin0_log1, iem_symargstoint(&x->x_gui.x_isa),
                  srl[0], srl[1], srl[2],
***************
*** 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);

Index: s_audio_pa.c
===================================================================
RCS file: /cvsroot/pure-data/pd/src/s_audio_pa.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** s_audio_pa.c	18 Aug 2007 23:32:44 -0000	1.7
--- s_audio_pa.c	28 Dec 2007 03:43:05 -0000	1.8
***************
*** 29,32 ****
--- 29,34 ----
  #define MAX_SAMPLES_PER_FRAME MAX_PA_CHANS * DEFDACBLKSIZE
  
+ int pa_foo;
+ 
  static int pa_lowlevel_callback(const void *inputBuffer,
      void *outputBuffer, unsigned long framesPerBuffer,
***************
*** 37,44 ****
      unsigned int j;
      float *fbuf, *fp2, *fp3, *soundiop;
!         if (framesPerBuffer != DEFDACBLKSIZE)
!         {
!                 fprintf(stderr, "ignoring buffer size %d\n", framesPerBuffer);
!                 return;
      }
          if (inputBuffer != NULL)
--- 39,48 ----
      unsigned int j;
      float *fbuf, *fp2, *fp3, *soundiop;
!     if (pa_foo)
!        fprintf(stderr, "pa_lowlevel_callback\n");
!     if (framesPerBuffer != DEFDACBLKSIZE)
!     {
!         fprintf(stderr, "ignoring buffer size %d\n", (int)framesPerBuffer);
!         return 0;
      }
          if (inputBuffer != NULL)
***************
*** 52,55 ****
--- 56,61 ----
      else memset((void *)pa_soundin, 0,
          framesPerBuffer * pa_inchans * sizeof(float));
+     memset((void *)pa_soundout, 0,
+         framesPerBuffer * pa_outchans * sizeof(float));
      (*pa_callback)();
      if (outputBuffer != NULL)
***************
*** 61,65 ****
                  *fp3 = *soundiop++;
      }
! 
      return 0;
  }
--- 67,72 ----
                  *fp3 = *soundiop++;
      }
!     if (pa_foo)
!         fprintf(stderr, "done pa_lowlevel_callback\n"); 
      return 0;
  }
***************
*** 154,159 ****
      
      pa_callback = callbackfn;
!     if (callbackfn)
!         fprintf(stderr, "callback enabled\n");
      if (!initialized)
      {
--- 161,165 ----
      
      pa_callback = callbackfn;
!     /* fprintf(stderr, "open callback %d\n", (callbackfn != 0)); */
      if (!initialized)
      {
***************
*** 255,258 ****
--- 261,265 ----
  void pa_close_audio( void)
  {
+     /* fprintf(stderr, "close\n"); */
      if (pa_inchans || pa_outchans)
          CloseAudioStream( pa_stream );





More information about the Pd-cvs mailing list