From 486e5ff7ebf4ed0fe1089ac73643c8dbca9b838a Mon Sep 17 00:00:00 2001
From: musil <tmusil@users.sourceforge.net>
Date: Fri, 8 Jul 2005 02:13:24 +0000
Subject: dos-return

svn path=/trunk/externals/iemlib/; revision=3301
---
 src/iemlib2/add2_comma.c           |  238 +++---
 src/iemlib2/bpe.c                  |  244 +++---
 src/iemlib2/dollarg.c              |  220 ++---
 src/iemlib2/exp_inc.c              |  270 +++---
 src/iemlib2/float24.c              |  162 ++--
 src/iemlib2/iem_anything.c         |  290 +++----
 src/iemlib2/iem_anything_kernel.c  |  296 +++----
 src/iemlib2/iem_append.c           |  726 ++++++++--------
 src/iemlib2/iem_append_kernel.c    |  700 ++++++++--------
 src/iemlib2/iem_i_route.c          |  224 ++---
 src/iemlib2/iem_pbank_csv.c        | 1604 ++++++++++++++++++------------------
 src/iemlib2/iem_prepend.c          |  504 +++++------
 src/iemlib2/iem_prepend_kernel.c   |  516 ++++++------
 src/iemlib2/iem_receive.c          |  358 ++++----
 src/iemlib2/iem_receive_kernel.c   |  310 +++----
 src/iemlib2/iem_route.c            |  398 ++++-----
 src/iemlib2/iem_sel_any.c          |  224 ++---
 src/iemlib2/iem_send.c             |  324 ++++----
 src/iemlib2/iem_send_kernel.c      |  280 +++----
 src/iemlib2/iemlib2.c              |  274 +++---
 src/iemlib2/init.c                 |  408 ++++-----
 src/iemlib2/list2send.c            |  500 +++++------
 src/iemlib2/mergefilename.c        |  460 +++++------
 src/iemlib2/modulo_counter.c       |  182 ++--
 src/iemlib2/parentdollarzero.c     |  120 +--
 src/iemlib2/post_netreceive.c      |  482 +++++------
 src/iemlib2/pre_inlet.c            |  198 ++---
 src/iemlib2/prepend_ascii.c        |  258 +++---
 src/iemlib2/prepend_kernel.c       |  698 ++++++++--------
 src/iemlib2/protect_against_open.c |  206 ++---
 src/iemlib2/round_zero.c           |  136 +--
 src/iemlib2/sigLFO_noise.c         |  256 +++---
 src/iemlib2/sigfade.c              |  368 ++++-----
 src/iemlib2/sigiem_blocksize.c     |  120 +--
 src/iemlib2/sigiem_samplerate.c    |  120 +--
 src/iemlib2/sigm2f.c               |  250 +++---
 src/iemlib2/speedlim.c             |  214 ++---
 src/iemlib2/splitfilename.c        |  306 +++----
 src/iemlib2/stripfilename.c        |  162 ++--
 src/iemlib2/toggle_mess.c          |  242 +++---
 src/iemlib2/transf_fader.c         |  308 +++----
 src/iemlib2/unsymbol.c             |   96 +--
 src/iemlib2/wrap.c                 |  134 +--
 43 files changed, 7193 insertions(+), 7193 deletions(-)

(limited to 'src/iemlib2')

diff --git a/src/iemlib2/add2_comma.c b/src/iemlib2/add2_comma.c
index 941b506..2952a53 100644
--- a/src/iemlib2/add2_comma.c
+++ b/src/iemlib2/add2_comma.c
@@ -1,119 +1,119 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* --------------------------------- add2_comma ----------------------------------- */
-/* -- a special add2-message for messageboxes, which append a comma to a message -- */
-
-static t_class *add2_comma_class;
-
-typedef struct _add2_comma
-{
-  t_object   x_obj;
-  int        x_size;
-  t_atom     *x_at;
-  t_symbol   *x_sym;
-  t_atomtype x_type;
-} t_add2_comma;
-
-static void add2_comma_bang(t_add2_comma *x)
-{
-  SETCOMMA(x->x_at);
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, x->x_at);
-}
-
-static void add2_comma_float(t_add2_comma *x, t_float f)
-{
-  SETCOMMA(x->x_at);
-  SETFLOAT(x->x_at+1, f);
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 2, x->x_at);
-}
-
-static void add2_comma_symbol(t_add2_comma *x, t_symbol *s)
-{
-  SETCOMMA(x->x_at);
-  SETSYMBOL(x->x_at+1, s);
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 2, x->x_at);
-}
-
-/*static void add2_comma_pointer(t_add2_comma *x, t_gpointer *gp)
-{
-if(!x->x_at)
-{
-x->x_n = 1;
-x->x_at = (t_atom *)getbytes(sizeof(t_atom));
-}
-x->x_ac = 1;
-SETPOINTER(x->x_at, gp);
-x->x_sym = &s_pointer;
-outlet_pointer(x->x_obj.ob_outlet, gp);
-}*/
-
-static void add2_comma_list(t_add2_comma *x, t_symbol *s, int ac, t_atom *av)
-{
-  int i;
-  
-  if((ac+1) > x->x_size)
-  {
-    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+2)*sizeof(t_atom));
-    x->x_size = ac+2;
-  }
-  SETCOMMA(x->x_at);
-  for(i=1; i<=ac; i++)
-    x->x_at[i] = av[i-1];
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+1, x->x_at);
-}
-
-static void add2_comma_anything(t_add2_comma *x, t_symbol *s, int ac, t_atom *av)
-{
-  int i;
-  
-  if((ac+2) > x->x_size)
-  {
-    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+3)*sizeof(t_atom));
-    x->x_size = ac+3;
-  }
-  SETCOMMA(x->x_at);
-  SETSYMBOL(x->x_at+1, s);
-  for(i=1; i<=ac; i++)
-    x->x_at[i+1] = av[i-1];
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+2, x->x_at);
-}
-
-static void add2_comma_free(t_add2_comma *x)
-{
-  if(x->x_at)
-    freebytes(x->x_at, x->x_size * sizeof(t_atom));
-}
-
-static void *add2_comma_new(void)
-{
-  t_add2_comma *x = (t_add2_comma *)pd_new(add2_comma_class);
-  
-  x->x_size = 10;
-  x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
-  x->x_sym = gensym("add2");
-  outlet_new(&x->x_obj, &s_list);
-  return(x);
-}
-
-void add2_comma_setup(void)
-{
-  add2_comma_class = class_new(gensym("add2_comma"), (t_newmethod)add2_comma_new,
-    (t_method)add2_comma_free, sizeof(t_add2_comma), 0, 0);
-  class_addbang(add2_comma_class, (t_method)add2_comma_bang);
-  class_addanything(add2_comma_class, add2_comma_anything);
-  class_addlist(add2_comma_class, add2_comma_list);
-  /*class_addpointer(add2_comma_class, add2_comma_pointer);*/
-  class_addfloat(add2_comma_class, (t_method)add2_comma_float);
-  class_addsymbol(add2_comma_class, add2_comma_symbol);
-  class_sethelpsymbol(add2_comma_class, gensym("iemhelp/help-add2_comma"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* --------------------------------- add2_comma ----------------------------------- */
+/* -- a special add2-message for messageboxes, which append a comma to a message -- */
+
+static t_class *add2_comma_class;
+
+typedef struct _add2_comma
+{
+  t_object   x_obj;
+  int        x_size;
+  t_atom     *x_at;
+  t_symbol   *x_sym;
+  t_atomtype x_type;
+} t_add2_comma;
+
+static void add2_comma_bang(t_add2_comma *x)
+{
+  SETCOMMA(x->x_at);
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, x->x_at);
+}
+
+static void add2_comma_float(t_add2_comma *x, t_float f)
+{
+  SETCOMMA(x->x_at);
+  SETFLOAT(x->x_at+1, f);
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 2, x->x_at);
+}
+
+static void add2_comma_symbol(t_add2_comma *x, t_symbol *s)
+{
+  SETCOMMA(x->x_at);
+  SETSYMBOL(x->x_at+1, s);
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 2, x->x_at);
+}
+
+/*static void add2_comma_pointer(t_add2_comma *x, t_gpointer *gp)
+{
+if(!x->x_at)
+{
+x->x_n = 1;
+x->x_at = (t_atom *)getbytes(sizeof(t_atom));
+}
+x->x_ac = 1;
+SETPOINTER(x->x_at, gp);
+x->x_sym = &s_pointer;
+outlet_pointer(x->x_obj.ob_outlet, gp);
+}*/
+
+static void add2_comma_list(t_add2_comma *x, t_symbol *s, int ac, t_atom *av)
+{
+  int i;
+  
+  if((ac+1) > x->x_size)
+  {
+    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+2)*sizeof(t_atom));
+    x->x_size = ac+2;
+  }
+  SETCOMMA(x->x_at);
+  for(i=1; i<=ac; i++)
+    x->x_at[i] = av[i-1];
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+1, x->x_at);
+}
+
+static void add2_comma_anything(t_add2_comma *x, t_symbol *s, int ac, t_atom *av)
+{
+  int i;
+  
+  if((ac+2) > x->x_size)
+  {
+    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+3)*sizeof(t_atom));
+    x->x_size = ac+3;
+  }
+  SETCOMMA(x->x_at);
+  SETSYMBOL(x->x_at+1, s);
+  for(i=1; i<=ac; i++)
+    x->x_at[i+1] = av[i-1];
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+2, x->x_at);
+}
+
+static void add2_comma_free(t_add2_comma *x)
+{
+  if(x->x_at)
+    freebytes(x->x_at, x->x_size * sizeof(t_atom));
+}
+
+static void *add2_comma_new(void)
+{
+  t_add2_comma *x = (t_add2_comma *)pd_new(add2_comma_class);
+  
+  x->x_size = 10;
+  x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
+  x->x_sym = gensym("add2");
+  outlet_new(&x->x_obj, &s_list);
+  return(x);
+}
+
+void add2_comma_setup(void)
+{
+  add2_comma_class = class_new(gensym("add2_comma"), (t_newmethod)add2_comma_new,
+    (t_method)add2_comma_free, sizeof(t_add2_comma), 0, 0);
+  class_addbang(add2_comma_class, (t_method)add2_comma_bang);
+  class_addanything(add2_comma_class, add2_comma_anything);
+  class_addlist(add2_comma_class, add2_comma_list);
+  /*class_addpointer(add2_comma_class, add2_comma_pointer);*/
+  class_addfloat(add2_comma_class, (t_method)add2_comma_float);
+  class_addsymbol(add2_comma_class, add2_comma_symbol);
+  class_sethelpsymbol(add2_comma_class, gensym("iemhelp/help-add2_comma"));
+}
diff --git a/src/iemlib2/bpe.c b/src/iemlib2/bpe.c
index 5797ba0..bc31ef8 100644
--- a/src/iemlib2/bpe.c
+++ b/src/iemlib2/bpe.c
@@ -1,122 +1,122 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* --------------------------- bpe -------------------------------- */
-/* -- break-point-envelope, convert a list of value-time-doubles -- */
-/* ------- into a time-scheduled stream of value-time-pairs ------- */
-
-static t_class *bpe_class;
-
-typedef struct _bpe
-{
-  t_object x_obj;
-  t_clock  *x_clock;
-  int      x_maxnum;
-  int      x_curnum;
-  int      x_curindex;
-  t_atom   *x_beg;
-  void     *x_out_val;
-  void     *x_out_time;
-  void     *x_out_finished;
-} t_bpe;
-
-static void bpe_stop(t_bpe *x)
-{
-  clock_unset(x->x_clock);
-}
-
-static void bpe_tick(t_bpe *x)
-{
-  t_atom *vec = x->x_beg;
-  float val, time;
-  
-  if(x->x_curindex >= x->x_curnum)
-  {
-    bpe_stop(x);
-    outlet_bang(x->x_out_finished);
-  }
-  else
-  {
-    vec += x->x_curindex;
-    val = atom_getfloat(vec++);
-    time = atom_getfloat(vec);
-    outlet_float(x->x_out_time, time);
-    outlet_float(x->x_out_val, val);
-    x->x_curindex += 2;
-    clock_delay(x->x_clock, time);
-  }
-}
-
-static void bpe_bang(t_bpe *x)
-{
-  t_atom *vec = x->x_beg;
-  float val, time;
-  
-  if(x->x_curnum)
-  {
-    x->x_curindex = 2;
-    val = atom_getfloat(vec++);
-    time = atom_getfloat(vec);
-    outlet_float(x->x_out_time, time);
-    outlet_float(x->x_out_val, val);
-    clock_delay(x->x_clock, time);
-  }
-}
-
-static void bpe_list(t_bpe *x, t_symbol *s, int ac, t_atom *av)
-{
-  int n = ac & 0xfffffffe, i;
-  t_atom *vec = x->x_beg;
-  if(n > x->x_maxnum)
-  {
-    freebytes(x->x_beg, x->x_maxnum*sizeof(t_atom));
-    x->x_maxnum = 2 + n;
-    x->x_beg = (t_atom *)getbytes(x->x_maxnum*sizeof(t_atom));
-    vec = x->x_beg;
-  }
-  x->x_curnum = n;
-  for(i=0; i<n; i++)
-  {
-    *vec++ = *av++;
-  }
-}
-
-static void bpe_free(t_bpe *x)
-{
-  freebytes(x->x_beg, x->x_maxnum*sizeof(t_atom));
-  clock_free(x->x_clock);
-}
-
-static void *bpe_new(void)
-{
-  t_bpe *x = (t_bpe *)pd_new(bpe_class);
-  
-  x->x_curindex = 0;
-  x->x_maxnum = 20;
-  x->x_curnum = 0;
-  x->x_beg = (t_atom *)getbytes(x->x_maxnum*sizeof(t_atom));
-  x->x_clock = clock_new(x, (t_method)bpe_tick);
-  x->x_out_val = outlet_new(&x->x_obj, &s_float);
-  x->x_out_time = outlet_new(&x->x_obj, &s_float);
-  x->x_out_finished = outlet_new(&x->x_obj, &s_bang);
-  return (x);
-}
-
-void bpe_setup(void)
-{
-  bpe_class = class_new(gensym("bpe"), (t_newmethod)bpe_new,
-    (t_method)bpe_free, sizeof(t_bpe), 0, 0);
-  class_addmethod(bpe_class, (t_method)bpe_stop, gensym("stop"), 0);
-  class_addbang(bpe_class, bpe_bang);
-  class_addlist(bpe_class, (t_method)bpe_list);
-  class_sethelpsymbol(bpe_class, gensym("iemhelp/help-bpe"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* --------------------------- bpe -------------------------------- */
+/* -- break-point-envelope, convert a list of value-time-doubles -- */
+/* ------- into a time-scheduled stream of value-time-pairs ------- */
+
+static t_class *bpe_class;
+
+typedef struct _bpe
+{
+  t_object x_obj;
+  t_clock  *x_clock;
+  int      x_maxnum;
+  int      x_curnum;
+  int      x_curindex;
+  t_atom   *x_beg;
+  void     *x_out_val;
+  void     *x_out_time;
+  void     *x_out_finished;
+} t_bpe;
+
+static void bpe_stop(t_bpe *x)
+{
+  clock_unset(x->x_clock);
+}
+
+static void bpe_tick(t_bpe *x)
+{
+  t_atom *vec = x->x_beg;
+  float val, time;
+  
+  if(x->x_curindex >= x->x_curnum)
+  {
+    bpe_stop(x);
+    outlet_bang(x->x_out_finished);
+  }
+  else
+  {
+    vec += x->x_curindex;
+    val = atom_getfloat(vec++);
+    time = atom_getfloat(vec);
+    outlet_float(x->x_out_time, time);
+    outlet_float(x->x_out_val, val);
+    x->x_curindex += 2;
+    clock_delay(x->x_clock, time);
+  }
+}
+
+static void bpe_bang(t_bpe *x)
+{
+  t_atom *vec = x->x_beg;
+  float val, time;
+  
+  if(x->x_curnum)
+  {
+    x->x_curindex = 2;
+    val = atom_getfloat(vec++);
+    time = atom_getfloat(vec);
+    outlet_float(x->x_out_time, time);
+    outlet_float(x->x_out_val, val);
+    clock_delay(x->x_clock, time);
+  }
+}
+
+static void bpe_list(t_bpe *x, t_symbol *s, int ac, t_atom *av)
+{
+  int n = ac & 0xfffffffe, i;
+  t_atom *vec = x->x_beg;
+  if(n > x->x_maxnum)
+  {
+    freebytes(x->x_beg, x->x_maxnum*sizeof(t_atom));
+    x->x_maxnum = 2 + n;
+    x->x_beg = (t_atom *)getbytes(x->x_maxnum*sizeof(t_atom));
+    vec = x->x_beg;
+  }
+  x->x_curnum = n;
+  for(i=0; i<n; i++)
+  {
+    *vec++ = *av++;
+  }
+}
+
+static void bpe_free(t_bpe *x)
+{
+  freebytes(x->x_beg, x->x_maxnum*sizeof(t_atom));
+  clock_free(x->x_clock);
+}
+
+static void *bpe_new(void)
+{
+  t_bpe *x = (t_bpe *)pd_new(bpe_class);
+  
+  x->x_curindex = 0;
+  x->x_maxnum = 20;
+  x->x_curnum = 0;
+  x->x_beg = (t_atom *)getbytes(x->x_maxnum*sizeof(t_atom));
+  x->x_clock = clock_new(x, (t_method)bpe_tick);
+  x->x_out_val = outlet_new(&x->x_obj, &s_float);
+  x->x_out_time = outlet_new(&x->x_obj, &s_float);
+  x->x_out_finished = outlet_new(&x->x_obj, &s_bang);
+  return (x);
+}
+
+void bpe_setup(void)
+{
+  bpe_class = class_new(gensym("bpe"), (t_newmethod)bpe_new,
+    (t_method)bpe_free, sizeof(t_bpe), 0, 0);
+  class_addmethod(bpe_class, (t_method)bpe_stop, gensym("stop"), 0);
+  class_addbang(bpe_class, bpe_bang);
+  class_addlist(bpe_class, (t_method)bpe_list);
+  class_sethelpsymbol(bpe_class, gensym("iemhelp/help-bpe"));
+}
diff --git a/src/iemlib2/dollarg.c b/src/iemlib2/dollarg.c
index 3e90053..c21d29e 100644
--- a/src/iemlib2/dollarg.c
+++ b/src/iemlib2/dollarg.c
@@ -1,110 +1,110 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#include "m_pd.h"
-#include "g_canvas.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
-
-/* ------------------------- dollarg ---------------------------- */
-/* --- dollar-arguments, output the initial-arguments and the --- */
-/* ------- number of them of the parent abstraction-patch ------- */
-
-static t_class *dollarg_class;
-
-typedef struct _dollarg
-{
-  t_object  x_obj;
-  void      *x_outlet_ac;
-  t_atom    *x_at;
-  int       x_ac;
-} t_dollarg;
-
-static void dollarg_float(t_dollarg *x, t_floatarg f)
-{
-  int i = (int)f;
-  
-  if(!i)
-  {
-    outlet_float(x->x_outlet_ac, x->x_ac);
-    if(x->x_ac)
-      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at);
-  }
-  else if(i > 0)
-  {
-    if(i <= x->x_ac)
-    {
-      outlet_float(x->x_outlet_ac, i);
-      if(IS_A_FLOAT(x->x_at, i-1))
-        outlet_float(x->x_obj.ob_outlet, atom_getfloatarg(i-1, x->x_ac, x->x_at));
-      else if(IS_A_SYMBOL(x->x_at, i-1))
-        outlet_symbol(x->x_obj.ob_outlet, atom_getsymbolarg(i-1, x->x_ac, x->x_at));
-    }
-    else
-      outlet_float(x->x_outlet_ac, 0);
-  }
-  else
-  {
-    int j = x->x_ac + i;
-    
-    if(j >= 0)
-    {
-      outlet_float(x->x_outlet_ac, j+1);
-      if(IS_A_FLOAT(x->x_at, j))
-        outlet_float(x->x_obj.ob_outlet, atom_getfloatarg(j, x->x_ac, x->x_at));
-      else if(IS_A_SYMBOL(x->x_at, j))
-        outlet_symbol(x->x_obj.ob_outlet, atom_getsymbolarg(j, x->x_ac, x->x_at));
-    }
-    else
-      outlet_float(x->x_outlet_ac, 0);
-  }
-}
-
-static void dollarg_bang(t_dollarg *x)
-{
-  dollarg_float(x, 0.0f);
-}
-
-static void dollarg_free(t_dollarg *x)
-{
-  if(x->x_ac)
-    freebytes(x->x_at, x->x_ac * sizeof(t_atom));
-}
-
-static void *dollarg_new(void)
-{
-  t_dollarg *x = (t_dollarg *)pd_new(dollarg_class);
-  t_glist *glist=(t_glist *)canvas_getcurrent();
-  t_canvas *canvas=glist_getcanvas(glist);
-  int pargc;
-  t_atom *pargv, *at;
-  
-  canvas_setcurrent(canvas);
-  canvas_getargs(&pargc, &pargv);
-  canvas_unsetcurrent(canvas);
-  x->x_at = (t_atom *)getbytes(pargc*sizeof(t_atom));
-  x->x_ac = pargc;
-  at = x->x_at;
-  while(pargc--)
-    *at++ = *pargv++;
-  outlet_new(&x->x_obj, &s_list);
-  x->x_outlet_ac = outlet_new(&x->x_obj, &s_float);
-  return (x);
-}
-
-void dollarg_setup(void)
-{
-  dollarg_class = class_new(gensym("dollarg"), (t_newmethod)dollarg_new,
-    (t_method)dollarg_free, sizeof(t_dollarg), 0, 0);
-  class_addcreator((t_newmethod)dollarg_new, gensym("$n"), 0);
-  class_addbang(dollarg_class, (t_method)dollarg_bang);
-  class_addfloat(dollarg_class, (t_method)dollarg_float);
-  class_sethelpsymbol(dollarg_class, gensym("iemhelp/help-dollarg"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#include "m_pd.h"
+#include "g_canvas.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
+
+/* ------------------------- dollarg ---------------------------- */
+/* --- dollar-arguments, output the initial-arguments and the --- */
+/* ------- number of them of the parent abstraction-patch ------- */
+
+static t_class *dollarg_class;
+
+typedef struct _dollarg
+{
+  t_object  x_obj;
+  void      *x_outlet_ac;
+  t_atom    *x_at;
+  int       x_ac;
+} t_dollarg;
+
+static void dollarg_float(t_dollarg *x, t_floatarg f)
+{
+  int i = (int)f;
+  
+  if(!i)
+  {
+    outlet_float(x->x_outlet_ac, x->x_ac);
+    if(x->x_ac)
+      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at);
+  }
+  else if(i > 0)
+  {
+    if(i <= x->x_ac)
+    {
+      outlet_float(x->x_outlet_ac, i);
+      if(IS_A_FLOAT(x->x_at, i-1))
+        outlet_float(x->x_obj.ob_outlet, atom_getfloatarg(i-1, x->x_ac, x->x_at));
+      else if(IS_A_SYMBOL(x->x_at, i-1))
+        outlet_symbol(x->x_obj.ob_outlet, atom_getsymbolarg(i-1, x->x_ac, x->x_at));
+    }
+    else
+      outlet_float(x->x_outlet_ac, 0);
+  }
+  else
+  {
+    int j = x->x_ac + i;
+    
+    if(j >= 0)
+    {
+      outlet_float(x->x_outlet_ac, j+1);
+      if(IS_A_FLOAT(x->x_at, j))
+        outlet_float(x->x_obj.ob_outlet, atom_getfloatarg(j, x->x_ac, x->x_at));
+      else if(IS_A_SYMBOL(x->x_at, j))
+        outlet_symbol(x->x_obj.ob_outlet, atom_getsymbolarg(j, x->x_ac, x->x_at));
+    }
+    else
+      outlet_float(x->x_outlet_ac, 0);
+  }
+}
+
+static void dollarg_bang(t_dollarg *x)
+{
+  dollarg_float(x, 0.0f);
+}
+
+static void dollarg_free(t_dollarg *x)
+{
+  if(x->x_ac)
+    freebytes(x->x_at, x->x_ac * sizeof(t_atom));
+}
+
+static void *dollarg_new(void)
+{
+  t_dollarg *x = (t_dollarg *)pd_new(dollarg_class);
+  t_glist *glist=(t_glist *)canvas_getcurrent();
+  t_canvas *canvas=glist_getcanvas(glist);
+  int pargc;
+  t_atom *pargv, *at;
+  
+  canvas_setcurrent(canvas);
+  canvas_getargs(&pargc, &pargv);
+  canvas_unsetcurrent(canvas);
+  x->x_at = (t_atom *)getbytes(pargc*sizeof(t_atom));
+  x->x_ac = pargc;
+  at = x->x_at;
+  while(pargc--)
+    *at++ = *pargv++;
+  outlet_new(&x->x_obj, &s_list);
+  x->x_outlet_ac = outlet_new(&x->x_obj, &s_float);
+  return (x);
+}
+
+void dollarg_setup(void)
+{
+  dollarg_class = class_new(gensym("dollarg"), (t_newmethod)dollarg_new,
+    (t_method)dollarg_free, sizeof(t_dollarg), 0, 0);
+  class_addcreator((t_newmethod)dollarg_new, gensym("$n"), 0);
+  class_addbang(dollarg_class, (t_method)dollarg_bang);
+  class_addfloat(dollarg_class, (t_method)dollarg_float);
+  class_sethelpsymbol(dollarg_class, gensym("iemhelp/help-dollarg"));
+}
diff --git a/src/iemlib2/exp_inc.c b/src/iemlib2/exp_inc.c
index ed3e585..9f3a935 100644
--- a/src/iemlib2/exp_inc.c
+++ b/src/iemlib2/exp_inc.c
@@ -1,135 +1,135 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* ------------------------ exp_inc ---------------------------- */
-/* ------- exponetial/linear-incremental-bang-counter ---------- */
-
-
-static t_class *exp_inc_class;
-
-typedef struct _exp_inc
-{
-  t_object x_obj;
-  float    x_initialval;
-  float    x_currentval;
-  float    x_mulfactor;
-  float    x_addincrement;
-  float    x_min;
-  float    x_max;
-} t_exp_inc;
-
-static void exp_inc_bang(t_exp_inc *x)
-{                                                   
-  outlet_float(x->x_obj.ob_outlet, x->x_currentval);
-  x->x_currentval = x->x_currentval * x->x_mulfactor + x->x_addincrement;
-  if(x->x_currentval < x->x_min)
-    x->x_currentval = x->x_min;
-  if(x->x_currentval > x->x_max)
-    x->x_currentval = x->x_max;
-}
-
-static void exp_inc_reset(t_exp_inc *x)
-{
-  x->x_currentval = x->x_initialval;
-  if(x->x_currentval < x->x_min)
-    x->x_currentval = x->x_min;
-  if(x->x_currentval > x->x_max)
-    x->x_currentval = x->x_max;
-}
-
-static void exp_inc_float(t_exp_inc *x, t_floatarg f)
-{
-  x->x_initialval = (float)f;
-  x->x_currentval = x->x_initialval;
-  if(x->x_currentval < x->x_min)
-    x->x_currentval = x->x_min;
-  if(x->x_currentval > x->x_max)
-    x->x_currentval = x->x_max;
-}
-
-static void exp_inc_ft1(t_exp_inc *x, t_floatarg f)
-{
-  x->x_mulfactor = 1.0 + 0.01*(float)f;
-}
-
-static void exp_inc_ft2(t_exp_inc *x, t_floatarg f)
-{
-  x->x_addincrement = (float)f;
-}
-
-static void exp_inc_ft3(t_exp_inc *x, t_floatarg f)
-{
-  x->x_min = (float)f;
-  if(x->x_currentval < x->x_min)
-    x->x_currentval = x->x_min;
-}
-
-static void exp_inc_ft4(t_exp_inc *x, t_floatarg f)
-{
-  x->x_max = (float)f;
-  if(x->x_currentval > x->x_max)
-    x->x_currentval = x->x_max;
-}
-
-static void exp_inc_list(t_exp_inc *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac == 5)&&IS_A_FLOAT(av,0)&&IS_A_FLOAT(av,1)&&IS_A_FLOAT(av,2)
-    &&IS_A_FLOAT(av,3)&&IS_A_FLOAT(av,4))
-  {
-    exp_inc_ft4(x, atom_getfloatarg(4, ac, av));
-    exp_inc_ft3(x, atom_getfloatarg(3, ac, av));
-    exp_inc_ft2(x, atom_getfloatarg(2, ac, av));
-    exp_inc_ft1(x, atom_getfloatarg(1, ac, av));
-    exp_inc_float(x, atom_getfloatarg(0, ac, av));
-  }
-}
-
-static void *exp_inc_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_exp_inc *x = (t_exp_inc *)pd_new(exp_inc_class);
-  
-  x->x_currentval = 10.0;
-  x->x_mulfactor = 1.0;
-  x->x_addincrement = 0.0;
-  x->x_min = 0.0;
-  x->x_max = 1000.0;
-  if((ac == 5)&&IS_A_FLOAT(av,0)&&IS_A_FLOAT(av,1)&&IS_A_FLOAT(av,2)
-    &&IS_A_FLOAT(av,3)&&IS_A_FLOAT(av,4))
-  {
-    exp_inc_ft4(x, atom_getfloatarg(4, ac, av));
-    exp_inc_ft3(x, atom_getfloatarg(3, ac, av));
-    exp_inc_ft2(x, atom_getfloatarg(2, ac, av));
-    exp_inc_ft1(x, atom_getfloatarg(1, ac, av));
-    exp_inc_float(x, atom_getfloatarg(0, ac, av));
-  }
-  outlet_new(&x->x_obj, &s_float);
-  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
-  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft2"));
-  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft3"));
-  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft4"));
-  return (x);
-}
-
-void exp_inc_setup(void)
-{
-  exp_inc_class = class_new(gensym("exp_inc"), (t_newmethod)exp_inc_new,
-    0, sizeof(t_exp_inc), 0, A_GIMME, 0);
-  class_addbang(exp_inc_class, exp_inc_bang);
-  class_addlist(exp_inc_class, (t_method)exp_inc_list);
-  class_addmethod(exp_inc_class, (t_method)exp_inc_reset, gensym("reset"), 0);
-  class_addfloat(exp_inc_class, (t_method)exp_inc_float);
-  class_addmethod(exp_inc_class, (t_method)exp_inc_ft1, gensym("ft1"), A_FLOAT, 0);
-  class_addmethod(exp_inc_class, (t_method)exp_inc_ft2, gensym("ft2"), A_FLOAT, 0);
-  class_addmethod(exp_inc_class, (t_method)exp_inc_ft3, gensym("ft3"), A_FLOAT, 0);
-  class_addmethod(exp_inc_class, (t_method)exp_inc_ft4, gensym("ft4"), A_FLOAT, 0);
-  class_sethelpsymbol(exp_inc_class, gensym("iemhelp/help-exp_inc"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* ------------------------ exp_inc ---------------------------- */
+/* ------- exponetial/linear-incremental-bang-counter ---------- */
+
+
+static t_class *exp_inc_class;
+
+typedef struct _exp_inc
+{
+  t_object x_obj;
+  float    x_initialval;
+  float    x_currentval;
+  float    x_mulfactor;
+  float    x_addincrement;
+  float    x_min;
+  float    x_max;
+} t_exp_inc;
+
+static void exp_inc_bang(t_exp_inc *x)
+{                                                   
+  outlet_float(x->x_obj.ob_outlet, x->x_currentval);
+  x->x_currentval = x->x_currentval * x->x_mulfactor + x->x_addincrement;
+  if(x->x_currentval < x->x_min)
+    x->x_currentval = x->x_min;
+  if(x->x_currentval > x->x_max)
+    x->x_currentval = x->x_max;
+}
+
+static void exp_inc_reset(t_exp_inc *x)
+{
+  x->x_currentval = x->x_initialval;
+  if(x->x_currentval < x->x_min)
+    x->x_currentval = x->x_min;
+  if(x->x_currentval > x->x_max)
+    x->x_currentval = x->x_max;
+}
+
+static void exp_inc_float(t_exp_inc *x, t_floatarg f)
+{
+  x->x_initialval = (float)f;
+  x->x_currentval = x->x_initialval;
+  if(x->x_currentval < x->x_min)
+    x->x_currentval = x->x_min;
+  if(x->x_currentval > x->x_max)
+    x->x_currentval = x->x_max;
+}
+
+static void exp_inc_ft1(t_exp_inc *x, t_floatarg f)
+{
+  x->x_mulfactor = 1.0 + 0.01*(float)f;
+}
+
+static void exp_inc_ft2(t_exp_inc *x, t_floatarg f)
+{
+  x->x_addincrement = (float)f;
+}
+
+static void exp_inc_ft3(t_exp_inc *x, t_floatarg f)
+{
+  x->x_min = (float)f;
+  if(x->x_currentval < x->x_min)
+    x->x_currentval = x->x_min;
+}
+
+static void exp_inc_ft4(t_exp_inc *x, t_floatarg f)
+{
+  x->x_max = (float)f;
+  if(x->x_currentval > x->x_max)
+    x->x_currentval = x->x_max;
+}
+
+static void exp_inc_list(t_exp_inc *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac == 5)&&IS_A_FLOAT(av,0)&&IS_A_FLOAT(av,1)&&IS_A_FLOAT(av,2)
+    &&IS_A_FLOAT(av,3)&&IS_A_FLOAT(av,4))
+  {
+    exp_inc_ft4(x, atom_getfloatarg(4, ac, av));
+    exp_inc_ft3(x, atom_getfloatarg(3, ac, av));
+    exp_inc_ft2(x, atom_getfloatarg(2, ac, av));
+    exp_inc_ft1(x, atom_getfloatarg(1, ac, av));
+    exp_inc_float(x, atom_getfloatarg(0, ac, av));
+  }
+}
+
+static void *exp_inc_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_exp_inc *x = (t_exp_inc *)pd_new(exp_inc_class);
+  
+  x->x_currentval = 10.0;
+  x->x_mulfactor = 1.0;
+  x->x_addincrement = 0.0;
+  x->x_min = 0.0;
+  x->x_max = 1000.0;
+  if((ac == 5)&&IS_A_FLOAT(av,0)&&IS_A_FLOAT(av,1)&&IS_A_FLOAT(av,2)
+    &&IS_A_FLOAT(av,3)&&IS_A_FLOAT(av,4))
+  {
+    exp_inc_ft4(x, atom_getfloatarg(4, ac, av));
+    exp_inc_ft3(x, atom_getfloatarg(3, ac, av));
+    exp_inc_ft2(x, atom_getfloatarg(2, ac, av));
+    exp_inc_ft1(x, atom_getfloatarg(1, ac, av));
+    exp_inc_float(x, atom_getfloatarg(0, ac, av));
+  }
+  outlet_new(&x->x_obj, &s_float);
+  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
+  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft2"));
+  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft3"));
+  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft4"));
+  return (x);
+}
+
+void exp_inc_setup(void)
+{
+  exp_inc_class = class_new(gensym("exp_inc"), (t_newmethod)exp_inc_new,
+    0, sizeof(t_exp_inc), 0, A_GIMME, 0);
+  class_addbang(exp_inc_class, exp_inc_bang);
+  class_addlist(exp_inc_class, (t_method)exp_inc_list);
+  class_addmethod(exp_inc_class, (t_method)exp_inc_reset, gensym("reset"), 0);
+  class_addfloat(exp_inc_class, (t_method)exp_inc_float);
+  class_addmethod(exp_inc_class, (t_method)exp_inc_ft1, gensym("ft1"), A_FLOAT, 0);
+  class_addmethod(exp_inc_class, (t_method)exp_inc_ft2, gensym("ft2"), A_FLOAT, 0);
+  class_addmethod(exp_inc_class, (t_method)exp_inc_ft3, gensym("ft3"), A_FLOAT, 0);
+  class_addmethod(exp_inc_class, (t_method)exp_inc_ft4, gensym("ft4"), A_FLOAT, 0);
+  class_sethelpsymbol(exp_inc_class, gensym("iemhelp/help-exp_inc"));
+}
diff --git a/src/iemlib2/float24.c b/src/iemlib2/float24.c
index ce4338c..7c313fe 100644
--- a/src/iemlib2/float24.c
+++ b/src/iemlib2/float24.c
@@ -1,81 +1,81 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* -------------------------- float24 ----------------------- */
-/* ----------- float-object with 24 bit accuracy ------------ */
-/* -- concaternate a list of float-arguments to one string -- */
-/* ----------- and convert it to a float-number ------------- */
-
-typedef struct _float24
-{
-  t_object  x_obj;
-  float     x_arg;
-} t_float24;
-
-static t_class *float24_class;
-
-static float float24_calc_sum(int argc, t_atom *argv)
-{
-  int i;
-  char str[1000], buf[100];
-  
-  str[0] = 0;
-  for(i=0; i<argc; i++)
-  {
-    if(IS_A_FLOAT(argv, i))
-    {
-      sprintf(buf, "%g", (float)atom_getfloatarg(i, argc, argv));
-      strcat(str, buf);
-    }
-  }
-  return(atof(str));
-}
-
-static void float24_bang(t_float24 *x)
-{
-  outlet_float(x->x_obj.ob_outlet, x->x_arg);
-}
-
-static void float24_float(t_float24 *x, t_float f)
-{
-  x->x_arg = f;
-  float24_bang(x);
-}
-
-static void float24_list(t_float24 *x, t_symbol *s, int argc, t_atom *argv)
-{
-  if(argc > 0)
-    x->x_arg = float24_calc_sum(argc, argv);
-  float24_bang(x);
-}
-
-static void *float24_new(t_symbol *s, int argc, t_atom *argv)
-{
-  t_float24 *x = (t_float24 *)pd_new(float24_class);
-  
-  outlet_new(&x->x_obj, &s_float);
-  x->x_arg = 0.0f;
-  if(argc > 0)
-    x->x_arg = float24_calc_sum(argc, argv);
-  return (x);
-}
-
-void float24_setup(void)
-{
-  float24_class = class_new(gensym("float24"), (t_newmethod)float24_new, 0,
-    sizeof(t_float24), 0, A_GIMME, 0);
-  class_addcreator((t_newmethod)float24_new, gensym("f24"), A_GIMME, 0);
-  class_addbang(float24_class, (t_method)float24_bang);
-  class_addfloat(float24_class, (t_method)float24_float);
-  class_addlist(float24_class, (t_method)float24_list);
-  class_sethelpsymbol(float24_class, gensym("iemhelp/help-float24"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* -------------------------- float24 ----------------------- */
+/* ----------- float-object with 24 bit accuracy ------------ */
+/* -- concaternate a list of float-arguments to one string -- */
+/* ----------- and convert it to a float-number ------------- */
+
+typedef struct _float24
+{
+  t_object  x_obj;
+  float     x_arg;
+} t_float24;
+
+static t_class *float24_class;
+
+static float float24_calc_sum(int argc, t_atom *argv)
+{
+  int i;
+  char str[1000], buf[100];
+  
+  str[0] = 0;
+  for(i=0; i<argc; i++)
+  {
+    if(IS_A_FLOAT(argv, i))
+    {
+      sprintf(buf, "%g", (float)atom_getfloatarg(i, argc, argv));
+      strcat(str, buf);
+    }
+  }
+  return(atof(str));
+}
+
+static void float24_bang(t_float24 *x)
+{
+  outlet_float(x->x_obj.ob_outlet, x->x_arg);
+}
+
+static void float24_float(t_float24 *x, t_float f)
+{
+  x->x_arg = f;
+  float24_bang(x);
+}
+
+static void float24_list(t_float24 *x, t_symbol *s, int argc, t_atom *argv)
+{
+  if(argc > 0)
+    x->x_arg = float24_calc_sum(argc, argv);
+  float24_bang(x);
+}
+
+static void *float24_new(t_symbol *s, int argc, t_atom *argv)
+{
+  t_float24 *x = (t_float24 *)pd_new(float24_class);
+  
+  outlet_new(&x->x_obj, &s_float);
+  x->x_arg = 0.0f;
+  if(argc > 0)
+    x->x_arg = float24_calc_sum(argc, argv);
+  return (x);
+}
+
+void float24_setup(void)
+{
+  float24_class = class_new(gensym("float24"), (t_newmethod)float24_new, 0,
+    sizeof(t_float24), 0, A_GIMME, 0);
+  class_addcreator((t_newmethod)float24_new, gensym("f24"), A_GIMME, 0);
+  class_addbang(float24_class, (t_method)float24_bang);
+  class_addfloat(float24_class, (t_method)float24_float);
+  class_addlist(float24_class, (t_method)float24_list);
+  class_sethelpsymbol(float24_class, gensym("iemhelp/help-float24"));
+}
diff --git a/src/iemlib2/iem_anything.c b/src/iemlib2/iem_anything.c
index bf92421..54e86d2 100644
--- a/src/iemlib2/iem_anything.c
+++ b/src/iemlib2/iem_anything.c
@@ -1,145 +1,145 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* ------------------------------- iem_anything ---------------------------------- */
-/* -- storage object for any message (bang, float, symbol, list, selector-list) -- */
-/* ---------- with a hot and a cold inlet (like object float or symbol) ---------- */
-/* ----------- initial arguments are equal to a message of cold inlet ------------ */
-
-struct _iem_anything_proxy;
-
-static t_class *iem_anything_class;
-static t_class *iem_anything_proxy_class;
-
-typedef struct _iem_anything
-{
-  t_object                    x_obj;
-	struct _iem_anything_proxy  *x_proxy_inlet;
-  int                         x_size;
-  int                         x_ac;
-  t_atom                      *x_at;
-  t_symbol                    *x_selector_sym;
-} t_iem_anything;
-
-typedef struct _iem_anything_proxy
-{
-  t_object        p_obj;
-  t_iem_anything  *p_owner;
-} t_iem_anything_proxy;
-
-static void iem_anything_atcopy(t_atom *src, t_atom *dst, int n)
-{
-  while(n--)
-    *dst++ = *src++;
-}
-
-static void iem_anything_anything(t_iem_anything *x, t_symbol *s, int ac, t_atom *av)
-{
-  if(ac > x->x_size)
-  {
-    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (10 + ac)*sizeof(t_atom));
-    x->x_size = 10 + ac;
-  }
-  x->x_ac = ac;
-  x->x_selector_sym = s;
-  iem_anything_atcopy(av, x->x_at, ac);
-  outlet_anything(x->x_obj.ob_outlet, s, ac, av);
-}
-
-static void iem_anything_bang(t_iem_anything *x)
-{
-  if((x->x_selector_sym == &s_bang) && !x->x_ac)
-  {
-		outlet_bang(x->x_obj.ob_outlet);
-  }
-	else
-	{
-		outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac, x->x_at);
-	}
-}
-
-/* begin of proxy methods (anything inlets) */
-
-static void iem_anything_proxy_anything(t_iem_anything_proxy *p, t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_anything *x = p->p_owner;
-
-	if(ac > x->x_size)
-  {
-    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (10 + ac)*sizeof(t_atom));
-    x->x_size = 10 + ac;
-  }
-  x->x_ac = ac;
-  x->x_selector_sym = s;
-  iem_anything_atcopy(av, x->x_at, ac);
-}
-
-/* end of proxy methods (anything inlets) */
-
-static void iem_anything_free(t_iem_anything *x)
-{
-  if(x->x_at)
-    freebytes(x->x_at, x->x_size * sizeof(t_atom));
-  if(x->x_proxy_inlet)
-    pd_free((t_pd *)x->x_proxy_inlet);
-}
-
-static void *iem_anything_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_anything *x = (t_iem_anything *)pd_new(iem_anything_class);
-  t_iem_anything_proxy *p = (t_iem_anything_proxy *)pd_new(iem_anything_proxy_class);
-
-  x->x_proxy_inlet = p;
-  p->p_owner = x;
-
-	x->x_size = 10 + ac;
-	x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
-	x->x_ac = ac;
-  if(!ac)
-  {
-    x->x_selector_sym = &s_bang;
-  }
-	else if(IS_A_SYMBOL(av, 0))
-  {
-		x->x_selector_sym = atom_getsymbol(av);
-		x->x_ac--;
-    iem_anything_proxy_anything(p, x->x_selector_sym, x->x_ac, av+1);
-	}
-  else
-	{
-		x->x_selector_sym = &s_list;
-		iem_anything_proxy_anything(p, x->x_selector_sym, x->x_ac, av);
-	}
-  inlet_new((t_object *)x, (t_pd *)p, 0, 0);
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void iem_anything_setup(void)
-{
-  iem_anything_class = class_new(gensym("iem_anything"),
-    (t_newmethod)iem_anything_new, (t_method)iem_anything_free,
-    sizeof(t_iem_anything), 0, A_GIMME, 0);
-	class_addcreator((t_newmethod)iem_anything_new, gensym("any"), A_GIMME, 0);
-
-  class_addanything(iem_anything_class, iem_anything_anything);
-	class_addbang(iem_anything_class, iem_anything_bang);
-  class_sethelpsymbol(iem_anything_class, gensym("iemhelp/help-iem_anything"));
-
-  iem_anything_proxy_class = class_new(gensym("_iem_anything_proxy"),
-    0, 0, sizeof(t_iem_anything_proxy), CLASS_PD | CLASS_NOINLET, 0);
-  class_addanything(iem_anything_proxy_class, iem_anything_proxy_anything);
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* ------------------------------- iem_anything ---------------------------------- */
+/* -- storage object for any message (bang, float, symbol, list, selector-list) -- */
+/* ---------- with a hot and a cold inlet (like object float or symbol) ---------- */
+/* ----------- initial arguments are equal to a message of cold inlet ------------ */
+
+struct _iem_anything_proxy;
+
+static t_class *iem_anything_class;
+static t_class *iem_anything_proxy_class;
+
+typedef struct _iem_anything
+{
+  t_object                    x_obj;
+	struct _iem_anything_proxy  *x_proxy_inlet;
+  int                         x_size;
+  int                         x_ac;
+  t_atom                      *x_at;
+  t_symbol                    *x_selector_sym;
+} t_iem_anything;
+
+typedef struct _iem_anything_proxy
+{
+  t_object        p_obj;
+  t_iem_anything  *p_owner;
+} t_iem_anything_proxy;
+
+static void iem_anything_atcopy(t_atom *src, t_atom *dst, int n)
+{
+  while(n--)
+    *dst++ = *src++;
+}
+
+static void iem_anything_anything(t_iem_anything *x, t_symbol *s, int ac, t_atom *av)
+{
+  if(ac > x->x_size)
+  {
+    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (10 + ac)*sizeof(t_atom));
+    x->x_size = 10 + ac;
+  }
+  x->x_ac = ac;
+  x->x_selector_sym = s;
+  iem_anything_atcopy(av, x->x_at, ac);
+  outlet_anything(x->x_obj.ob_outlet, s, ac, av);
+}
+
+static void iem_anything_bang(t_iem_anything *x)
+{
+  if((x->x_selector_sym == &s_bang) && !x->x_ac)
+  {
+		outlet_bang(x->x_obj.ob_outlet);
+  }
+	else
+	{
+		outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac, x->x_at);
+	}
+}
+
+/* begin of proxy methods (anything inlets) */
+
+static void iem_anything_proxy_anything(t_iem_anything_proxy *p, t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_anything *x = p->p_owner;
+
+	if(ac > x->x_size)
+  {
+    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (10 + ac)*sizeof(t_atom));
+    x->x_size = 10 + ac;
+  }
+  x->x_ac = ac;
+  x->x_selector_sym = s;
+  iem_anything_atcopy(av, x->x_at, ac);
+}
+
+/* end of proxy methods (anything inlets) */
+
+static void iem_anything_free(t_iem_anything *x)
+{
+  if(x->x_at)
+    freebytes(x->x_at, x->x_size * sizeof(t_atom));
+  if(x->x_proxy_inlet)
+    pd_free((t_pd *)x->x_proxy_inlet);
+}
+
+static void *iem_anything_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_anything *x = (t_iem_anything *)pd_new(iem_anything_class);
+  t_iem_anything_proxy *p = (t_iem_anything_proxy *)pd_new(iem_anything_proxy_class);
+
+  x->x_proxy_inlet = p;
+  p->p_owner = x;
+
+	x->x_size = 10 + ac;
+	x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
+	x->x_ac = ac;
+  if(!ac)
+  {
+    x->x_selector_sym = &s_bang;
+  }
+	else if(IS_A_SYMBOL(av, 0))
+  {
+		x->x_selector_sym = atom_getsymbol(av);
+		x->x_ac--;
+    iem_anything_proxy_anything(p, x->x_selector_sym, x->x_ac, av+1);
+	}
+  else
+	{
+		x->x_selector_sym = &s_list;
+		iem_anything_proxy_anything(p, x->x_selector_sym, x->x_ac, av);
+	}
+  inlet_new((t_object *)x, (t_pd *)p, 0, 0);
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void iem_anything_setup(void)
+{
+  iem_anything_class = class_new(gensym("iem_anything"),
+    (t_newmethod)iem_anything_new, (t_method)iem_anything_free,
+    sizeof(t_iem_anything), 0, A_GIMME, 0);
+	class_addcreator((t_newmethod)iem_anything_new, gensym("any"), A_GIMME, 0);
+
+  class_addanything(iem_anything_class, iem_anything_anything);
+	class_addbang(iem_anything_class, iem_anything_bang);
+  class_sethelpsymbol(iem_anything_class, gensym("iemhelp/help-iem_anything"));
+
+  iem_anything_proxy_class = class_new(gensym("_iem_anything_proxy"),
+    0, 0, sizeof(t_iem_anything_proxy), CLASS_PD | CLASS_NOINLET, 0);
+  class_addanything(iem_anything_proxy_class, iem_anything_proxy_anything);
+}
diff --git a/src/iemlib2/iem_anything_kernel.c b/src/iemlib2/iem_anything_kernel.c
index 946538e..0ea411d 100644
--- a/src/iemlib2/iem_anything_kernel.c
+++ b/src/iemlib2/iem_anything_kernel.c
@@ -1,148 +1,148 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "g_canvas.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
-
-/* ------------------------ iem_anything_kernel ---------------------------- */
-
-static t_class *iem_anything_kernel_class;
-
-typedef struct _iem_anything_kernel
-{
-  t_object      x_obj;
-  int           x_inlet_select;
-  int           x_size;
-  int           x_ac;
-  t_atom        *x_at;
-  t_symbol      *x_sym;
-} t_iem_anything_kernel;
-
-static void iem_anything_kernel_atcopy(t_atom *src, t_atom *dst, int n)
-{
-  while(n--)
-    *dst++ = *src++;
-}
-
-static void iem_anything_kernel_inlet_select(t_iem_anything_kernel *x, t_floatarg in_sel_01)
-{
-  x->x_inlet_select = (int)in_sel_01;
-}
-
-static void iem_anything_kernel_anything(t_iem_anything_kernel *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac == 0)&&(s == &s_bang))
-  {
-    if(x->x_inlet_select)
-    {
-      x->x_ac = ac;
-      x->x_sym = s;
-    }
-    else
-      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at);
-  }
-  else
-  {
-    if(ac > x->x_size)
-    {
-      x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), ac*sizeof(t_atom));
-      x->x_size = ac;
-    }
-    x->x_ac = ac;
-    x->x_sym = s;
-    iem_anything_kernel_atcopy(av, x->x_at, ac);
-    if(!x->x_inlet_select)
-      outlet_anything(x->x_obj.ob_outlet, s, ac, av);
-  }
-}
-
-static void iem_anything_kernel_free(t_iem_anything_kernel *x)
-{
-  if(x->x_at)
-    freebytes(x->x_at, x->x_size * sizeof(t_atom));
-}
-
-static void *iem_anything_kernel_new(void)
-{
-  t_iem_anything_kernel *x = (t_iem_anything_kernel *)pd_new(iem_anything_kernel_class);
-  t_glist *glist = (t_glist *)canvas_getcurrent();
-  t_canvas *canvas=glist_getcanvas(glist);
-  int ac=0;
-  t_atom *av;
-  
-  canvas_setcurrent(canvas);
-  canvas_getargs(&ac, &av);
-  canvas_unsetcurrent(canvas);
-  
-  if(!ac)
-  {
-    x->x_sym = &s_bang;
-    x->x_size = 10;
-    x->x_ac = 0;
-    x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
-  }
-  else if(ac == 1)
-  {
-    x->x_size = 10;
-    x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
-    if(IS_A_SYMBOL(av,0))
-    {
-      x->x_sym = atom_getsymbol(av);
-      x->x_ac = 0;
-    }
-    else
-    {
-      x->x_sym = &s_list;
-      x->x_ac = 1;
-      x->x_at[0] = *av;
-    }
-  }
-  else /* ac > 1 */
-  {
-    if(IS_A_SYMBOL(av,0))
-    {
-      x->x_sym = atom_getsymbol(av++);
-      ac--;
-    }
-    else
-      x->x_sym = &s_list;
-    if(ac < 10)
-      x->x_size = 10;
-    else
-      x->x_size = ac;
-    x->x_ac = ac;
-    x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
-    iem_anything_kernel_atcopy(av, x->x_at, ac);
-  }
-  x->x_inlet_select = 1;
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void iem_anything_kernel_setup(void)
-{
-  char str[2];
-  
-  str[0] = 1;/*inlet-sym = "\0x01"*/
-  str[1] = 0;
-  iem_anything_kernel_class = class_new(gensym("iem_anything_kernel"),
-    (t_newmethod)iem_anything_kernel_new, (t_method)iem_anything_kernel_free,
-    sizeof(t_iem_anything_kernel), 0, 0);
-  class_addmethod(iem_anything_kernel_class, (t_method)iem_anything_kernel_inlet_select, gensym(str), A_FLOAT, 0);
-  class_addanything(iem_anything_kernel_class, iem_anything_kernel_anything);
-  class_sethelpsymbol(iem_anything_kernel_class, gensym("iemhelp/help-iem_anything"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "g_canvas.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
+
+/* ------------------------ iem_anything_kernel ---------------------------- */
+
+static t_class *iem_anything_kernel_class;
+
+typedef struct _iem_anything_kernel
+{
+  t_object      x_obj;
+  int           x_inlet_select;
+  int           x_size;
+  int           x_ac;
+  t_atom        *x_at;
+  t_symbol      *x_sym;
+} t_iem_anything_kernel;
+
+static void iem_anything_kernel_atcopy(t_atom *src, t_atom *dst, int n)
+{
+  while(n--)
+    *dst++ = *src++;
+}
+
+static void iem_anything_kernel_inlet_select(t_iem_anything_kernel *x, t_floatarg in_sel_01)
+{
+  x->x_inlet_select = (int)in_sel_01;
+}
+
+static void iem_anything_kernel_anything(t_iem_anything_kernel *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac == 0)&&(s == &s_bang))
+  {
+    if(x->x_inlet_select)
+    {
+      x->x_ac = ac;
+      x->x_sym = s;
+    }
+    else
+      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at);
+  }
+  else
+  {
+    if(ac > x->x_size)
+    {
+      x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), ac*sizeof(t_atom));
+      x->x_size = ac;
+    }
+    x->x_ac = ac;
+    x->x_sym = s;
+    iem_anything_kernel_atcopy(av, x->x_at, ac);
+    if(!x->x_inlet_select)
+      outlet_anything(x->x_obj.ob_outlet, s, ac, av);
+  }
+}
+
+static void iem_anything_kernel_free(t_iem_anything_kernel *x)
+{
+  if(x->x_at)
+    freebytes(x->x_at, x->x_size * sizeof(t_atom));
+}
+
+static void *iem_anything_kernel_new(void)
+{
+  t_iem_anything_kernel *x = (t_iem_anything_kernel *)pd_new(iem_anything_kernel_class);
+  t_glist *glist = (t_glist *)canvas_getcurrent();
+  t_canvas *canvas=glist_getcanvas(glist);
+  int ac=0;
+  t_atom *av;
+  
+  canvas_setcurrent(canvas);
+  canvas_getargs(&ac, &av);
+  canvas_unsetcurrent(canvas);
+  
+  if(!ac)
+  {
+    x->x_sym = &s_bang;
+    x->x_size = 10;
+    x->x_ac = 0;
+    x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
+  }
+  else if(ac == 1)
+  {
+    x->x_size = 10;
+    x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
+    if(IS_A_SYMBOL(av,0))
+    {
+      x->x_sym = atom_getsymbol(av);
+      x->x_ac = 0;
+    }
+    else
+    {
+      x->x_sym = &s_list;
+      x->x_ac = 1;
+      x->x_at[0] = *av;
+    }
+  }
+  else /* ac > 1 */
+  {
+    if(IS_A_SYMBOL(av,0))
+    {
+      x->x_sym = atom_getsymbol(av++);
+      ac--;
+    }
+    else
+      x->x_sym = &s_list;
+    if(ac < 10)
+      x->x_size = 10;
+    else
+      x->x_size = ac;
+    x->x_ac = ac;
+    x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
+    iem_anything_kernel_atcopy(av, x->x_at, ac);
+  }
+  x->x_inlet_select = 1;
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void iem_anything_kernel_setup(void)
+{
+  char str[2];
+  
+  str[0] = 1;/*inlet-sym = "\0x01"*/
+  str[1] = 0;
+  iem_anything_kernel_class = class_new(gensym("iem_anything_kernel"),
+    (t_newmethod)iem_anything_kernel_new, (t_method)iem_anything_kernel_free,
+    sizeof(t_iem_anything_kernel), 0, 0);
+  class_addmethod(iem_anything_kernel_class, (t_method)iem_anything_kernel_inlet_select, gensym(str), A_FLOAT, 0);
+  class_addanything(iem_anything_kernel_class, iem_anything_kernel_anything);
+  class_sethelpsymbol(iem_anything_kernel_class, gensym("iemhelp/help-iem_anything"));
+}
diff --git a/src/iemlib2/iem_append.c b/src/iemlib2/iem_append.c
index 23237f6..ffb4829 100644
--- a/src/iemlib2/iem_append.c
+++ b/src/iemlib2/iem_append.c
@@ -1,363 +1,363 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-
-/* ----------------------- iem_append -------------------------- */
-/* -- concatenates message from hot (left) inlet with message -- */
-/* ------ from cold (right) inlet and outputs it;  initial ----- */
-/* -- arguments (appendix) are eqal to message of cold inlet --- */
-
-
-struct _iem_append_proxy;
-
-static t_class *iem_append_class;
-static t_class *iem_append_proxy_class;
-
-typedef struct _iem_append
-{
-  t_object                  x_obj;
-	struct _iem_append_proxy  *x_proxy_inlet;
-  int                       x_size12;
-  int                       x_size2;
-  int                       x_ac1;
-  int                       x_ac2;
-  t_atom                    *x_at12;
-  t_atom                    *x_at2;
-  t_symbol                  *x_selector_sym1;
-  t_symbol                  *x_selector_sym2;
-  t_atomtype                x_type1;
-  t_atomtype                x_type2;
-} t_iem_append;
-
-typedef struct _iem_append_proxy
-{
-  t_object      p_obj;
-  t_iem_append  *p_owner;
-} t_iem_append_proxy;
-
-static void iem_append_atcopy(t_atom *src, t_atom *dst, int n)
-{
-  while(n--)
-    *dst++ = *src++;
-}
-
-static void iem_append_merge(t_iem_append *x, int off)
-{
-  if((x->x_ac1+x->x_ac2+1) > x->x_size12)
-  {
-    x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_ac1+x->x_ac2+1)*sizeof(t_atom));
-    x->x_size12 = 2*(x->x_ac1+x->x_ac2+1);
-  }
-  if(off)
-    SETSYMBOL(x->x_at12 + x->x_ac1, x->x_selector_sym2);
-  iem_append_atcopy(x->x_at2, x->x_at12 + x->x_ac1 + off, x->x_ac2);
-}
-
-static void iem_append_out(t_iem_append *x)
-{
-  int off=0;
-  
-  if(x->x_type1 == A_GIMME)
-  {
-    if(x->x_type2 == A_COMMA)
-      off = 1;
-    else
-      off = 0;
-    iem_append_merge(x, off);
-    outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at12);
-  }
-  else if(x->x_type1 == A_COMMA)
-  {
-    if(x->x_type2 == A_COMMA)
-      off = 1;
-    else
-      off = 0;
-    iem_append_merge(x, off);
-    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym1, x->x_ac1+x->x_ac2+off, x->x_at12);
-  }
-  else if(x->x_type1 == A_NULL)/*depends on 2.part*/
-  {
-    iem_append_merge(x, 0);
-    if(x->x_type2 == A_GIMME)
-      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac2, x->x_at12);
-    else if(x->x_type2 == A_COMMA)
-      outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym2, x->x_ac2, x->x_at12);
-    else if(x->x_type2 == A_FLOAT)
-      outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at12));
-    else if(x->x_type2 == A_SYMBOL)
-      outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at12));
-    else if(x->x_type2 == A_NULL)
-      outlet_bang(x->x_obj.ob_outlet);
-    else if(x->x_type2 == A_POINTER)
-      outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at12->a_w.w_gpointer);
-  }
-  else
-  {
-    if(x->x_type2 == A_COMMA)
-      off = 1;
-    else
-      off = 0;
-    iem_append_merge(x, off);
-    if(x->x_type2 == A_NULL)
-    {
-      if(x->x_type1 == A_FLOAT)
-        outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at12));
-      else if(x->x_type1 == A_SYMBOL)
-        outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at12));
-      else if(x->x_type1 == A_POINTER)
-        outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at12->a_w.w_gpointer);
-    }
-    else
-      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at12);
-  }
-}
-
-static void iem_append_bang(t_iem_append *x)
-{
-  x->x_ac1 = 0;
-  x->x_type1 = A_NULL;
-  iem_append_out(x);
-}
-
-static void iem_append_float(t_iem_append *x, t_float f)
-{
-  x->x_ac1 = 1;
-  x->x_type1 = A_FLOAT;
-  SETFLOAT(x->x_at12, f);
-  iem_append_out(x);
-}
-
-static void iem_append_symbol(t_iem_append *x, t_symbol *s)
-{
-  x->x_ac1 = 1;
-  x->x_type1 = A_SYMBOL;
-  SETSYMBOL(x->x_at12, s);
-  iem_append_out(x);
-}
-
-static void iem_append_pointer(t_iem_append *x, t_gpointer *gp)
-{
-  x->x_ac1 = 1;
-  x->x_type1 = A_POINTER;
-  SETPOINTER(x->x_at12, gp);
-  iem_append_out(x);
-}
-
-static void iem_append_list(t_iem_append *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((x->x_size2+ac+1) > x->x_size12)
-  {
-    x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), (x->x_size2+ac+11)*sizeof(t_atom));
-    x->x_size12 = x->x_size2+ac+11;
-  }
-  x->x_ac1 = ac;
-  x->x_type1 = A_GIMME;
-  iem_append_atcopy(av, x->x_at12, ac);
-  x->x_selector_sym1 = &s_list;
-  iem_append_out(x);
-}
-
-static void iem_append_anything(t_iem_append *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((x->x_size2+ac+2) > x->x_size12)
-  {
-    x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), (x->x_size2+ac+12)*sizeof(t_atom));
-    x->x_size12 = x->x_size2+ac+12;
-  }
-  x->x_ac1 = ac;
-  x->x_type1 = A_COMMA;
-  iem_append_atcopy(av, x->x_at12, ac);
-  x->x_selector_sym1 = s;
-  iem_append_out(x);
-}
-
-/* begin of proxy methods (anything inlets) */
-
-static void iem_append_proxy_bang(t_iem_append_proxy *p)
-{
-  t_iem_append *x = p->p_owner;
-
-	x->x_ac2 = 0;
-  x->x_type2 = A_NULL;
-  x->x_selector_sym2 = &s_list;
-}
-
-static void iem_append_proxy_float(t_iem_append_proxy *p, t_float f)
-{
-  t_iem_append *x = p->p_owner;
-
-	x->x_ac2 = 1;
-  x->x_type2 = A_FLOAT;
-  SETFLOAT(x->x_at2, f);
-  x->x_selector_sym2 = &s_list;
-}
-
-static void iem_append_proxy_symbol(t_iem_append_proxy *p, t_symbol *s)
-{
-  t_iem_append *x = p->p_owner;
-
-  x->x_ac2 = 1;
-  x->x_type2 = A_SYMBOL;
-  SETSYMBOL(x->x_at2, s);
-  x->x_selector_sym2 = &s_list;
-}
-
-static void iem_append_proxy_pointer(t_iem_append_proxy *p, t_gpointer *gp)
-{
-  t_iem_append *x = p->p_owner;
-
-  x->x_ac2 = 1;
-  x->x_type2 = A_POINTER;
-  SETPOINTER(x->x_at2, gp);
-  x->x_selector_sym2 = &s_list;
-}
-
-static void iem_append_proxy_list(t_iem_append_proxy *p, t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_append *x = p->p_owner;
-
-	if(ac > x->x_size2)
-  {
-    x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), (ac+10)*sizeof(t_atom));
-    x->x_size2 = (ac+10);
-  }
-  x->x_ac2 = ac;
-  x->x_type2 = A_GIMME;
-  x->x_selector_sym2 = &s_list;
-  iem_append_atcopy(av, x->x_at2, ac);
-}
-
-static void iem_append_proxy_anything(t_iem_append_proxy *p, t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_append *x = p->p_owner;
-
-  if((ac+1) > x->x_size2)
-  {
-    x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), (ac+11)*sizeof(t_atom));
-    x->x_size2 = ac+11;
-  }
-  x->x_ac2 = ac;
-  x->x_type2 = A_COMMA;
-  x->x_selector_sym2 = s;
-  iem_append_atcopy(av, x->x_at2, ac);
-}
-
-/* end of proxy methods (anything inlets) */
-
-static void iem_append_free(t_iem_append *x)
-{
-  if(x->x_at12)
-    freebytes(x->x_at12, x->x_size12 * sizeof(t_atom));
-  if(x->x_at2)
-    freebytes(x->x_at2, x->x_size2 * sizeof(t_atom));
-	if(x->x_proxy_inlet)
-    pd_free((t_pd *)x->x_proxy_inlet);
-}
-
-static void *iem_append_new(t_symbol *s, int ac, t_atom *av)
-{
-	t_iem_append *x = (t_iem_append *)pd_new(iem_append_class);
-  t_iem_append_proxy *p = (t_iem_append_proxy *)pd_new(iem_append_proxy_class);
-
-  x->x_proxy_inlet = p;
-  p->p_owner = x;
-  
-  x->x_type1 = A_NULL;
-  x->x_selector_sym1 = &s_list;
-  x->x_size2 = 10;
-  if(ac > 5)
-    x->x_size2 = 2*ac;
-  x->x_at2 = (t_atom *)getbytes(x->x_size2 * sizeof(t_atom));
-  x->x_size12 = x->x_size2 + 10;
-  x->x_at12 = (t_atom *)getbytes(x->x_size12 * sizeof(t_atom));
-  x->x_ac1 = 0;
-
-  if(ac <= 0)
-  {
-    x->x_type2 = A_NULL;
-    x->x_ac2 = 0;
-    x->x_selector_sym2 = &s_list;
-  }
-  else
-  {
-    if(IS_A_FLOAT(av, 0))
-    {
-      if(ac == 1)
-        iem_append_proxy_float(p, atom_getfloat(av));
-      else
-        iem_append_proxy_list(p, &s_list, ac, av);
-    }
-    else if(IS_A_SYMBOL(av, 0))
-    {
-      t_symbol *xsym=atom_getsymbol(av);
-      
-      if(xsym == &s_symbol)
-      {
-        if(ac > 1)
-          iem_append_proxy_symbol(p, atom_getsymbol(av+1));
-        else
-          iem_append_proxy_symbol(p, gensym(""));
-      }
-      else if(xsym == &s_float)
-      {
-        if(ac > 1)
-        {
-          if(IS_A_FLOAT(av, 1))
-            iem_append_proxy_float(p, atom_getfloat(av+1));
-          else
-            iem_append_proxy_float(p, 0.0f);
-        }
-        else
-          iem_append_proxy_float(p, 0.0f);
-      }
-      else if(xsym == &s_list)
-      {
-        iem_append_proxy_list(p, &s_list, ac-1, av+1);
-      }
-      else
-      {
-        iem_append_proxy_anything(p, xsym, ac-1, av+1);
-      }
-    }
-  }
-  inlet_new((t_object *)x, (t_pd *)p, 0, 0);
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void iem_append_setup(void)
-{
-  iem_append_class = class_new(gensym("iem_append"),
-    (t_newmethod)iem_append_new, (t_method)iem_append_free,
-    sizeof(t_iem_append), 0, A_GIMME, 0);
-	class_addcreator((t_newmethod)iem_append_new, gensym("merge_any"), A_GIMME, 0);
-  class_addbang(iem_append_class, (t_method)iem_append_bang);
-  class_addpointer(iem_append_class, iem_append_pointer);
-  class_addfloat(iem_append_class, (t_method)iem_append_float);
-  class_addsymbol(iem_append_class, iem_append_symbol);
-  class_addlist(iem_append_class, iem_append_list);
-  class_addanything(iem_append_class, iem_append_anything);
-  class_sethelpsymbol(iem_append_class, gensym("iemhelp/help-iem_append"));
-
-	iem_append_proxy_class = class_new(gensym("_iem_append_proxy"),
-    0, 0, sizeof(t_iem_append_proxy), CLASS_PD | CLASS_NOINLET, 0);
-  class_addbang(iem_append_proxy_class, (t_method)iem_append_proxy_bang);
-  class_addpointer(iem_append_proxy_class, iem_append_proxy_pointer);
-  class_addfloat(iem_append_proxy_class, (t_method)iem_append_proxy_float);
-  class_addsymbol(iem_append_proxy_class, iem_append_proxy_symbol);
-  class_addlist(iem_append_proxy_class, iem_append_proxy_list);
-  class_addanything(iem_append_proxy_class, iem_append_proxy_anything);
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+
+/* ----------------------- iem_append -------------------------- */
+/* -- concatenates message from hot (left) inlet with message -- */
+/* ------ from cold (right) inlet and outputs it;  initial ----- */
+/* -- arguments (appendix) are eqal to message of cold inlet --- */
+
+
+struct _iem_append_proxy;
+
+static t_class *iem_append_class;
+static t_class *iem_append_proxy_class;
+
+typedef struct _iem_append
+{
+  t_object                  x_obj;
+	struct _iem_append_proxy  *x_proxy_inlet;
+  int                       x_size12;
+  int                       x_size2;
+  int                       x_ac1;
+  int                       x_ac2;
+  t_atom                    *x_at12;
+  t_atom                    *x_at2;
+  t_symbol                  *x_selector_sym1;
+  t_symbol                  *x_selector_sym2;
+  t_atomtype                x_type1;
+  t_atomtype                x_type2;
+} t_iem_append;
+
+typedef struct _iem_append_proxy
+{
+  t_object      p_obj;
+  t_iem_append  *p_owner;
+} t_iem_append_proxy;
+
+static void iem_append_atcopy(t_atom *src, t_atom *dst, int n)
+{
+  while(n--)
+    *dst++ = *src++;
+}
+
+static void iem_append_merge(t_iem_append *x, int off)
+{
+  if((x->x_ac1+x->x_ac2+1) > x->x_size12)
+  {
+    x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_ac1+x->x_ac2+1)*sizeof(t_atom));
+    x->x_size12 = 2*(x->x_ac1+x->x_ac2+1);
+  }
+  if(off)
+    SETSYMBOL(x->x_at12 + x->x_ac1, x->x_selector_sym2);
+  iem_append_atcopy(x->x_at2, x->x_at12 + x->x_ac1 + off, x->x_ac2);
+}
+
+static void iem_append_out(t_iem_append *x)
+{
+  int off=0;
+  
+  if(x->x_type1 == A_GIMME)
+  {
+    if(x->x_type2 == A_COMMA)
+      off = 1;
+    else
+      off = 0;
+    iem_append_merge(x, off);
+    outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at12);
+  }
+  else if(x->x_type1 == A_COMMA)
+  {
+    if(x->x_type2 == A_COMMA)
+      off = 1;
+    else
+      off = 0;
+    iem_append_merge(x, off);
+    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym1, x->x_ac1+x->x_ac2+off, x->x_at12);
+  }
+  else if(x->x_type1 == A_NULL)/*depends on 2.part*/
+  {
+    iem_append_merge(x, 0);
+    if(x->x_type2 == A_GIMME)
+      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac2, x->x_at12);
+    else if(x->x_type2 == A_COMMA)
+      outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym2, x->x_ac2, x->x_at12);
+    else if(x->x_type2 == A_FLOAT)
+      outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at12));
+    else if(x->x_type2 == A_SYMBOL)
+      outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at12));
+    else if(x->x_type2 == A_NULL)
+      outlet_bang(x->x_obj.ob_outlet);
+    else if(x->x_type2 == A_POINTER)
+      outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at12->a_w.w_gpointer);
+  }
+  else
+  {
+    if(x->x_type2 == A_COMMA)
+      off = 1;
+    else
+      off = 0;
+    iem_append_merge(x, off);
+    if(x->x_type2 == A_NULL)
+    {
+      if(x->x_type1 == A_FLOAT)
+        outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at12));
+      else if(x->x_type1 == A_SYMBOL)
+        outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at12));
+      else if(x->x_type1 == A_POINTER)
+        outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at12->a_w.w_gpointer);
+    }
+    else
+      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at12);
+  }
+}
+
+static void iem_append_bang(t_iem_append *x)
+{
+  x->x_ac1 = 0;
+  x->x_type1 = A_NULL;
+  iem_append_out(x);
+}
+
+static void iem_append_float(t_iem_append *x, t_float f)
+{
+  x->x_ac1 = 1;
+  x->x_type1 = A_FLOAT;
+  SETFLOAT(x->x_at12, f);
+  iem_append_out(x);
+}
+
+static void iem_append_symbol(t_iem_append *x, t_symbol *s)
+{
+  x->x_ac1 = 1;
+  x->x_type1 = A_SYMBOL;
+  SETSYMBOL(x->x_at12, s);
+  iem_append_out(x);
+}
+
+static void iem_append_pointer(t_iem_append *x, t_gpointer *gp)
+{
+  x->x_ac1 = 1;
+  x->x_type1 = A_POINTER;
+  SETPOINTER(x->x_at12, gp);
+  iem_append_out(x);
+}
+
+static void iem_append_list(t_iem_append *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((x->x_size2+ac+1) > x->x_size12)
+  {
+    x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), (x->x_size2+ac+11)*sizeof(t_atom));
+    x->x_size12 = x->x_size2+ac+11;
+  }
+  x->x_ac1 = ac;
+  x->x_type1 = A_GIMME;
+  iem_append_atcopy(av, x->x_at12, ac);
+  x->x_selector_sym1 = &s_list;
+  iem_append_out(x);
+}
+
+static void iem_append_anything(t_iem_append *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((x->x_size2+ac+2) > x->x_size12)
+  {
+    x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), (x->x_size2+ac+12)*sizeof(t_atom));
+    x->x_size12 = x->x_size2+ac+12;
+  }
+  x->x_ac1 = ac;
+  x->x_type1 = A_COMMA;
+  iem_append_atcopy(av, x->x_at12, ac);
+  x->x_selector_sym1 = s;
+  iem_append_out(x);
+}
+
+/* begin of proxy methods (anything inlets) */
+
+static void iem_append_proxy_bang(t_iem_append_proxy *p)
+{
+  t_iem_append *x = p->p_owner;
+
+	x->x_ac2 = 0;
+  x->x_type2 = A_NULL;
+  x->x_selector_sym2 = &s_list;
+}
+
+static void iem_append_proxy_float(t_iem_append_proxy *p, t_float f)
+{
+  t_iem_append *x = p->p_owner;
+
+	x->x_ac2 = 1;
+  x->x_type2 = A_FLOAT;
+  SETFLOAT(x->x_at2, f);
+  x->x_selector_sym2 = &s_list;
+}
+
+static void iem_append_proxy_symbol(t_iem_append_proxy *p, t_symbol *s)
+{
+  t_iem_append *x = p->p_owner;
+
+  x->x_ac2 = 1;
+  x->x_type2 = A_SYMBOL;
+  SETSYMBOL(x->x_at2, s);
+  x->x_selector_sym2 = &s_list;
+}
+
+static void iem_append_proxy_pointer(t_iem_append_proxy *p, t_gpointer *gp)
+{
+  t_iem_append *x = p->p_owner;
+
+  x->x_ac2 = 1;
+  x->x_type2 = A_POINTER;
+  SETPOINTER(x->x_at2, gp);
+  x->x_selector_sym2 = &s_list;
+}
+
+static void iem_append_proxy_list(t_iem_append_proxy *p, t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_append *x = p->p_owner;
+
+	if(ac > x->x_size2)
+  {
+    x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), (ac+10)*sizeof(t_atom));
+    x->x_size2 = (ac+10);
+  }
+  x->x_ac2 = ac;
+  x->x_type2 = A_GIMME;
+  x->x_selector_sym2 = &s_list;
+  iem_append_atcopy(av, x->x_at2, ac);
+}
+
+static void iem_append_proxy_anything(t_iem_append_proxy *p, t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_append *x = p->p_owner;
+
+  if((ac+1) > x->x_size2)
+  {
+    x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), (ac+11)*sizeof(t_atom));
+    x->x_size2 = ac+11;
+  }
+  x->x_ac2 = ac;
+  x->x_type2 = A_COMMA;
+  x->x_selector_sym2 = s;
+  iem_append_atcopy(av, x->x_at2, ac);
+}
+
+/* end of proxy methods (anything inlets) */
+
+static void iem_append_free(t_iem_append *x)
+{
+  if(x->x_at12)
+    freebytes(x->x_at12, x->x_size12 * sizeof(t_atom));
+  if(x->x_at2)
+    freebytes(x->x_at2, x->x_size2 * sizeof(t_atom));
+	if(x->x_proxy_inlet)
+    pd_free((t_pd *)x->x_proxy_inlet);
+}
+
+static void *iem_append_new(t_symbol *s, int ac, t_atom *av)
+{
+	t_iem_append *x = (t_iem_append *)pd_new(iem_append_class);
+  t_iem_append_proxy *p = (t_iem_append_proxy *)pd_new(iem_append_proxy_class);
+
+  x->x_proxy_inlet = p;
+  p->p_owner = x;
+  
+  x->x_type1 = A_NULL;
+  x->x_selector_sym1 = &s_list;
+  x->x_size2 = 10;
+  if(ac > 5)
+    x->x_size2 = 2*ac;
+  x->x_at2 = (t_atom *)getbytes(x->x_size2 * sizeof(t_atom));
+  x->x_size12 = x->x_size2 + 10;
+  x->x_at12 = (t_atom *)getbytes(x->x_size12 * sizeof(t_atom));
+  x->x_ac1 = 0;
+
+  if(ac <= 0)
+  {
+    x->x_type2 = A_NULL;
+    x->x_ac2 = 0;
+    x->x_selector_sym2 = &s_list;
+  }
+  else
+  {
+    if(IS_A_FLOAT(av, 0))
+    {
+      if(ac == 1)
+        iem_append_proxy_float(p, atom_getfloat(av));
+      else
+        iem_append_proxy_list(p, &s_list, ac, av);
+    }
+    else if(IS_A_SYMBOL(av, 0))
+    {
+      t_symbol *xsym=atom_getsymbol(av);
+      
+      if(xsym == &s_symbol)
+      {
+        if(ac > 1)
+          iem_append_proxy_symbol(p, atom_getsymbol(av+1));
+        else
+          iem_append_proxy_symbol(p, gensym(""));
+      }
+      else if(xsym == &s_float)
+      {
+        if(ac > 1)
+        {
+          if(IS_A_FLOAT(av, 1))
+            iem_append_proxy_float(p, atom_getfloat(av+1));
+          else
+            iem_append_proxy_float(p, 0.0f);
+        }
+        else
+          iem_append_proxy_float(p, 0.0f);
+      }
+      else if(xsym == &s_list)
+      {
+        iem_append_proxy_list(p, &s_list, ac-1, av+1);
+      }
+      else
+      {
+        iem_append_proxy_anything(p, xsym, ac-1, av+1);
+      }
+    }
+  }
+  inlet_new((t_object *)x, (t_pd *)p, 0, 0);
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void iem_append_setup(void)
+{
+  iem_append_class = class_new(gensym("iem_append"),
+    (t_newmethod)iem_append_new, (t_method)iem_append_free,
+    sizeof(t_iem_append), 0, A_GIMME, 0);
+	class_addcreator((t_newmethod)iem_append_new, gensym("merge_any"), A_GIMME, 0);
+  class_addbang(iem_append_class, (t_method)iem_append_bang);
+  class_addpointer(iem_append_class, iem_append_pointer);
+  class_addfloat(iem_append_class, (t_method)iem_append_float);
+  class_addsymbol(iem_append_class, iem_append_symbol);
+  class_addlist(iem_append_class, iem_append_list);
+  class_addanything(iem_append_class, iem_append_anything);
+  class_sethelpsymbol(iem_append_class, gensym("iemhelp/help-iem_append"));
+
+	iem_append_proxy_class = class_new(gensym("_iem_append_proxy"),
+    0, 0, sizeof(t_iem_append_proxy), CLASS_PD | CLASS_NOINLET, 0);
+  class_addbang(iem_append_proxy_class, (t_method)iem_append_proxy_bang);
+  class_addpointer(iem_append_proxy_class, iem_append_proxy_pointer);
+  class_addfloat(iem_append_proxy_class, (t_method)iem_append_proxy_float);
+  class_addsymbol(iem_append_proxy_class, iem_append_proxy_symbol);
+  class_addlist(iem_append_proxy_class, iem_append_proxy_list);
+  class_addanything(iem_append_proxy_class, iem_append_proxy_anything);
+}
diff --git a/src/iemlib2/iem_append_kernel.c b/src/iemlib2/iem_append_kernel.c
index f0984ab..95e918b 100644
--- a/src/iemlib2/iem_append_kernel.c
+++ b/src/iemlib2/iem_append_kernel.c
@@ -1,350 +1,350 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "g_canvas.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
-
-
-/* ------------------------ iem_append_kernel ---------------------------- */
-static t_class *iem_append_kernel_class;
-
-typedef struct _iem_append_kernel
-{
-  t_object    x_obj;
-  int         x_inlet_select;
-  int         x_size12;
-  int         x_size2;
-  int         x_ac1;
-  int         x_ac2;
-  t_atom      *x_at12;
-  t_atom      *x_at2;
-  t_symbol    *x_sym1;
-  t_symbol    *x_sym2;
-  t_atomtype  x_type1;
-  t_atomtype  x_type2;
-} t_iem_append_kernel;
-
-static void iem_append_kernel_atcopy(t_atom *src, t_atom *dst, int n)
-{
-  while(n--)
-    *dst++ = *src++;
-}
-
-static void iem_append_kernel_merge(t_iem_append_kernel *x, int off)
-{
-  if((x->x_ac1+x->x_ac2+1) > x->x_size12)
-  {
-    x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_ac1+x->x_ac2+1)*sizeof(t_atom));
-    x->x_size12 = 2*(x->x_ac1+x->x_ac2+1);
-  }
-  if(off)
-    SETSYMBOL(x->x_at12 + x->x_ac1, x->x_sym2);
-  iem_append_kernel_atcopy(x->x_at2, x->x_at12 + x->x_ac1 + off, x->x_ac2);
-}
-
-static void iem_append_kernel_out(t_iem_append_kernel *x)
-{
-  int off=0;
-  
-  if(x->x_type1 == A_GIMME)
-  {
-    if(x->x_type2 == A_COMMA)
-      off = 1;
-    else
-      off = 0;
-    iem_append_kernel_merge(x, off);
-    outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at12);
-  }
-  else if(x->x_type1 == A_COMMA)
-  {
-    if(x->x_type2 == A_COMMA)
-      off = 1;
-    else
-      off = 0;
-    iem_append_kernel_merge(x, off);
-    outlet_anything(x->x_obj.ob_outlet, x->x_sym1, x->x_ac1+x->x_ac2+off, x->x_at12);
-  }
-  else if(x->x_type1 == A_NULL)/*depends on 2.part*/
-  {
-    iem_append_kernel_merge(x, 0);
-    if(x->x_type2 == A_GIMME)
-      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac2, x->x_at12);
-    else if(x->x_type2 == A_COMMA)
-      outlet_anything(x->x_obj.ob_outlet, x->x_sym2, x->x_ac2, x->x_at12);
-    else if(x->x_type2 == A_FLOAT)
-      outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at12));
-    else if(x->x_type2 == A_SYMBOL)
-      outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at12));
-    else if(x->x_type2 == A_NULL)
-      outlet_bang(x->x_obj.ob_outlet);
-    else if(x->x_type2 == A_POINTER)
-      outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at12->a_w.w_gpointer);
-  }
-  else
-  {
-    if(x->x_type2 == A_COMMA)
-      off = 1;
-    else
-      off = 0;
-    iem_append_kernel_merge(x, off);
-    if(x->x_type2 == A_NULL)
-    {
-      if(x->x_type1 == A_FLOAT)
-        outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at12));
-      else if(x->x_type1 == A_SYMBOL)
-        outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at12));
-      else if(x->x_type1 == A_POINTER)
-        outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at12->a_w.w_gpointer);
-    }
-    else
-      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at12);
-  }
-}
-
-static void iem_append_kernel_inlet_select(t_iem_append_kernel *x, t_floatarg fin_sel_01)
-{
-  x->x_inlet_select = (int)fin_sel_01;
-}
-
-static void iem_append_kernel_bang(t_iem_append_kernel *x)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac2 = 0;
-    x->x_type2 = A_NULL;
-    x->x_sym2 = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    x->x_ac1 = 0;
-    x->x_type1 = A_NULL;
-    iem_append_kernel_out(x);
-  }
-}
-
-static void iem_append_kernel_float(t_iem_append_kernel *x, t_float f)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac2 = 1;
-    x->x_type2 = A_FLOAT;
-    SETFLOAT(x->x_at2, f);
-    x->x_sym2 = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    x->x_ac1 = 1;
-    x->x_type1 = A_FLOAT;
-    SETFLOAT(x->x_at12, f);
-    iem_append_kernel_out(x);
-  }
-}
-
-static void iem_append_kernel_symbol(t_iem_append_kernel *x, t_symbol *s)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac2 = 1;
-    x->x_type2 = A_SYMBOL;
-    SETSYMBOL(x->x_at2, s);
-    x->x_sym2 = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    x->x_ac1 = 1;
-    x->x_type1 = A_SYMBOL;
-    SETSYMBOL(x->x_at12, s);
-    iem_append_kernel_out(x);
-  }
-}
-
-static void iem_append_kernel_pointer(t_iem_append_kernel *x, t_gpointer *gp)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac2 = 1;
-    x->x_type2 = A_POINTER;
-    SETPOINTER(x->x_at2, gp);
-    x->x_sym2 = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    x->x_ac1 = 1;
-    x->x_type1 = A_POINTER;
-    SETPOINTER(x->x_at12, gp);
-    iem_append_kernel_out(x);
-  }
-}
-
-static void iem_append_kernel_list(t_iem_append_kernel *x, t_symbol *s, int ac, t_atom *av)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    if(ac > x->x_size2)
-    {
-      x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom));
-      x->x_size2 = 2*ac;
-    }
-    x->x_ac2 = ac;
-    x->x_type2 = A_GIMME;
-    x->x_sym2 = &s_list;
-    iem_append_kernel_atcopy(av, x->x_at2, ac);
-  }
-  else /* if 1st inlet */
-  {
-    if((x->x_size2+ac) > x->x_size12)
-    {
-      x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_size2+ac)*sizeof(t_atom));
-      x->x_size12 = 2*(x->x_size2+ac);
-    }
-    x->x_ac1 = ac;
-    x->x_type1 = A_GIMME;
-    iem_append_kernel_atcopy(av, x->x_at12, ac);
-    x->x_sym1 = &s_list;
-    iem_append_kernel_out(x);
-  }
-}
-
-static void iem_append_kernel_anything(t_iem_append_kernel *x, t_symbol *s, int ac, t_atom *av)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    if((ac+1) > x->x_size2)
-    {
-      x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom));
-      x->x_size2 = 2*ac;
-    }
-    x->x_ac2 = ac;
-    x->x_type2 = A_COMMA;
-    x->x_sym2 = s;
-    iem_append_kernel_atcopy(av, x->x_at2, ac);
-  }
-  else /* if 1st inlet */
-  {
-    if((x->x_size2+ac+1) > x->x_size12)
-    {
-      x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_size2+ac+1)*sizeof(t_atom));
-      x->x_size12 = 2*(x->x_size2+ac+1);
-    }
-    x->x_ac1 = ac;
-    x->x_type1 = A_COMMA;
-    iem_append_kernel_atcopy(av, x->x_at12, ac);
-    x->x_sym1 = s;
-    iem_append_kernel_out(x);
-  }
-}
-
-static void iem_append_kernel_free(t_iem_append_kernel *x)
-{
-  if(x->x_at12)
-    freebytes(x->x_at12, x->x_size12 * sizeof(t_atom));
-  if(x->x_at2)
-    freebytes(x->x_at2, x->x_size2 * sizeof(t_atom));
-}
-
-static void *iem_append_kernel_new(void)
-{
-  t_iem_append_kernel *x = (t_iem_append_kernel *)pd_new(iem_append_kernel_class);
-  t_glist *glist = (t_glist *)canvas_getcurrent();
-  t_canvas *canvas=glist_getcanvas(glist);
-  int ac=0;
-  t_atom *av;
-  
-  canvas_setcurrent(canvas);
-  canvas_getargs(&ac, &av);
-  canvas_unsetcurrent(canvas);
-  
-  x->x_type1 = A_NULL;
-  x->x_sym1 = &s_list;
-  x->x_size2 = 10;
-  if(ac > 5)
-    x->x_size2 = 2*ac;
-  x->x_at2 = (t_atom *)getbytes(x->x_size2 * sizeof(t_atom));
-  x->x_size12 = x->x_size2 + 10;
-  x->x_at12 = (t_atom *)getbytes(x->x_size12 * sizeof(t_atom));
-  x->x_ac1 = 0;
-  x->x_inlet_select = 1;
-  if(ac <= 0)
-  {
-    x->x_type2 = A_NULL;
-    x->x_ac2 = 0;
-    x->x_sym2 = &s_list;
-  }
-  else
-  {
-    if(IS_A_FLOAT(av, 0))
-    {
-      if(ac == 1)
-        iem_append_kernel_float(x, atom_getfloat(av));
-      else
-        iem_append_kernel_list(x, &s_list, ac, av);
-    }
-    else if(IS_A_SYMBOL(av, 0))
-    {
-      t_symbol *xsym=atom_getsymbol(av);
-      
-      if(xsym == gensym("symbol"))
-      {
-        if(ac > 1)
-          iem_append_kernel_symbol(x, atom_getsymbol(av+1));
-        else
-          iem_append_kernel_symbol(x, gensym(""));
-      }
-      else if(xsym == gensym("float"))
-      {
-        if(ac > 1)
-        {
-          if(IS_A_FLOAT(av, 1))
-            iem_append_kernel_float(x, atom_getfloat(av+1));
-          else
-            iem_append_kernel_float(x, 0.0f);
-        }
-        else
-          iem_append_kernel_float(x, 0.0f);
-      }
-      else if(xsym == gensym("list"))
-      {
-        iem_append_kernel_list(x, &s_list, ac-1, av+1);
-      }
-      else
-      {
-        iem_append_kernel_anything(x, xsym, ac-1, av+1);
-      }
-    }
-  }
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void iem_append_kernel_setup(void)
-{
-  char str[2];
-  
-  str[0] = 1;
-  str[1] = 0;
-  iem_append_kernel_class = class_new(gensym("iem_append_kernel"),
-    (t_newmethod)iem_append_kernel_new, (t_method)iem_append_kernel_free,
-    sizeof(t_iem_append_kernel), 0, 0);
-  class_addbang(iem_append_kernel_class, (t_method)iem_append_kernel_bang);
-  class_addpointer(iem_append_kernel_class, iem_append_kernel_pointer);
-  class_addfloat(iem_append_kernel_class, (t_method)iem_append_kernel_float);
-  class_addsymbol(iem_append_kernel_class, iem_append_kernel_symbol);
-  class_addlist(iem_append_kernel_class, iem_append_kernel_list);
-  class_addmethod(iem_append_kernel_class, (t_method)iem_append_kernel_inlet_select, gensym(str), A_FLOAT, 0);
-  class_addanything(iem_append_kernel_class, iem_append_kernel_anything);
-  class_sethelpsymbol(iem_append_kernel_class, gensym("iemhelp/help-merge_any"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "g_canvas.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
+
+
+/* ------------------------ iem_append_kernel ---------------------------- */
+static t_class *iem_append_kernel_class;
+
+typedef struct _iem_append_kernel
+{
+  t_object    x_obj;
+  int         x_inlet_select;
+  int         x_size12;
+  int         x_size2;
+  int         x_ac1;
+  int         x_ac2;
+  t_atom      *x_at12;
+  t_atom      *x_at2;
+  t_symbol    *x_sym1;
+  t_symbol    *x_sym2;
+  t_atomtype  x_type1;
+  t_atomtype  x_type2;
+} t_iem_append_kernel;
+
+static void iem_append_kernel_atcopy(t_atom *src, t_atom *dst, int n)
+{
+  while(n--)
+    *dst++ = *src++;
+}
+
+static void iem_append_kernel_merge(t_iem_append_kernel *x, int off)
+{
+  if((x->x_ac1+x->x_ac2+1) > x->x_size12)
+  {
+    x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_ac1+x->x_ac2+1)*sizeof(t_atom));
+    x->x_size12 = 2*(x->x_ac1+x->x_ac2+1);
+  }
+  if(off)
+    SETSYMBOL(x->x_at12 + x->x_ac1, x->x_sym2);
+  iem_append_kernel_atcopy(x->x_at2, x->x_at12 + x->x_ac1 + off, x->x_ac2);
+}
+
+static void iem_append_kernel_out(t_iem_append_kernel *x)
+{
+  int off=0;
+  
+  if(x->x_type1 == A_GIMME)
+  {
+    if(x->x_type2 == A_COMMA)
+      off = 1;
+    else
+      off = 0;
+    iem_append_kernel_merge(x, off);
+    outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at12);
+  }
+  else if(x->x_type1 == A_COMMA)
+  {
+    if(x->x_type2 == A_COMMA)
+      off = 1;
+    else
+      off = 0;
+    iem_append_kernel_merge(x, off);
+    outlet_anything(x->x_obj.ob_outlet, x->x_sym1, x->x_ac1+x->x_ac2+off, x->x_at12);
+  }
+  else if(x->x_type1 == A_NULL)/*depends on 2.part*/
+  {
+    iem_append_kernel_merge(x, 0);
+    if(x->x_type2 == A_GIMME)
+      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac2, x->x_at12);
+    else if(x->x_type2 == A_COMMA)
+      outlet_anything(x->x_obj.ob_outlet, x->x_sym2, x->x_ac2, x->x_at12);
+    else if(x->x_type2 == A_FLOAT)
+      outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at12));
+    else if(x->x_type2 == A_SYMBOL)
+      outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at12));
+    else if(x->x_type2 == A_NULL)
+      outlet_bang(x->x_obj.ob_outlet);
+    else if(x->x_type2 == A_POINTER)
+      outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at12->a_w.w_gpointer);
+  }
+  else
+  {
+    if(x->x_type2 == A_COMMA)
+      off = 1;
+    else
+      off = 0;
+    iem_append_kernel_merge(x, off);
+    if(x->x_type2 == A_NULL)
+    {
+      if(x->x_type1 == A_FLOAT)
+        outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at12));
+      else if(x->x_type1 == A_SYMBOL)
+        outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at12));
+      else if(x->x_type1 == A_POINTER)
+        outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at12->a_w.w_gpointer);
+    }
+    else
+      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at12);
+  }
+}
+
+static void iem_append_kernel_inlet_select(t_iem_append_kernel *x, t_floatarg fin_sel_01)
+{
+  x->x_inlet_select = (int)fin_sel_01;
+}
+
+static void iem_append_kernel_bang(t_iem_append_kernel *x)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac2 = 0;
+    x->x_type2 = A_NULL;
+    x->x_sym2 = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    x->x_ac1 = 0;
+    x->x_type1 = A_NULL;
+    iem_append_kernel_out(x);
+  }
+}
+
+static void iem_append_kernel_float(t_iem_append_kernel *x, t_float f)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac2 = 1;
+    x->x_type2 = A_FLOAT;
+    SETFLOAT(x->x_at2, f);
+    x->x_sym2 = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    x->x_ac1 = 1;
+    x->x_type1 = A_FLOAT;
+    SETFLOAT(x->x_at12, f);
+    iem_append_kernel_out(x);
+  }
+}
+
+static void iem_append_kernel_symbol(t_iem_append_kernel *x, t_symbol *s)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac2 = 1;
+    x->x_type2 = A_SYMBOL;
+    SETSYMBOL(x->x_at2, s);
+    x->x_sym2 = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    x->x_ac1 = 1;
+    x->x_type1 = A_SYMBOL;
+    SETSYMBOL(x->x_at12, s);
+    iem_append_kernel_out(x);
+  }
+}
+
+static void iem_append_kernel_pointer(t_iem_append_kernel *x, t_gpointer *gp)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac2 = 1;
+    x->x_type2 = A_POINTER;
+    SETPOINTER(x->x_at2, gp);
+    x->x_sym2 = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    x->x_ac1 = 1;
+    x->x_type1 = A_POINTER;
+    SETPOINTER(x->x_at12, gp);
+    iem_append_kernel_out(x);
+  }
+}
+
+static void iem_append_kernel_list(t_iem_append_kernel *x, t_symbol *s, int ac, t_atom *av)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    if(ac > x->x_size2)
+    {
+      x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom));
+      x->x_size2 = 2*ac;
+    }
+    x->x_ac2 = ac;
+    x->x_type2 = A_GIMME;
+    x->x_sym2 = &s_list;
+    iem_append_kernel_atcopy(av, x->x_at2, ac);
+  }
+  else /* if 1st inlet */
+  {
+    if((x->x_size2+ac) > x->x_size12)
+    {
+      x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_size2+ac)*sizeof(t_atom));
+      x->x_size12 = 2*(x->x_size2+ac);
+    }
+    x->x_ac1 = ac;
+    x->x_type1 = A_GIMME;
+    iem_append_kernel_atcopy(av, x->x_at12, ac);
+    x->x_sym1 = &s_list;
+    iem_append_kernel_out(x);
+  }
+}
+
+static void iem_append_kernel_anything(t_iem_append_kernel *x, t_symbol *s, int ac, t_atom *av)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    if((ac+1) > x->x_size2)
+    {
+      x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom));
+      x->x_size2 = 2*ac;
+    }
+    x->x_ac2 = ac;
+    x->x_type2 = A_COMMA;
+    x->x_sym2 = s;
+    iem_append_kernel_atcopy(av, x->x_at2, ac);
+  }
+  else /* if 1st inlet */
+  {
+    if((x->x_size2+ac+1) > x->x_size12)
+    {
+      x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_size2+ac+1)*sizeof(t_atom));
+      x->x_size12 = 2*(x->x_size2+ac+1);
+    }
+    x->x_ac1 = ac;
+    x->x_type1 = A_COMMA;
+    iem_append_kernel_atcopy(av, x->x_at12, ac);
+    x->x_sym1 = s;
+    iem_append_kernel_out(x);
+  }
+}
+
+static void iem_append_kernel_free(t_iem_append_kernel *x)
+{
+  if(x->x_at12)
+    freebytes(x->x_at12, x->x_size12 * sizeof(t_atom));
+  if(x->x_at2)
+    freebytes(x->x_at2, x->x_size2 * sizeof(t_atom));
+}
+
+static void *iem_append_kernel_new(void)
+{
+  t_iem_append_kernel *x = (t_iem_append_kernel *)pd_new(iem_append_kernel_class);
+  t_glist *glist = (t_glist *)canvas_getcurrent();
+  t_canvas *canvas=glist_getcanvas(glist);
+  int ac=0;
+  t_atom *av;
+  
+  canvas_setcurrent(canvas);
+  canvas_getargs(&ac, &av);
+  canvas_unsetcurrent(canvas);
+  
+  x->x_type1 = A_NULL;
+  x->x_sym1 = &s_list;
+  x->x_size2 = 10;
+  if(ac > 5)
+    x->x_size2 = 2*ac;
+  x->x_at2 = (t_atom *)getbytes(x->x_size2 * sizeof(t_atom));
+  x->x_size12 = x->x_size2 + 10;
+  x->x_at12 = (t_atom *)getbytes(x->x_size12 * sizeof(t_atom));
+  x->x_ac1 = 0;
+  x->x_inlet_select = 1;
+  if(ac <= 0)
+  {
+    x->x_type2 = A_NULL;
+    x->x_ac2 = 0;
+    x->x_sym2 = &s_list;
+  }
+  else
+  {
+    if(IS_A_FLOAT(av, 0))
+    {
+      if(ac == 1)
+        iem_append_kernel_float(x, atom_getfloat(av));
+      else
+        iem_append_kernel_list(x, &s_list, ac, av);
+    }
+    else if(IS_A_SYMBOL(av, 0))
+    {
+      t_symbol *xsym=atom_getsymbol(av);
+      
+      if(xsym == gensym("symbol"))
+      {
+        if(ac > 1)
+          iem_append_kernel_symbol(x, atom_getsymbol(av+1));
+        else
+          iem_append_kernel_symbol(x, gensym(""));
+      }
+      else if(xsym == gensym("float"))
+      {
+        if(ac > 1)
+        {
+          if(IS_A_FLOAT(av, 1))
+            iem_append_kernel_float(x, atom_getfloat(av+1));
+          else
+            iem_append_kernel_float(x, 0.0f);
+        }
+        else
+          iem_append_kernel_float(x, 0.0f);
+      }
+      else if(xsym == gensym("list"))
+      {
+        iem_append_kernel_list(x, &s_list, ac-1, av+1);
+      }
+      else
+      {
+        iem_append_kernel_anything(x, xsym, ac-1, av+1);
+      }
+    }
+  }
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void iem_append_kernel_setup(void)
+{
+  char str[2];
+  
+  str[0] = 1;
+  str[1] = 0;
+  iem_append_kernel_class = class_new(gensym("iem_append_kernel"),
+    (t_newmethod)iem_append_kernel_new, (t_method)iem_append_kernel_free,
+    sizeof(t_iem_append_kernel), 0, 0);
+  class_addbang(iem_append_kernel_class, (t_method)iem_append_kernel_bang);
+  class_addpointer(iem_append_kernel_class, iem_append_kernel_pointer);
+  class_addfloat(iem_append_kernel_class, (t_method)iem_append_kernel_float);
+  class_addsymbol(iem_append_kernel_class, iem_append_kernel_symbol);
+  class_addlist(iem_append_kernel_class, iem_append_kernel_list);
+  class_addmethod(iem_append_kernel_class, (t_method)iem_append_kernel_inlet_select, gensym(str), A_FLOAT, 0);
+  class_addanything(iem_append_kernel_class, iem_append_kernel_anything);
+  class_sethelpsymbol(iem_append_kernel_class, gensym("iemhelp/help-merge_any"));
+}
diff --git a/src/iemlib2/iem_i_route.c b/src/iemlib2/iem_i_route.c
index 8831f07..16ac908 100644
--- a/src/iemlib2/iem_i_route.c
+++ b/src/iemlib2/iem_i_route.c
@@ -1,112 +1,112 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* -------------------------- iem_i_route ------------------------------ */
-/* ---- routes a list beginning with a float to an outlet, which is ---- */
-/* -- defined by the 3 initial arguments first index, last index and --- */
-/* ---------------------- offset index --------------------------------- */
-
-static t_class *iem_i_route_class;
-
-typedef struct _iem_i_route
-{
-  t_object  x_obj;
-  int       x_first_element;
-  int       x_last_element;
-  t_outlet  **x_out;
-} t_iem_i_route;
-
-static void iem_i_route_list(t_iem_i_route *x, t_symbol *sel, int argc, t_atom *argv)
-{
-  t_outlet **out;
-  int first, last, i;
-  
-  if(!argc)
-    return;
-  i = (int)atom_getintarg(0, argc, argv);
-  first = x->x_first_element;
-  last = x->x_last_element;
-  out = x->x_out;
-  if((i >= first)&&(i <= last))
-  {
-    out += i - first;
-    if(argc >= 3)
-    {
-      if(IS_A_FLOAT(argv,1))
-        outlet_list(*out, &s_list, argc-1, argv+1);
-      else if(IS_A_SYMBOL(argv,1))
-        outlet_anything(*out, atom_getsymbolarg(1, argc, argv), argc-2, argv+2);
-    }
-    else if(argc >= 2)
-    {
-      if(IS_A_FLOAT(argv,1))
-        outlet_float(*out, (float)atom_getfloatarg(1, argc, argv));
-      else if(IS_A_SYMBOL(argv,1))
-        outlet_anything(*out, atom_getsymbolarg(1, argc, argv), 0, argv+2);
-    }
-    else
-      outlet_bang(*out);
-  }
-  else
-  {
-    out += last - first + 1;
-    outlet_list(*out, &s_list, argc, argv);
-  }
-}
-
-static void iem_i_route_free(t_iem_i_route *x)
-{
-  freebytes(x->x_out, (x->x_last_element-x->x_first_element+2) * sizeof(t_outlet *));
-}
-
-static void *iem_i_route_new(t_symbol *s, int argc, t_atom *argv)
-{
-  int n, i;
-  t_outlet **out;
-  t_iem_i_route *x = (t_iem_i_route *)pd_new(iem_i_route_class);
-  
-  if((argc >= 2)&&IS_A_FLOAT(argv,0)&&IS_A_FLOAT(argv,1))
-  {
-    x->x_first_element = (int)atom_getintarg(0, argc, argv);
-    x->x_last_element = (int)atom_getintarg(1, argc, argv);
-    if((argc >= 3)&&IS_A_FLOAT(argv,2))
-    {
-      i = (int)atom_getintarg(2, argc, argv);
-      x->x_first_element += i;
-      x->x_last_element += i;
-    }
-    x->x_out = (t_outlet **)getbytes((x->x_last_element-x->x_first_element+2) * sizeof(t_outlet *));
-    n = x->x_last_element - x->x_first_element + 2;
-    for(i=0, out=x->x_out; i<n; i++, out++)
-      *out = outlet_new(&x->x_obj, &s_list);
-    return (x);
-  }
-  else
-  {
-    post("iem_i_route-ERROR: needs 3 floats!!");
-    return(0);
-  }
-}
-
-void iem_i_route_setup(void)
-{
-  iem_i_route_class = class_new(gensym("iem_i_route"), (t_newmethod)iem_i_route_new,
-        (t_method)iem_i_route_free, sizeof(t_iem_i_route), 0, A_GIMME, 0);
-  class_addcreator((t_newmethod)iem_i_route_new, gensym("iiroute"), A_GIMME, 0);
-  class_addlist(iem_i_route_class, iem_i_route_list);
-  class_sethelpsymbol(iem_i_route_class, gensym("iemhelp/help-iem_i_route"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* -------------------------- iem_i_route ------------------------------ */
+/* ---- routes a list beginning with a float to an outlet, which is ---- */
+/* -- defined by the 3 initial arguments first index, last index and --- */
+/* ---------------------- offset index --------------------------------- */
+
+static t_class *iem_i_route_class;
+
+typedef struct _iem_i_route
+{
+  t_object  x_obj;
+  int       x_first_element;
+  int       x_last_element;
+  t_outlet  **x_out;
+} t_iem_i_route;
+
+static void iem_i_route_list(t_iem_i_route *x, t_symbol *sel, int argc, t_atom *argv)
+{
+  t_outlet **out;
+  int first, last, i;
+  
+  if(!argc)
+    return;
+  i = (int)atom_getintarg(0, argc, argv);
+  first = x->x_first_element;
+  last = x->x_last_element;
+  out = x->x_out;
+  if((i >= first)&&(i <= last))
+  {
+    out += i - first;
+    if(argc >= 3)
+    {
+      if(IS_A_FLOAT(argv,1))
+        outlet_list(*out, &s_list, argc-1, argv+1);
+      else if(IS_A_SYMBOL(argv,1))
+        outlet_anything(*out, atom_getsymbolarg(1, argc, argv), argc-2, argv+2);
+    }
+    else if(argc >= 2)
+    {
+      if(IS_A_FLOAT(argv,1))
+        outlet_float(*out, (float)atom_getfloatarg(1, argc, argv));
+      else if(IS_A_SYMBOL(argv,1))
+        outlet_anything(*out, atom_getsymbolarg(1, argc, argv), 0, argv+2);
+    }
+    else
+      outlet_bang(*out);
+  }
+  else
+  {
+    out += last - first + 1;
+    outlet_list(*out, &s_list, argc, argv);
+  }
+}
+
+static void iem_i_route_free(t_iem_i_route *x)
+{
+  freebytes(x->x_out, (x->x_last_element-x->x_first_element+2) * sizeof(t_outlet *));
+}
+
+static void *iem_i_route_new(t_symbol *s, int argc, t_atom *argv)
+{
+  int n, i;
+  t_outlet **out;
+  t_iem_i_route *x = (t_iem_i_route *)pd_new(iem_i_route_class);
+  
+  if((argc >= 2)&&IS_A_FLOAT(argv,0)&&IS_A_FLOAT(argv,1))
+  {
+    x->x_first_element = (int)atom_getintarg(0, argc, argv);
+    x->x_last_element = (int)atom_getintarg(1, argc, argv);
+    if((argc >= 3)&&IS_A_FLOAT(argv,2))
+    {
+      i = (int)atom_getintarg(2, argc, argv);
+      x->x_first_element += i;
+      x->x_last_element += i;
+    }
+    x->x_out = (t_outlet **)getbytes((x->x_last_element-x->x_first_element+2) * sizeof(t_outlet *));
+    n = x->x_last_element - x->x_first_element + 2;
+    for(i=0, out=x->x_out; i<n; i++, out++)
+      *out = outlet_new(&x->x_obj, &s_list);
+    return (x);
+  }
+  else
+  {
+    post("iem_i_route-ERROR: needs 3 floats!!");
+    return(0);
+  }
+}
+
+void iem_i_route_setup(void)
+{
+  iem_i_route_class = class_new(gensym("iem_i_route"), (t_newmethod)iem_i_route_new,
+        (t_method)iem_i_route_free, sizeof(t_iem_i_route), 0, A_GIMME, 0);
+  class_addcreator((t_newmethod)iem_i_route_new, gensym("iiroute"), A_GIMME, 0);
+  class_addlist(iem_i_route_class, iem_i_route_list);
+  class_sethelpsymbol(iem_i_route_class, gensym("iemhelp/help-iem_i_route"));
+}
diff --git a/src/iemlib2/iem_pbank_csv.c b/src/iemlib2/iem_pbank_csv.c
index 742b406..13b10ae 100644
--- a/src/iemlib2/iem_pbank_csv.c
+++ b/src/iemlib2/iem_pbank_csv.c
@@ -1,802 +1,802 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-
-/* ---------------------------- iem_pbank_csv ------------------------------- */
-/* -- is a list storage and management object, can store an array of lists -- */
-/* ------------------------------- as an csv file --------------------------- */
-
-/* read and write method needs 2 symbols,
-1. symbol is a filename,
-2. symbol is a 3 character descriptor
-
-  1.char: 'b'...for blank as ITEM_SEPARATOR (" ")
-  1.char: 'c'...for comma as ITEM_SEPARATOR (",")
-  1.char: 's'...for semicolon as ITEM_SEPARATOR (";")
-  1.char: 't'...for tabulator as ITEM_SEPARATOR ("	" = 0x09)
-  
-    2.char: 'b'...for blank,return as END_OF_LINE (" \n")
-    2.char: 'r'...for return-only as END_OF_LINE ("\n")
-    2.char: 's'...for semicolon,return as END_OF_LINE (";\n")
-    
-      3.char: 'l'...for linux RETURN (0x0A)
-      3.char: 'w'...for windows RETURN (0x0D,0x0A)
-      3.char: 'm'...for mac RETURN (0x0D)
-      
-        
-          
-        change: recall + offset + number
-*/
-
-static t_class *iem_pbank_csv_class;
-
-typedef struct _iem_pbank_csv
-{
-  t_object  x_obj;
-  int       x_nr_para;
-  int       x_nr_line;
-  int       x_line;
-  t_atom    *x_atbegmem;
-  t_atom    *x_atbegbuf;
-  t_atom    *x_atbegout;
-  t_canvas  *x_canvas;
-  void      *x_list_out;
-  void      *x_offset_list_out;
-} t_iem_pbank_csv;
-
-static void iem_pbank_csv_write(t_iem_pbank_csv *x, t_symbol *filename, t_symbol *format)
-{
-  char completefilename[400], eol[4], sep, mode[4], string[200];
-  int size, p, l, nrl=x->x_nr_line, nrp=x->x_nr_para;
-  int state, max=nrl*nrp, org_size, eollen;
-  FILE *fh;
-  t_atom *ap=x->x_atbegmem;
-  char formattext[100];
-  
-  strcpy(mode, "bsl"); /*blank-separator, semicolon-return-eol, linux_return*/
-  sep = ' ';
-  eol[0] = ';';
-  eol[1] = 0x0a;
-  eol[2] = 0;
-  if(filename->s_name[0] == '/')
-  {
-    strcpy(completefilename, filename->s_name);
-  }
-  else if(((filename->s_name[0] >= 'A')&&(filename->s_name[0] <= 'Z')||
-    (filename->s_name[0] >= 'a')&&(filename->s_name[0] <= 'z'))&&
-    (filename->s_name[1] == ':')&&(filename->s_name[2] == '/'))
-  {
-    strcpy(completefilename, filename->s_name);
-  }
-  else
-  {
-    strcpy(completefilename, canvas_getdir(x->x_canvas)->s_name);
-    strcat(completefilename, "/");
-    strcat(completefilename, filename->s_name);
-  }
-  
-  fh = fopen(completefilename,"wb");
-  if(!fh)
-  {
-    post("iem_pbank_csv_write: cannot create %s !!\n", completefilename);
-  }
-  else
-  {
-    if(strlen(format->s_name) >= 3)
-    {
-      for(p=0; p<3; p++)
-      {
-        if((format->s_name[p] >= 'A')&&(format->s_name[p] <= 'Z'))
-          format->s_name[p] += 'a' - 'A';
-      }
-      if((format->s_name[0] == 'b')||(format->s_name[0] == 'c')||(format->s_name[0] == 's')||(format->s_name[0] == 't'))
-        mode[0] = format->s_name[0];
-      if((format->s_name[1] == 'b')||(format->s_name[1] == 'r')||(format->s_name[1] == 's'))
-        mode[1] = format->s_name[1];
-      if((format->s_name[2] == 'l')||(format->s_name[2] == 'w')||(format->s_name[2] == 'm'))
-        mode[2] = format->s_name[2];
-    }
-    else
-      post("iem_pbank_csv_write: use default format %s !!\n", mode);
-    
-    if(mode[0] == 'b')
-    {
-      sep = ' ';
-      strcpy(formattext, "item-separator = BLANK; ");
-    }
-    else if(mode[0] == 'c')
-    {
-      sep = ',';
-      strcpy(formattext, "item-separator = COMMA; ");
-    }
-    else if(mode[0] == 's')
-    {
-      sep = ';';
-      strcpy(formattext, "item-separator = SEMICOLON; ");
-    }
-    else if(mode[0] == 't')
-    {
-      sep = 0x09;
-      strcpy(formattext, "item-separator = TABULATOR; ");
-    }
-    
-    eollen = 1;
-    if(mode[1] == 'b')
-    {
-      eol[0] = ' ';
-      strcat(formattext, "end_of_line_terminator = BLANK-RETURN in ");
-    }
-    else if(mode[1] == 'r')
-    {
-      eollen = 0;
-      strcat(formattext, "end_of_line_terminator = RETURN in ");
-    }
-    else if(mode[1] == 's')
-    {
-      eol[0] = ';';
-      strcat(formattext, "end_of_line_terminator = SEMICOLON-RETURN in ");
-    }
-    
-    if(mode[2] == 'l')
-    {
-      eol[eollen++] = 0x0a;
-      strcat(formattext, "LINUX-Format.");
-    }
-    else if(mode[2] == 'w')
-    {
-      eol[eollen++] = 0x0d;
-      eol[eollen++] = 0x0a;
-      strcat(formattext, "WINDOWS-Format.");
-    }
-    else if(mode[2] == 'm')
-    {
-      eol[eollen++] = 0x0d;
-      strcat(formattext, "MACINTOSH-Format.");
-    }
-    eol[eollen] = 0;
-    
-    ap = x->x_atbegmem;
-    for(l=0; l<nrl; l++)
-    {
-      for(p=1; p<nrp; p++)
-      {
-        if(IS_A_FLOAT(ap, 0))
-          fprintf(fh, "%g%c", ap->a_w.w_float, sep);
-        else if(IS_A_SYMBOL(ap, 0))
-          fprintf(fh, "%s%c", ap->a_w.w_symbol->s_name, sep);
-        ap++;
-      }
-      if(IS_A_FLOAT(ap, 0))
-        fprintf(fh, "%g%s", ap->a_w.w_float, eol);
-      else if(IS_A_SYMBOL(ap, 0))
-        fprintf(fh, "%s%s", ap->a_w.w_symbol->s_name, eol);
-      ap++;
-    }
-    fclose(fh);
-    post("iem_pbank_csv: wrote %d parameters x %d lines to file:\n%s\nwith following format:\n%s\n", nrp, nrl, completefilename, formattext);
-  }
-}
-
-int iem_pbank_csv_text2atom(char *text, int text_size, t_atom **at_beg,
-                            int *nalloc, char sep, char eol)
-{
-  char buf[MAXPDSTRING+1], *bufp, *ebuf = buf+MAXPDSTRING;
-  const char *textp = text, *etext = text + text_size;
-  int natom = 0;
-  t_atom *ap = *at_beg;
-  float f;
-  
-  while(1)
-  {
-    int type;
-    
-    if(textp == etext)
-      break;
-    if(*textp == eol)
-    {
-      SETSEMI(ap);
-      textp++;
-    }
-    else if(*textp == sep)
-    {
-      SETCOMMA(ap);
-      textp++;
-    }
-    else
-    {
-      char c;
-      int flst = 0, slash = 0, lastslash = 0;
-      int firstslash = (*textp == '\\');
-      
-      bufp = buf;
-      do
-      {
-        c = *bufp = *textp++;
-        lastslash = slash;
-        slash = (c == '\\');
-        
-        if (flst >= 0)
-        {
-          int digit = (c >= '0' && c <= '9'),
-            dot = (c == '.'), minus = (c == '-'),
-            plusminus = (minus || (c == '+')),
-            expon = (c == 'e' || c == 'E');
-          if (flst == 0)  /* beginning */
-          {
-            if (minus) flst = 1;
-            else if (digit) flst = 2;
-            else if (dot) flst = 3;
-            else flst = -1;
-          }
-          else if (flst == 1) /* got minus */
-          {
-            if (digit) flst = 2;
-            else if (dot) flst = 3;
-            else flst = -1;
-          }
-          else if (flst == 2) /* got digits */
-          {
-            if (dot) flst = 4;
-            else if (expon) flst = 6;
-            else if (!digit) flst = -1;
-          }
-          else if (flst == 3) /* got '.' without digits */
-          {
-            if (digit) flst = 5;
-            else flst = -1;
-          }
-          else if (flst == 4) /* got '.' after digits */
-          {
-            if (digit) flst = 5;
-            else if (expon) flst = 6;
-            else flst = -1;
-          }
-          else if (flst == 5) /* got digits after . */
-          {
-            if (expon) flst = 6;
-            else if (!digit) flst = -1;
-          }
-          else if (flst == 6) /* got 'e' */
-          {
-            if (plusminus) flst = 7;
-            else if (digit) flst = 8;
-            else flst = -1;
-          }
-          else if (flst == 7) /* got plus or minus */
-          {
-            if (digit) flst = 8;
-            else flst = -1;
-          }
-          else if (flst == 8) /* got digits */
-          {
-            if (!digit) flst = -1;
-          }
-        }
-        if (!slash) bufp++;
-      }
-      while (textp != etext && bufp != ebuf && *textp != ' ' &&
-        (slash || (*textp != sep && *textp != eol)));
-      *bufp = 0;
-      
-      if(*buf == '$' && buf[1] >= '0' && buf[1] <= '9' && !firstslash)
-      {
-        for (bufp = buf+2; *bufp; bufp++)
-          if (*bufp < '0' || *bufp > '9')
-          {
-            SETDOLLSYM(ap, gensym(buf+1));
-            goto iem_pbank_csv_didit;
-          }
-          SETDOLLAR(ap, atoi(buf+1));
-iem_pbank_csv_didit: ;
-      }
-      else
-      {
-        if(flst == 2 || flst == 4 || flst == 5 || flst == 8)
-        {
-          f = atof(buf);
-          if((f < 1.0e-20)&&(f > -1.0e-20))
-            f = 0.0;
-          SETFLOAT(ap, f);
-        }
-        else
-          SETSYMBOL(ap, gensym(buf));
-      }
-    }
-    
-    ap++;
-    natom++;
-    if(natom == *nalloc)
-    {
-      *at_beg = t_resizebytes(*at_beg, *nalloc * sizeof(t_atom),
-        *nalloc * (2*sizeof(t_atom)));
-      *nalloc = *nalloc * 2;
-      ap = *at_beg + natom;
-    }
-    if(textp == etext)
-      break;
-  }
-  return(natom);
-}
-
-/*static char myq(t_atom *a, int off)
-{
-char c='0';
-
-  if(IS_A_SEMI(a,off))
-  c = 's';
-  else if(IS_A_COMMA(a,off))
-  c = 'c';
-  else if(IS_A_FLOAT(a,off))
-    c = 'f';
-    else if(IS_A_SYMBOL(a,off))
-    c = 'y';
-    return(c);
-} */
-
-static void iem_pbank_csv_read(t_iem_pbank_csv *x, t_symbol *filename, t_symbol *format)
-{
-  char completefilename[400], eol[4], sep, mode[4], *txbuf1, *txbuf2, *txvec_src, *txvec_dst;
-  int size, p, l, i, j, nrl=x->x_nr_line, nrp=x->x_nr_para, atlen=0;
-  int txlen, txalloc, hat_alloc, max, eollen;
-  FILE *fh;
-  t_atom *ap, *hap, *at;
-  char formattext[100];
-  
-  strcpy(mode, "bsl"); /*blank-separator, semicolon-return-eol, linux_return*/
-  sep = ' ';
-  eol[0] = ';';
-  eol[1] = 0x0a;
-  eol[2] = 0;
-  if(filename->s_name[0] == '/')/*make complete path + filename*/
-  {
-    strcpy(completefilename, filename->s_name);
-  }
-  else if(((filename->s_name[0] >= 'A')&&(filename->s_name[0] <= 'Z')||
-    (filename->s_name[0] >= 'a')&&(filename->s_name[0] <= 'z'))&&
-    (filename->s_name[1] == ':')&&(filename->s_name[2] == '/'))
-  {
-    strcpy(completefilename, filename->s_name);
-  }
-  else
-  {
-    strcpy(completefilename, canvas_getdir(x->x_canvas)->s_name);
-    strcat(completefilename, "/");
-    strcat(completefilename, filename->s_name);
-  }
-  
-  fh = fopen(completefilename,"rb");
-  if(!fh)
-  {
-    post("iem_pbank_csv_read: cannot open %s !!\n", completefilename);
-  }
-  else
-  {
-    if(strlen(format->s_name) >= 3)
-    {
-      for(p=0; p<3; p++)
-      {
-        if((format->s_name[p] >= 'A')&&(format->s_name[p] <= 'Z'))
-          format->s_name[p] += 'a' - 'A';
-      }
-      if((format->s_name[0] == 'b')||(format->s_name[0] == 'c')||(format->s_name[0] == 's')||(format->s_name[0] == 't'))
-        mode[0] = format->s_name[0];
-      if((format->s_name[1] == 'b')||(format->s_name[1] == 'r')||(format->s_name[1] == 's'))
-        mode[1] = format->s_name[1];
-      if((format->s_name[2] == 'l')||(format->s_name[2] == 'w')||(format->s_name[2] == 'm'))
-        mode[2] = format->s_name[2];
-    }
-    else
-      post("iem_pbank_csv_read: use default format %s !!\n", mode);
-    if(mode[0] == 'b')
-    {
-      sep = ' ';
-      strcpy(formattext, "item-separator = BLANK; ");
-    }
-    else if(mode[0] == 'c')
-    {
-      sep = ',';
-      strcpy(formattext, "item-separator = COMMA; ");
-    }
-    else if(mode[0] == 's')
-    {
-      sep = ';';
-      strcpy(formattext, "item-separator = SEMICOLON; ");
-    }
-    else if(mode[0] == 't')
-    {
-      sep = 0x09;
-      strcpy(formattext, "item-separator = TABULATOR; ");
-    }
-    
-    eollen = 1;
-    if(mode[1] == 'b')
-    {
-      eol[0] = ' ';
-      strcat(formattext, "end_of_line_terminator = BLANK-RETURN in ");
-    }
-    else if(mode[1] == 'r')
-    {
-      eollen = 0;
-      strcat(formattext, "end_of_line_terminator = RETURN in ");
-    }
-    else if(mode[1] == 's')
-    {
-      eol[0] = ';';
-      strcat(formattext, "end_of_line_terminator = SEMICOLON-RETURN in ");
-    }
-    
-    if(mode[2] == 'l')
-    {
-      eol[eollen++] = 0x0a;
-      strcat(formattext, "LINUX-Format.");
-    }
-    else if(mode[2] == 'w')
-    {
-      eol[eollen++] = 0x0d;
-      eol[eollen++] = 0x0a;
-      strcat(formattext, "WINDOWS-Format.");
-    }
-    else if(mode[2] == 'm')
-    {
-      eol[eollen++] = 0x0d;
-      strcat(formattext, "MACINTOSH-Format.");
-    }
-    eol[eollen] = 0;
-    
-    fseek(fh, 0, SEEK_END);
-    txalloc = ftell(fh);
-    fseek(fh,0,SEEK_SET);
-    txbuf1 = (char *)getbytes(2 * txalloc * sizeof(char));
-    txbuf2 = (char *)getbytes(2 * txalloc * sizeof(char));
-    fread(txbuf1, sizeof(char), txalloc, fh);
-    fclose(fh);
-    
-    txvec_src = txbuf1;
-    txvec_dst = txbuf2;
-    p = 0;
-    for(l=0; l<txalloc; l++)
-    {
-      if(!strncmp(txvec_src, eol, eollen)) /* replace eol by 0x0a */
-      {
-        txvec_src += eollen;
-        l += eollen - 1;
-        *txvec_dst++ = 0x0a;
-        p++;
-      }
-      else if(*txvec_src == sep) /* replace sep by ; */
-      {
-        txvec_src++;
-        *txvec_dst++ = ';';
-        p++;
-      }
-      else if((*txvec_src == '\r')||(*txvec_src == '\n')||(*txvec_src == '\t')) /* remove '\n'-returns */
-        txvec_src++;
-      else                         /* copy the same char */
-      {
-        *txvec_dst++ = *txvec_src++;
-        p++;
-      }
-    }
-    txlen = p;
-    
-    txvec_src = txbuf2;
-    txvec_dst = txbuf1;
-    p = 0;
-    for(l=0; l<txlen; l++)
-    {
-      if((*txvec_src == ';')&&(txvec_src[1] == ';')) /* fill between 2 sep a zero */
-      {
-        *txvec_dst++ = *txvec_src++;
-        *txvec_dst++ = '0';
-        p += 2;
-      }
-      else if((*txvec_src == ';')&&(txvec_src[1] == 0x0a)) /* fill between sep and eol a zero */
-      {
-        *txvec_dst++ = *txvec_src++;
-        *txvec_dst++ = '0';
-        p += 2;
-      }
-      else if((*txvec_src == 0x0a)&&(txvec_src[1] == ';')) /* fill between eol and sep a zero */
-      {
-        *txvec_dst++ = *txvec_src++;
-        *txvec_dst++ = '0';
-        p += 2;
-      }
-      else if(*txvec_src == ',') /* replace a comma by a dot */
-      {
-        *txvec_dst++ = '.';
-        txvec_src++;
-        p++;
-      }
-      else                /* copy the same char */
-      {
-        *txvec_dst++ = *txvec_src++;
-        p++;
-      }
-    }
-    txlen = p;
-    
-    /*     strncpy(txbuf2, txbuf1, txlen);
-    txbuf2[txlen] = 0;
-    post("\n\n%s\n\n", txbuf2);   */
-    
-    hat_alloc = 200;
-    hap = t_getbytes(hat_alloc * sizeof(t_atom));
-    
-    atlen = iem_pbank_csv_text2atom(txbuf1, txlen, &hap, &hat_alloc, ';', 0x0a);
-    
-    /*   ap = hap;
-    i = atlen;
-    while(i >= 20)
-    {
-    post("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",myq(ap,0),myq(ap,1),myq(ap,2),myq(ap,3),myq(ap,4),myq(ap,5),myq(ap,6),myq(ap,7),myq(ap,8),myq(ap,9),myq(ap,10),myq(ap,11),myq(ap,12),myq(ap,13),myq(ap,14),myq(ap,15),myq(ap,16),myq(ap,17),myq(ap,18),myq(ap,19));
-    ap += 20;
-    i -= 20;
-  } */
-    
-    at = x->x_atbegmem;
-    for(l=0; l<nrl; l++)/*reset all*/
-    {
-      for(p=0; p<nrp; p++)
-      {
-        SETFLOAT(at, 0.0f);
-        at++;
-      }
-    }
-    
-    at = x->x_atbegmem;
-    ap = hap;
-    nrp++;
-    i = 0; /* atom-counter */
-    j = 0;
-    for(l=0; l<nrl; l++)/* nrl line times */
-    {
-      for(p=1; p<=nrp;)
-      {
-        if((p == nrp) && !(IS_A_SEMI(ap,0)))
-        {
-          /*post("too long");*/
-          while(!(IS_A_SEMI(ap,0)))
-          {
-            ap++;
-            atlen--;
-            /*post("ignore");*/
-            j++;
-            if(atlen <= 0)
-            {
-              goto iem_pbank_csv_end;
-            }
-          }
-        }
-        else
-        {
-          if(IS_A_FLOAT(ap,0))
-          {
-            SETFLOAT(at, ap->a_w.w_float);
-            /*post("float");*/
-            p++;
-            i++;
-            at++;
-          }
-          else if(IS_A_SYMBOL(ap,0))
-          {
-            SETSYMBOL(at, ap->a_w.w_symbol);
-            /*post("sym");*/
-            p++;
-            i++;
-            at++;
-          }
-          else if(IS_A_SEMI(ap,0))
-          {
-            /*post("semi");*/
-            for(; p<nrp;)
-            {
-              SETFLOAT(at,0.0);
-              /*post("zero");*/
-              p++;
-              i++;
-              at++;
-            }
-            p=nrp + 1;
-          }
-          ap++;
-          atlen--;
-          j++;
-        }
-        if(atlen <= 0)
-        {
-          goto iem_pbank_csv_end;
-        }
-      }
-    }
-    
-iem_pbank_csv_end:
-    
-    
-    freebytes(hap, hat_alloc * sizeof(t_atom));
-    freebytes(txbuf1, 2 * txalloc * sizeof(char));
-    freebytes(txbuf2, 2 * txalloc * sizeof(char));
-    post("iem_pbank_csv: read %d parameters x %d lines from file:\n%s\nwith following format:\n%s\n", nrp-1, nrl, completefilename, formattext);
-  }
-}
-
-static void iem_pbank_csv_recall(t_iem_pbank_csv *x, t_symbol *s, int ac, t_atom *av)
-{
-  int i, n, beg=0, nrp=x->x_nr_para;
-  t_atom *atbuf=x->x_atbegbuf, *atmem=x->x_atbegmem;
-  t_atom *atout=x->x_atbegout;
-  
-  if(ac >= 2)
-    nrp = atom_getintarg(1, ac, av);
-  if(ac >= 1)
-    beg = atom_getintarg(0, ac, av);
-  if(beg < 0)
-    beg = 0;
-  else if(beg >= x->x_nr_para)
-    beg = x->x_nr_para - 1;
-  if(nrp < 0)
-    nrp = 0;
-  else if((beg+nrp) > x->x_nr_para)
-    nrp = x->x_nr_para - beg;
-  atmem += x->x_nr_para * x->x_line + beg;
-  atbuf += beg;
-  SETFLOAT(atout, (float)beg);
-  atout++;
-  for(i=0; i<nrp; i++)
-  {
-    *atbuf++ = *atmem;
-    *atout++ = *atmem++;
-  }
-  outlet_list(x->x_offset_list_out, &s_list, nrp+1, x->x_atbegout);
-  outlet_list(x->x_list_out, &s_list, nrp, x->x_atbegout+1);
-}
-
-static void iem_pbank_csv_bang(t_iem_pbank_csv *x)
-{
-  int i, nrp=x->x_nr_para;
-  t_atom *atbuf=x->x_atbegbuf;
-  t_atom *atout=x->x_atbegout;
-  
-  SETFLOAT(atout, 0.0f);
-  atout++;
-  for(i=0; i<nrp; i++)
-    *atout++ = *atbuf++;
-  outlet_list(x->x_offset_list_out, &s_list, nrp+1, x->x_atbegout);
-  outlet_list(x->x_list_out, &s_list, nrp, x->x_atbegout+1);
-}
-
-static void iem_pbank_csv_store(t_iem_pbank_csv *x, t_symbol *s, int ac, t_atom *av)
-{
-  int i, beg=0, nrp=x->x_nr_para;
-  t_atom *atbuf=x->x_atbegbuf, *atmem=x->x_atbegmem;
-  
-  if(ac >= 2)
-    nrp = atom_getintarg(1, ac, av);
-  if(ac >= 1)
-    beg = atom_getintarg(0, ac, av);
-  if(beg < 0)
-    beg = 0;
-  else if(beg >= x->x_nr_para)
-    beg = x->x_nr_para - 1;
-  if(nrp < 0)
-    nrp = 0;
-  else if((beg+nrp) > x->x_nr_para)
-    nrp = x->x_nr_para - beg;
-  atmem += x->x_nr_para * x->x_line;
-  atmem += beg;
-  atbuf += beg;
-  for(i=0; i<nrp; i++)
-    *atmem++ = *atbuf++;
-}
-
-static void iem_pbank_csv_list(t_iem_pbank_csv *x, t_symbol *s, int ac, t_atom *av)
-{
-  if(ac >= 2)
-  {
-    int para_index = atom_getintarg(0, ac, av);
-    
-    if(para_index >= 0)
-    {
-      if((para_index+ac-1) <= x->x_nr_para)
-      {
-        int i;
-        
-        for(i=1; i<ac; i++)
-        {
-          x->x_atbegbuf[para_index] = av[i];
-          para_index++;
-        }
-      }
-    }
-  }
-}
-
-static void iem_pbank_csv_ft1(t_iem_pbank_csv *x, t_float fline_nr)
-{
-  int line = (int)fline_nr;
-  
-  if(line < 0)
-    line = 0;
-  else if(line >= x->x_nr_line)
-    line = x->x_nr_line - 1;
-  x->x_line = line;
-}
-
-static void iem_pbank_csv_free(t_iem_pbank_csv *x)
-{
-  freebytes(x->x_atbegmem, x->x_nr_para * x->x_nr_line * sizeof(t_atom));
-  freebytes(x->x_atbegbuf, x->x_nr_para * sizeof(t_atom));
-  freebytes(x->x_atbegout, (x->x_nr_para+1) * sizeof(t_atom));
-}
-
-static void *iem_pbank_csv_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_pbank_csv *x = (t_iem_pbank_csv *)pd_new(iem_pbank_csv_class);
-  int nrpp=0, nrp=10, nrl=10, p, l, i;
-  t_atom *ap;
-  
-  if((ac >= 1) && IS_A_FLOAT(av,0))
-    nrp = atom_getintarg(0, ac, av);
-  if((ac >= 2) && IS_A_FLOAT(av,1))
-    nrl = atom_getintarg(1, ac, av);
-  if(nrp <= 0)
-    nrp = 10;
-  if(nrl <= 0)
-    nrl = 10;
-  x->x_line = 0;
-  x->x_nr_para = nrp;
-  x->x_nr_line = nrl;
-  x->x_atbegmem = (t_atom *)getbytes(x->x_nr_para * x->x_nr_line * sizeof(t_atom));
-  x->x_atbegbuf = (t_atom *)getbytes(x->x_nr_para * sizeof(t_atom));
-  x->x_atbegout = (t_atom *)getbytes((x->x_nr_para+1) * sizeof(t_atom));
-  ap = x->x_atbegmem;
-  for(l=0; l<nrl; l++)
-  {
-    for(p=0; p<nrp; p++)
-    {
-      SETFLOAT(ap, 0.0f);
-      ap++;
-    }
-  }
-  ap = x->x_atbegbuf;
-  for(p=0; p<nrp; p++)
-  {
-    SETFLOAT(ap, 0.0f);
-    ap++;
-  }
-  x->x_list_out = outlet_new(&x->x_obj, &s_list);     /*left out*/
-  x->x_offset_list_out = outlet_new(&x->x_obj, &s_list);  /*right out*/
-  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
-  x->x_canvas = canvas_getcurrent();
-  return (x);
-}
-
-/* ---------------- global setup function -------------------- */
-
-void iem_pbank_csv_setup(void )
-{
-  iem_pbank_csv_class = class_new(gensym("iem_pbank_csv"), (t_newmethod)iem_pbank_csv_new,
-    (t_method)iem_pbank_csv_free, sizeof(t_iem_pbank_csv), 0, A_GIMME, 0);
-  class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_recall, gensym("recall"), A_GIMME, 0);
-  class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_store, gensym("store"), A_GIMME, 0);
-  class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_read, gensym("read"), A_SYMBOL, A_DEFSYM, 0);
-  class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_write, gensym("write"), A_SYMBOL, A_DEFSYM, 0);
-  class_addlist(iem_pbank_csv_class, iem_pbank_csv_list);
-  class_addbang(iem_pbank_csv_class, iem_pbank_csv_bang);
-  class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_ft1, gensym("ft1"), A_FLOAT, 0);
-  class_sethelpsymbol(iem_pbank_csv_class, gensym("iemhelp/help-iem_pbank_csv"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+
+/* ---------------------------- iem_pbank_csv ------------------------------- */
+/* -- is a list storage and management object, can store an array of lists -- */
+/* ------------------------------- as an csv file --------------------------- */
+
+/* read and write method needs 2 symbols,
+1. symbol is a filename,
+2. symbol is a 3 character descriptor
+
+  1.char: 'b'...for blank as ITEM_SEPARATOR (" ")
+  1.char: 'c'...for comma as ITEM_SEPARATOR (",")
+  1.char: 's'...for semicolon as ITEM_SEPARATOR (";")
+  1.char: 't'...for tabulator as ITEM_SEPARATOR ("	" = 0x09)
+  
+    2.char: 'b'...for blank,return as END_OF_LINE (" \n")
+    2.char: 'r'...for return-only as END_OF_LINE ("\n")
+    2.char: 's'...for semicolon,return as END_OF_LINE (";\n")
+    
+      3.char: 'l'...for linux RETURN (0x0A)
+      3.char: 'w'...for windows RETURN (0x0D,0x0A)
+      3.char: 'm'...for mac RETURN (0x0D)
+      
+        
+          
+        change: recall + offset + number
+*/
+
+static t_class *iem_pbank_csv_class;
+
+typedef struct _iem_pbank_csv
+{
+  t_object  x_obj;
+  int       x_nr_para;
+  int       x_nr_line;
+  int       x_line;
+  t_atom    *x_atbegmem;
+  t_atom    *x_atbegbuf;
+  t_atom    *x_atbegout;
+  t_canvas  *x_canvas;
+  void      *x_list_out;
+  void      *x_offset_list_out;
+} t_iem_pbank_csv;
+
+static void iem_pbank_csv_write(t_iem_pbank_csv *x, t_symbol *filename, t_symbol *format)
+{
+  char completefilename[400], eol[4], sep, mode[4], string[200];
+  int size, p, l, nrl=x->x_nr_line, nrp=x->x_nr_para;
+  int state, max=nrl*nrp, org_size, eollen;
+  FILE *fh;
+  t_atom *ap=x->x_atbegmem;
+  char formattext[100];
+  
+  strcpy(mode, "bsl"); /*blank-separator, semicolon-return-eol, linux_return*/
+  sep = ' ';
+  eol[0] = ';';
+  eol[1] = 0x0a;
+  eol[2] = 0;
+  if(filename->s_name[0] == '/')
+  {
+    strcpy(completefilename, filename->s_name);
+  }
+  else if(((filename->s_name[0] >= 'A')&&(filename->s_name[0] <= 'Z')||
+    (filename->s_name[0] >= 'a')&&(filename->s_name[0] <= 'z'))&&
+    (filename->s_name[1] == ':')&&(filename->s_name[2] == '/'))
+  {
+    strcpy(completefilename, filename->s_name);
+  }
+  else
+  {
+    strcpy(completefilename, canvas_getdir(x->x_canvas)->s_name);
+    strcat(completefilename, "/");
+    strcat(completefilename, filename->s_name);
+  }
+  
+  fh = fopen(completefilename,"wb");
+  if(!fh)
+  {
+    post("iem_pbank_csv_write: cannot create %s !!\n", completefilename);
+  }
+  else
+  {
+    if(strlen(format->s_name) >= 3)
+    {
+      for(p=0; p<3; p++)
+      {
+        if((format->s_name[p] >= 'A')&&(format->s_name[p] <= 'Z'))
+          format->s_name[p] += 'a' - 'A';
+      }
+      if((format->s_name[0] == 'b')||(format->s_name[0] == 'c')||(format->s_name[0] == 's')||(format->s_name[0] == 't'))
+        mode[0] = format->s_name[0];
+      if((format->s_name[1] == 'b')||(format->s_name[1] == 'r')||(format->s_name[1] == 's'))
+        mode[1] = format->s_name[1];
+      if((format->s_name[2] == 'l')||(format->s_name[2] == 'w')||(format->s_name[2] == 'm'))
+        mode[2] = format->s_name[2];
+    }
+    else
+      post("iem_pbank_csv_write: use default format %s !!\n", mode);
+    
+    if(mode[0] == 'b')
+    {
+      sep = ' ';
+      strcpy(formattext, "item-separator = BLANK; ");
+    }
+    else if(mode[0] == 'c')
+    {
+      sep = ',';
+      strcpy(formattext, "item-separator = COMMA; ");
+    }
+    else if(mode[0] == 's')
+    {
+      sep = ';';
+      strcpy(formattext, "item-separator = SEMICOLON; ");
+    }
+    else if(mode[0] == 't')
+    {
+      sep = 0x09;
+      strcpy(formattext, "item-separator = TABULATOR; ");
+    }
+    
+    eollen = 1;
+    if(mode[1] == 'b')
+    {
+      eol[0] = ' ';
+      strcat(formattext, "end_of_line_terminator = BLANK-RETURN in ");
+    }
+    else if(mode[1] == 'r')
+    {
+      eollen = 0;
+      strcat(formattext, "end_of_line_terminator = RETURN in ");
+    }
+    else if(mode[1] == 's')
+    {
+      eol[0] = ';';
+      strcat(formattext, "end_of_line_terminator = SEMICOLON-RETURN in ");
+    }
+    
+    if(mode[2] == 'l')
+    {
+      eol[eollen++] = 0x0a;
+      strcat(formattext, "LINUX-Format.");
+    }
+    else if(mode[2] == 'w')
+    {
+      eol[eollen++] = 0x0d;
+      eol[eollen++] = 0x0a;
+      strcat(formattext, "WINDOWS-Format.");
+    }
+    else if(mode[2] == 'm')
+    {
+      eol[eollen++] = 0x0d;
+      strcat(formattext, "MACINTOSH-Format.");
+    }
+    eol[eollen] = 0;
+    
+    ap = x->x_atbegmem;
+    for(l=0; l<nrl; l++)
+    {
+      for(p=1; p<nrp; p++)
+      {
+        if(IS_A_FLOAT(ap, 0))
+          fprintf(fh, "%g%c", ap->a_w.w_float, sep);
+        else if(IS_A_SYMBOL(ap, 0))
+          fprintf(fh, "%s%c", ap->a_w.w_symbol->s_name, sep);
+        ap++;
+      }
+      if(IS_A_FLOAT(ap, 0))
+        fprintf(fh, "%g%s", ap->a_w.w_float, eol);
+      else if(IS_A_SYMBOL(ap, 0))
+        fprintf(fh, "%s%s", ap->a_w.w_symbol->s_name, eol);
+      ap++;
+    }
+    fclose(fh);
+    post("iem_pbank_csv: wrote %d parameters x %d lines to file:\n%s\nwith following format:\n%s\n", nrp, nrl, completefilename, formattext);
+  }
+}
+
+int iem_pbank_csv_text2atom(char *text, int text_size, t_atom **at_beg,
+                            int *nalloc, char sep, char eol)
+{
+  char buf[MAXPDSTRING+1], *bufp, *ebuf = buf+MAXPDSTRING;
+  const char *textp = text, *etext = text + text_size;
+  int natom = 0;
+  t_atom *ap = *at_beg;
+  float f;
+  
+  while(1)
+  {
+    int type;
+    
+    if(textp == etext)
+      break;
+    if(*textp == eol)
+    {
+      SETSEMI(ap);
+      textp++;
+    }
+    else if(*textp == sep)
+    {
+      SETCOMMA(ap);
+      textp++;
+    }
+    else
+    {
+      char c;
+      int flst = 0, slash = 0, lastslash = 0;
+      int firstslash = (*textp == '\\');
+      
+      bufp = buf;
+      do
+      {
+        c = *bufp = *textp++;
+        lastslash = slash;
+        slash = (c == '\\');
+        
+        if (flst >= 0)
+        {
+          int digit = (c >= '0' && c <= '9'),
+            dot = (c == '.'), minus = (c == '-'),
+            plusminus = (minus || (c == '+')),
+            expon = (c == 'e' || c == 'E');
+          if (flst == 0)  /* beginning */
+          {
+            if (minus) flst = 1;
+            else if (digit) flst = 2;
+            else if (dot) flst = 3;
+            else flst = -1;
+          }
+          else if (flst == 1) /* got minus */
+          {
+            if (digit) flst = 2;
+            else if (dot) flst = 3;
+            else flst = -1;
+          }
+          else if (flst == 2) /* got digits */
+          {
+            if (dot) flst = 4;
+            else if (expon) flst = 6;
+            else if (!digit) flst = -1;
+          }
+          else if (flst == 3) /* got '.' without digits */
+          {
+            if (digit) flst = 5;
+            else flst = -1;
+          }
+          else if (flst == 4) /* got '.' after digits */
+          {
+            if (digit) flst = 5;
+            else if (expon) flst = 6;
+            else flst = -1;
+          }
+          else if (flst == 5) /* got digits after . */
+          {
+            if (expon) flst = 6;
+            else if (!digit) flst = -1;
+          }
+          else if (flst == 6) /* got 'e' */
+          {
+            if (plusminus) flst = 7;
+            else if (digit) flst = 8;
+            else flst = -1;
+          }
+          else if (flst == 7) /* got plus or minus */
+          {
+            if (digit) flst = 8;
+            else flst = -1;
+          }
+          else if (flst == 8) /* got digits */
+          {
+            if (!digit) flst = -1;
+          }
+        }
+        if (!slash) bufp++;
+      }
+      while (textp != etext && bufp != ebuf && *textp != ' ' &&
+        (slash || (*textp != sep && *textp != eol)));
+      *bufp = 0;
+      
+      if(*buf == '$' && buf[1] >= '0' && buf[1] <= '9' && !firstslash)
+      {
+        for (bufp = buf+2; *bufp; bufp++)
+          if (*bufp < '0' || *bufp > '9')
+          {
+            SETDOLLSYM(ap, gensym(buf+1));
+            goto iem_pbank_csv_didit;
+          }
+          SETDOLLAR(ap, atoi(buf+1));
+iem_pbank_csv_didit: ;
+      }
+      else
+      {
+        if(flst == 2 || flst == 4 || flst == 5 || flst == 8)
+        {
+          f = atof(buf);
+          if((f < 1.0e-20)&&(f > -1.0e-20))
+            f = 0.0;
+          SETFLOAT(ap, f);
+        }
+        else
+          SETSYMBOL(ap, gensym(buf));
+      }
+    }
+    
+    ap++;
+    natom++;
+    if(natom == *nalloc)
+    {
+      *at_beg = t_resizebytes(*at_beg, *nalloc * sizeof(t_atom),
+        *nalloc * (2*sizeof(t_atom)));
+      *nalloc = *nalloc * 2;
+      ap = *at_beg + natom;
+    }
+    if(textp == etext)
+      break;
+  }
+  return(natom);
+}
+
+/*static char myq(t_atom *a, int off)
+{
+char c='0';
+
+  if(IS_A_SEMI(a,off))
+  c = 's';
+  else if(IS_A_COMMA(a,off))
+  c = 'c';
+  else if(IS_A_FLOAT(a,off))
+    c = 'f';
+    else if(IS_A_SYMBOL(a,off))
+    c = 'y';
+    return(c);
+} */
+
+static void iem_pbank_csv_read(t_iem_pbank_csv *x, t_symbol *filename, t_symbol *format)
+{
+  char completefilename[400], eol[4], sep, mode[4], *txbuf1, *txbuf2, *txvec_src, *txvec_dst;
+  int size, p, l, i, j, nrl=x->x_nr_line, nrp=x->x_nr_para, atlen=0;
+  int txlen, txalloc, hat_alloc, max, eollen;
+  FILE *fh;
+  t_atom *ap, *hap, *at;
+  char formattext[100];
+  
+  strcpy(mode, "bsl"); /*blank-separator, semicolon-return-eol, linux_return*/
+  sep = ' ';
+  eol[0] = ';';
+  eol[1] = 0x0a;
+  eol[2] = 0;
+  if(filename->s_name[0] == '/')/*make complete path + filename*/
+  {
+    strcpy(completefilename, filename->s_name);
+  }
+  else if(((filename->s_name[0] >= 'A')&&(filename->s_name[0] <= 'Z')||
+    (filename->s_name[0] >= 'a')&&(filename->s_name[0] <= 'z'))&&
+    (filename->s_name[1] == ':')&&(filename->s_name[2] == '/'))
+  {
+    strcpy(completefilename, filename->s_name);
+  }
+  else
+  {
+    strcpy(completefilename, canvas_getdir(x->x_canvas)->s_name);
+    strcat(completefilename, "/");
+    strcat(completefilename, filename->s_name);
+  }
+  
+  fh = fopen(completefilename,"rb");
+  if(!fh)
+  {
+    post("iem_pbank_csv_read: cannot open %s !!\n", completefilename);
+  }
+  else
+  {
+    if(strlen(format->s_name) >= 3)
+    {
+      for(p=0; p<3; p++)
+      {
+        if((format->s_name[p] >= 'A')&&(format->s_name[p] <= 'Z'))
+          format->s_name[p] += 'a' - 'A';
+      }
+      if((format->s_name[0] == 'b')||(format->s_name[0] == 'c')||(format->s_name[0] == 's')||(format->s_name[0] == 't'))
+        mode[0] = format->s_name[0];
+      if((format->s_name[1] == 'b')||(format->s_name[1] == 'r')||(format->s_name[1] == 's'))
+        mode[1] = format->s_name[1];
+      if((format->s_name[2] == 'l')||(format->s_name[2] == 'w')||(format->s_name[2] == 'm'))
+        mode[2] = format->s_name[2];
+    }
+    else
+      post("iem_pbank_csv_read: use default format %s !!\n", mode);
+    if(mode[0] == 'b')
+    {
+      sep = ' ';
+      strcpy(formattext, "item-separator = BLANK; ");
+    }
+    else if(mode[0] == 'c')
+    {
+      sep = ',';
+      strcpy(formattext, "item-separator = COMMA; ");
+    }
+    else if(mode[0] == 's')
+    {
+      sep = ';';
+      strcpy(formattext, "item-separator = SEMICOLON; ");
+    }
+    else if(mode[0] == 't')
+    {
+      sep = 0x09;
+      strcpy(formattext, "item-separator = TABULATOR; ");
+    }
+    
+    eollen = 1;
+    if(mode[1] == 'b')
+    {
+      eol[0] = ' ';
+      strcat(formattext, "end_of_line_terminator = BLANK-RETURN in ");
+    }
+    else if(mode[1] == 'r')
+    {
+      eollen = 0;
+      strcat(formattext, "end_of_line_terminator = RETURN in ");
+    }
+    else if(mode[1] == 's')
+    {
+      eol[0] = ';';
+      strcat(formattext, "end_of_line_terminator = SEMICOLON-RETURN in ");
+    }
+    
+    if(mode[2] == 'l')
+    {
+      eol[eollen++] = 0x0a;
+      strcat(formattext, "LINUX-Format.");
+    }
+    else if(mode[2] == 'w')
+    {
+      eol[eollen++] = 0x0d;
+      eol[eollen++] = 0x0a;
+      strcat(formattext, "WINDOWS-Format.");
+    }
+    else if(mode[2] == 'm')
+    {
+      eol[eollen++] = 0x0d;
+      strcat(formattext, "MACINTOSH-Format.");
+    }
+    eol[eollen] = 0;
+    
+    fseek(fh, 0, SEEK_END);
+    txalloc = ftell(fh);
+    fseek(fh,0,SEEK_SET);
+    txbuf1 = (char *)getbytes(2 * txalloc * sizeof(char));
+    txbuf2 = (char *)getbytes(2 * txalloc * sizeof(char));
+    fread(txbuf1, sizeof(char), txalloc, fh);
+    fclose(fh);
+    
+    txvec_src = txbuf1;
+    txvec_dst = txbuf2;
+    p = 0;
+    for(l=0; l<txalloc; l++)
+    {
+      if(!strncmp(txvec_src, eol, eollen)) /* replace eol by 0x0a */
+      {
+        txvec_src += eollen;
+        l += eollen - 1;
+        *txvec_dst++ = 0x0a;
+        p++;
+      }
+      else if(*txvec_src == sep) /* replace sep by ; */
+      {
+        txvec_src++;
+        *txvec_dst++ = ';';
+        p++;
+      }
+      else if((*txvec_src == '\r')||(*txvec_src == '\n')||(*txvec_src == '\t')) /* remove '\n'-returns */
+        txvec_src++;
+      else                         /* copy the same char */
+      {
+        *txvec_dst++ = *txvec_src++;
+        p++;
+      }
+    }
+    txlen = p;
+    
+    txvec_src = txbuf2;
+    txvec_dst = txbuf1;
+    p = 0;
+    for(l=0; l<txlen; l++)
+    {
+      if((*txvec_src == ';')&&(txvec_src[1] == ';')) /* fill between 2 sep a zero */
+      {
+        *txvec_dst++ = *txvec_src++;
+        *txvec_dst++ = '0';
+        p += 2;
+      }
+      else if((*txvec_src == ';')&&(txvec_src[1] == 0x0a)) /* fill between sep and eol a zero */
+      {
+        *txvec_dst++ = *txvec_src++;
+        *txvec_dst++ = '0';
+        p += 2;
+      }
+      else if((*txvec_src == 0x0a)&&(txvec_src[1] == ';')) /* fill between eol and sep a zero */
+      {
+        *txvec_dst++ = *txvec_src++;
+        *txvec_dst++ = '0';
+        p += 2;
+      }
+      else if(*txvec_src == ',') /* replace a comma by a dot */
+      {
+        *txvec_dst++ = '.';
+        txvec_src++;
+        p++;
+      }
+      else                /* copy the same char */
+      {
+        *txvec_dst++ = *txvec_src++;
+        p++;
+      }
+    }
+    txlen = p;
+    
+    /*     strncpy(txbuf2, txbuf1, txlen);
+    txbuf2[txlen] = 0;
+    post("\n\n%s\n\n", txbuf2);   */
+    
+    hat_alloc = 200;
+    hap = t_getbytes(hat_alloc * sizeof(t_atom));
+    
+    atlen = iem_pbank_csv_text2atom(txbuf1, txlen, &hap, &hat_alloc, ';', 0x0a);
+    
+    /*   ap = hap;
+    i = atlen;
+    while(i >= 20)
+    {
+    post("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",myq(ap,0),myq(ap,1),myq(ap,2),myq(ap,3),myq(ap,4),myq(ap,5),myq(ap,6),myq(ap,7),myq(ap,8),myq(ap,9),myq(ap,10),myq(ap,11),myq(ap,12),myq(ap,13),myq(ap,14),myq(ap,15),myq(ap,16),myq(ap,17),myq(ap,18),myq(ap,19));
+    ap += 20;
+    i -= 20;
+  } */
+    
+    at = x->x_atbegmem;
+    for(l=0; l<nrl; l++)/*reset all*/
+    {
+      for(p=0; p<nrp; p++)
+      {
+        SETFLOAT(at, 0.0f);
+        at++;
+      }
+    }
+    
+    at = x->x_atbegmem;
+    ap = hap;
+    nrp++;
+    i = 0; /* atom-counter */
+    j = 0;
+    for(l=0; l<nrl; l++)/* nrl line times */
+    {
+      for(p=1; p<=nrp;)
+      {
+        if((p == nrp) && !(IS_A_SEMI(ap,0)))
+        {
+          /*post("too long");*/
+          while(!(IS_A_SEMI(ap,0)))
+          {
+            ap++;
+            atlen--;
+            /*post("ignore");*/
+            j++;
+            if(atlen <= 0)
+            {
+              goto iem_pbank_csv_end;
+            }
+          }
+        }
+        else
+        {
+          if(IS_A_FLOAT(ap,0))
+          {
+            SETFLOAT(at, ap->a_w.w_float);
+            /*post("float");*/
+            p++;
+            i++;
+            at++;
+          }
+          else if(IS_A_SYMBOL(ap,0))
+          {
+            SETSYMBOL(at, ap->a_w.w_symbol);
+            /*post("sym");*/
+            p++;
+            i++;
+            at++;
+          }
+          else if(IS_A_SEMI(ap,0))
+          {
+            /*post("semi");*/
+            for(; p<nrp;)
+            {
+              SETFLOAT(at,0.0);
+              /*post("zero");*/
+              p++;
+              i++;
+              at++;
+            }
+            p=nrp + 1;
+          }
+          ap++;
+          atlen--;
+          j++;
+        }
+        if(atlen <= 0)
+        {
+          goto iem_pbank_csv_end;
+        }
+      }
+    }
+    
+iem_pbank_csv_end:
+    
+    
+    freebytes(hap, hat_alloc * sizeof(t_atom));
+    freebytes(txbuf1, 2 * txalloc * sizeof(char));
+    freebytes(txbuf2, 2 * txalloc * sizeof(char));
+    post("iem_pbank_csv: read %d parameters x %d lines from file:\n%s\nwith following format:\n%s\n", nrp-1, nrl, completefilename, formattext);
+  }
+}
+
+static void iem_pbank_csv_recall(t_iem_pbank_csv *x, t_symbol *s, int ac, t_atom *av)
+{
+  int i, n, beg=0, nrp=x->x_nr_para;
+  t_atom *atbuf=x->x_atbegbuf, *atmem=x->x_atbegmem;
+  t_atom *atout=x->x_atbegout;
+  
+  if(ac >= 2)
+    nrp = atom_getintarg(1, ac, av);
+  if(ac >= 1)
+    beg = atom_getintarg(0, ac, av);
+  if(beg < 0)
+    beg = 0;
+  else if(beg >= x->x_nr_para)
+    beg = x->x_nr_para - 1;
+  if(nrp < 0)
+    nrp = 0;
+  else if((beg+nrp) > x->x_nr_para)
+    nrp = x->x_nr_para - beg;
+  atmem += x->x_nr_para * x->x_line + beg;
+  atbuf += beg;
+  SETFLOAT(atout, (float)beg);
+  atout++;
+  for(i=0; i<nrp; i++)
+  {
+    *atbuf++ = *atmem;
+    *atout++ = *atmem++;
+  }
+  outlet_list(x->x_offset_list_out, &s_list, nrp+1, x->x_atbegout);
+  outlet_list(x->x_list_out, &s_list, nrp, x->x_atbegout+1);
+}
+
+static void iem_pbank_csv_bang(t_iem_pbank_csv *x)
+{
+  int i, nrp=x->x_nr_para;
+  t_atom *atbuf=x->x_atbegbuf;
+  t_atom *atout=x->x_atbegout;
+  
+  SETFLOAT(atout, 0.0f);
+  atout++;
+  for(i=0; i<nrp; i++)
+    *atout++ = *atbuf++;
+  outlet_list(x->x_offset_list_out, &s_list, nrp+1, x->x_atbegout);
+  outlet_list(x->x_list_out, &s_list, nrp, x->x_atbegout+1);
+}
+
+static void iem_pbank_csv_store(t_iem_pbank_csv *x, t_symbol *s, int ac, t_atom *av)
+{
+  int i, beg=0, nrp=x->x_nr_para;
+  t_atom *atbuf=x->x_atbegbuf, *atmem=x->x_atbegmem;
+  
+  if(ac >= 2)
+    nrp = atom_getintarg(1, ac, av);
+  if(ac >= 1)
+    beg = atom_getintarg(0, ac, av);
+  if(beg < 0)
+    beg = 0;
+  else if(beg >= x->x_nr_para)
+    beg = x->x_nr_para - 1;
+  if(nrp < 0)
+    nrp = 0;
+  else if((beg+nrp) > x->x_nr_para)
+    nrp = x->x_nr_para - beg;
+  atmem += x->x_nr_para * x->x_line;
+  atmem += beg;
+  atbuf += beg;
+  for(i=0; i<nrp; i++)
+    *atmem++ = *atbuf++;
+}
+
+static void iem_pbank_csv_list(t_iem_pbank_csv *x, t_symbol *s, int ac, t_atom *av)
+{
+  if(ac >= 2)
+  {
+    int para_index = atom_getintarg(0, ac, av);
+    
+    if(para_index >= 0)
+    {
+      if((para_index+ac-1) <= x->x_nr_para)
+      {
+        int i;
+        
+        for(i=1; i<ac; i++)
+        {
+          x->x_atbegbuf[para_index] = av[i];
+          para_index++;
+        }
+      }
+    }
+  }
+}
+
+static void iem_pbank_csv_ft1(t_iem_pbank_csv *x, t_float fline_nr)
+{
+  int line = (int)fline_nr;
+  
+  if(line < 0)
+    line = 0;
+  else if(line >= x->x_nr_line)
+    line = x->x_nr_line - 1;
+  x->x_line = line;
+}
+
+static void iem_pbank_csv_free(t_iem_pbank_csv *x)
+{
+  freebytes(x->x_atbegmem, x->x_nr_para * x->x_nr_line * sizeof(t_atom));
+  freebytes(x->x_atbegbuf, x->x_nr_para * sizeof(t_atom));
+  freebytes(x->x_atbegout, (x->x_nr_para+1) * sizeof(t_atom));
+}
+
+static void *iem_pbank_csv_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_pbank_csv *x = (t_iem_pbank_csv *)pd_new(iem_pbank_csv_class);
+  int nrpp=0, nrp=10, nrl=10, p, l, i;
+  t_atom *ap;
+  
+  if((ac >= 1) && IS_A_FLOAT(av,0))
+    nrp = atom_getintarg(0, ac, av);
+  if((ac >= 2) && IS_A_FLOAT(av,1))
+    nrl = atom_getintarg(1, ac, av);
+  if(nrp <= 0)
+    nrp = 10;
+  if(nrl <= 0)
+    nrl = 10;
+  x->x_line = 0;
+  x->x_nr_para = nrp;
+  x->x_nr_line = nrl;
+  x->x_atbegmem = (t_atom *)getbytes(x->x_nr_para * x->x_nr_line * sizeof(t_atom));
+  x->x_atbegbuf = (t_atom *)getbytes(x->x_nr_para * sizeof(t_atom));
+  x->x_atbegout = (t_atom *)getbytes((x->x_nr_para+1) * sizeof(t_atom));
+  ap = x->x_atbegmem;
+  for(l=0; l<nrl; l++)
+  {
+    for(p=0; p<nrp; p++)
+    {
+      SETFLOAT(ap, 0.0f);
+      ap++;
+    }
+  }
+  ap = x->x_atbegbuf;
+  for(p=0; p<nrp; p++)
+  {
+    SETFLOAT(ap, 0.0f);
+    ap++;
+  }
+  x->x_list_out = outlet_new(&x->x_obj, &s_list);     /*left out*/
+  x->x_offset_list_out = outlet_new(&x->x_obj, &s_list);  /*right out*/
+  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
+  x->x_canvas = canvas_getcurrent();
+  return (x);
+}
+
+/* ---------------- global setup function -------------------- */
+
+void iem_pbank_csv_setup(void )
+{
+  iem_pbank_csv_class = class_new(gensym("iem_pbank_csv"), (t_newmethod)iem_pbank_csv_new,
+    (t_method)iem_pbank_csv_free, sizeof(t_iem_pbank_csv), 0, A_GIMME, 0);
+  class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_recall, gensym("recall"), A_GIMME, 0);
+  class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_store, gensym("store"), A_GIMME, 0);
+  class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_read, gensym("read"), A_SYMBOL, A_DEFSYM, 0);
+  class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_write, gensym("write"), A_SYMBOL, A_DEFSYM, 0);
+  class_addlist(iem_pbank_csv_class, iem_pbank_csv_list);
+  class_addbang(iem_pbank_csv_class, iem_pbank_csv_bang);
+  class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_ft1, gensym("ft1"), A_FLOAT, 0);
+  class_sethelpsymbol(iem_pbank_csv_class, gensym("iemhelp/help-iem_pbank_csv"));
+}
diff --git a/src/iemlib2/iem_prepend.c b/src/iemlib2/iem_prepend.c
index 44302ad..d49c5ae 100644
--- a/src/iemlib2/iem_prepend.c
+++ b/src/iemlib2/iem_prepend.c
@@ -1,252 +1,252 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* ----------------------- iem_prepend --------------------------- */
-/* -- concatenates message from cold (right) inlet with message -- */
-/* ------- from hot (left) inlet and outputs it;   initial ------- */
-/* --- arguments (prependix) are eqal to message of cold inlet --- */
-
-struct _iem_prepend_proxy;
-
-static t_class *iem_prepend_class;
-static t_class *iem_prepend_proxy_class;
-
-typedef struct _iem_prepend
-{
-  t_object                   x_obj;
-  struct _iem_prepend_proxy  *x_proxy_inlet;
-  int                        x_size;
-  int                        x_ac;
-  t_atom                     *x_at;
-  t_symbol                   *x_selector_sym;
-} t_iem_prepend;
-
-typedef struct _iem_prepend_proxy
-{
-  t_object       p_obj;
-  t_iem_prepend  *p_owner;
-} t_iem_prepend_proxy;
-
-static void iem_prepend_atcopy(t_atom *src, t_atom *dst, int n)
-{
-  while(n--)
-    *dst++ = *src++;
-}
-
-static void iem_prepend_bang(t_iem_prepend *x)
-{
-  outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac, x->x_at);
-}
-
-static void iem_prepend_float(t_iem_prepend *x, t_float f)
-{
-  if(x->x_selector_sym == &s_bang)
-    outlet_float(x->x_obj.ob_outlet, f);
-  else
-  {
-    SETFLOAT(x->x_at+x->x_ac, f);
-    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+1, x->x_at);
-  }
-}
-
-static void iem_prepend_symbol(t_iem_prepend *x, t_symbol *s)
-{
-  if(x->x_selector_sym == &s_bang)
-    outlet_symbol(x->x_obj.ob_outlet, s);
-  else
-  {
-    SETSYMBOL(x->x_at+x->x_ac, s);
-    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+1, x->x_at);
-  }
-}
-
-static void iem_prepend_pointer(t_iem_prepend *x, t_gpointer *gp)
-{
-  if(x->x_selector_sym == &s_bang)
-    outlet_pointer(x->x_obj.ob_outlet, gp);
-  else
-  {
-    SETPOINTER(x->x_at+x->x_ac, gp);
-    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+1, x->x_at);
-  }
-}
-
-static void iem_prepend_list(t_iem_prepend *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac+x->x_ac+1) >= x->x_size)
-  {
-    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac+11)*sizeof(t_atom));
-    x->x_size = ac + x->x_ac + 11;
-  }
-  if(x->x_selector_sym == &s_bang)
-    outlet_anything(x->x_obj.ob_outlet, &s_list, ac, av);
-  else
-  {
-    iem_prepend_atcopy(av, x->x_at + x->x_ac, ac);
-    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+ac, x->x_at);
-  }
-}
-
-static void iem_prepend_anything(t_iem_prepend *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac+x->x_ac+2) >= x->x_size)
-  {
-    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac+12)*sizeof(t_atom));
-    x->x_size = ac + x->x_ac + 12;
-  }
-  if(x->x_selector_sym == &s_bang)
-    outlet_anything(x->x_obj.ob_outlet, s, ac, av);
-  else
-  {
-    SETSYMBOL(x->x_at + x->x_ac, s);
-    iem_prepend_atcopy(av, x->x_at+x->x_ac+1, ac);
-    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+ac+1, x->x_at);
-  }
-}
-
-/* begin of proxy methods (anything inlets) */
-
-static void iem_prepend_proxy_bang(t_iem_prepend_proxy *p)
-{
-  t_iem_prepend *x = p->p_owner;
-
-  x->x_ac = 0;
-  x->x_selector_sym = &s_bang;
-}
-
-static void iem_prepend_proxy_float(t_iem_prepend_proxy *p, t_float f)
-{
-  t_iem_prepend *x = p->p_owner;
-
-  x->x_ac = 1;
-  SETFLOAT(x->x_at, f);
-  x->x_selector_sym = &s_list;
-}
-
-static void iem_prepend_proxy_symbol(t_iem_prepend_proxy *p, t_symbol *s)
-{
-  t_iem_prepend *x = p->p_owner;
-
-  x->x_ac = 1;
-  SETSYMBOL(x->x_at, s);
-  x->x_selector_sym = &s_list;
-}
-
-static void iem_prepend_proxy_pointer(t_iem_prepend_proxy *p, t_gpointer *gp)
-{
-  t_iem_prepend *x = p->p_owner;
-
-  x->x_ac = 1;
-  SETPOINTER(x->x_at, gp);
-  x->x_selector_sym = &s_list;
-}
-
-static void iem_prepend_proxy_list(t_iem_prepend_proxy *p, t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_prepend *x = p->p_owner;
-
-  if((2*ac+10) > x->x_size)
-  {
-    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (2*ac+10)*sizeof(t_atom));
-    x->x_size = 2*ac+10;
-  }
-  x->x_ac = ac;
-  x->x_selector_sym = &s_list;
-  iem_prepend_atcopy(av, x->x_at, ac);
-}
-
-static void iem_prepend_proxy_anything(t_iem_prepend_proxy *p, t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_prepend *x = p->p_owner;
-
-  if((2*ac+11) > x->x_size)
-  {
-    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (2*ac+11)*sizeof(t_atom));
-    x->x_size = 2*ac + 11;
-  }
-  x->x_ac = ac;
-  x->x_selector_sym = s;
-  iem_prepend_atcopy(av, x->x_at, ac);
-}
-
-/* end of proxy methods (anything inlets) */
-
-static void iem_prepend_free(t_iem_prepend *x)
-{
-  if(x->x_at)
-    freebytes(x->x_at, x->x_size * sizeof(t_atom));
-  if(x->x_proxy_inlet)
-    pd_free((t_pd *)x->x_proxy_inlet);
-}
-
-static void *iem_prepend_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_prepend *x = (t_iem_prepend *)pd_new(iem_prepend_class);
-  t_iem_prepend_proxy *p = (t_iem_prepend_proxy *)pd_new(iem_prepend_proxy_class);
-
-  x->x_proxy_inlet = p;
-  p->p_owner = x;
-
-  x->x_size = 30;
-  if(ac > 10)
-    x->x_size = 2*ac + 10;
-  x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
-  if(!ac)
-  {
-    x->x_ac = 0;
-    x->x_selector_sym = &s_bang;
-  }
-  else
-  {
-    if(IS_A_FLOAT(av, 0))
-    {
-      iem_prepend_proxy_list(p, &s_list, ac, av);
-    }
-    else if(IS_A_SYMBOL(av, 0))
-    {
-      iem_prepend_proxy_anything(p, atom_getsymbol(av), ac-1, av+1);
-    }
-  }
-  inlet_new((t_object *)x, (t_pd *)p, 0, 0);
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void iem_prepend_setup(void)
-{
-  iem_prepend_class = class_new(gensym("iem_prepend"),
-    (t_newmethod)iem_prepend_new, (t_method)iem_prepend_free,
-    sizeof(t_iem_prepend), 0, A_GIMME, 0);
-	class_addcreator((t_newmethod)iem_prepend_new, gensym("pp"), A_GIMME, 0);
-	class_addcreator((t_newmethod)iem_prepend_new, gensym("prepend"), A_GIMME, 0);
-
-  class_addbang(iem_prepend_class, (t_method)iem_prepend_bang);
-  class_addpointer(iem_prepend_class, iem_prepend_pointer);
-  class_addfloat(iem_prepend_class, (t_method)iem_prepend_float);
-  class_addsymbol(iem_prepend_class, iem_prepend_symbol);
-  class_addlist(iem_prepend_class, iem_prepend_list);
-  class_addanything(iem_prepend_class, iem_prepend_anything);
-  class_sethelpsymbol(iem_prepend_class, gensym("iemhelp/help-iem_prepend"));
-
-  iem_prepend_proxy_class = class_new(gensym("_iem_prepend_proxy"),
-    0, 0, sizeof(t_iem_prepend_proxy), CLASS_PD | CLASS_NOINLET, 0);
-  class_addbang(iem_prepend_proxy_class, (t_method)iem_prepend_proxy_bang);
-  class_addpointer(iem_prepend_proxy_class, iem_prepend_proxy_pointer);
-  class_addfloat(iem_prepend_proxy_class, (t_method)iem_prepend_proxy_float);
-  class_addsymbol(iem_prepend_proxy_class, iem_prepend_proxy_symbol);
-  class_addlist(iem_prepend_proxy_class, iem_prepend_proxy_list);
-  class_addanything(iem_prepend_proxy_class, iem_prepend_proxy_anything);
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* ----------------------- iem_prepend --------------------------- */
+/* -- concatenates message from cold (right) inlet with message -- */
+/* ------- from hot (left) inlet and outputs it;   initial ------- */
+/* --- arguments (prependix) are eqal to message of cold inlet --- */
+
+struct _iem_prepend_proxy;
+
+static t_class *iem_prepend_class;
+static t_class *iem_prepend_proxy_class;
+
+typedef struct _iem_prepend
+{
+  t_object                   x_obj;
+  struct _iem_prepend_proxy  *x_proxy_inlet;
+  int                        x_size;
+  int                        x_ac;
+  t_atom                     *x_at;
+  t_symbol                   *x_selector_sym;
+} t_iem_prepend;
+
+typedef struct _iem_prepend_proxy
+{
+  t_object       p_obj;
+  t_iem_prepend  *p_owner;
+} t_iem_prepend_proxy;
+
+static void iem_prepend_atcopy(t_atom *src, t_atom *dst, int n)
+{
+  while(n--)
+    *dst++ = *src++;
+}
+
+static void iem_prepend_bang(t_iem_prepend *x)
+{
+  outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac, x->x_at);
+}
+
+static void iem_prepend_float(t_iem_prepend *x, t_float f)
+{
+  if(x->x_selector_sym == &s_bang)
+    outlet_float(x->x_obj.ob_outlet, f);
+  else
+  {
+    SETFLOAT(x->x_at+x->x_ac, f);
+    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+1, x->x_at);
+  }
+}
+
+static void iem_prepend_symbol(t_iem_prepend *x, t_symbol *s)
+{
+  if(x->x_selector_sym == &s_bang)
+    outlet_symbol(x->x_obj.ob_outlet, s);
+  else
+  {
+    SETSYMBOL(x->x_at+x->x_ac, s);
+    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+1, x->x_at);
+  }
+}
+
+static void iem_prepend_pointer(t_iem_prepend *x, t_gpointer *gp)
+{
+  if(x->x_selector_sym == &s_bang)
+    outlet_pointer(x->x_obj.ob_outlet, gp);
+  else
+  {
+    SETPOINTER(x->x_at+x->x_ac, gp);
+    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+1, x->x_at);
+  }
+}
+
+static void iem_prepend_list(t_iem_prepend *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac+x->x_ac+1) >= x->x_size)
+  {
+    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac+11)*sizeof(t_atom));
+    x->x_size = ac + x->x_ac + 11;
+  }
+  if(x->x_selector_sym == &s_bang)
+    outlet_anything(x->x_obj.ob_outlet, &s_list, ac, av);
+  else
+  {
+    iem_prepend_atcopy(av, x->x_at + x->x_ac, ac);
+    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+ac, x->x_at);
+  }
+}
+
+static void iem_prepend_anything(t_iem_prepend *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac+x->x_ac+2) >= x->x_size)
+  {
+    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac+12)*sizeof(t_atom));
+    x->x_size = ac + x->x_ac + 12;
+  }
+  if(x->x_selector_sym == &s_bang)
+    outlet_anything(x->x_obj.ob_outlet, s, ac, av);
+  else
+  {
+    SETSYMBOL(x->x_at + x->x_ac, s);
+    iem_prepend_atcopy(av, x->x_at+x->x_ac+1, ac);
+    outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+ac+1, x->x_at);
+  }
+}
+
+/* begin of proxy methods (anything inlets) */
+
+static void iem_prepend_proxy_bang(t_iem_prepend_proxy *p)
+{
+  t_iem_prepend *x = p->p_owner;
+
+  x->x_ac = 0;
+  x->x_selector_sym = &s_bang;
+}
+
+static void iem_prepend_proxy_float(t_iem_prepend_proxy *p, t_float f)
+{
+  t_iem_prepend *x = p->p_owner;
+
+  x->x_ac = 1;
+  SETFLOAT(x->x_at, f);
+  x->x_selector_sym = &s_list;
+}
+
+static void iem_prepend_proxy_symbol(t_iem_prepend_proxy *p, t_symbol *s)
+{
+  t_iem_prepend *x = p->p_owner;
+
+  x->x_ac = 1;
+  SETSYMBOL(x->x_at, s);
+  x->x_selector_sym = &s_list;
+}
+
+static void iem_prepend_proxy_pointer(t_iem_prepend_proxy *p, t_gpointer *gp)
+{
+  t_iem_prepend *x = p->p_owner;
+
+  x->x_ac = 1;
+  SETPOINTER(x->x_at, gp);
+  x->x_selector_sym = &s_list;
+}
+
+static void iem_prepend_proxy_list(t_iem_prepend_proxy *p, t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_prepend *x = p->p_owner;
+
+  if((2*ac+10) > x->x_size)
+  {
+    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (2*ac+10)*sizeof(t_atom));
+    x->x_size = 2*ac+10;
+  }
+  x->x_ac = ac;
+  x->x_selector_sym = &s_list;
+  iem_prepend_atcopy(av, x->x_at, ac);
+}
+
+static void iem_prepend_proxy_anything(t_iem_prepend_proxy *p, t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_prepend *x = p->p_owner;
+
+  if((2*ac+11) > x->x_size)
+  {
+    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (2*ac+11)*sizeof(t_atom));
+    x->x_size = 2*ac + 11;
+  }
+  x->x_ac = ac;
+  x->x_selector_sym = s;
+  iem_prepend_atcopy(av, x->x_at, ac);
+}
+
+/* end of proxy methods (anything inlets) */
+
+static void iem_prepend_free(t_iem_prepend *x)
+{
+  if(x->x_at)
+    freebytes(x->x_at, x->x_size * sizeof(t_atom));
+  if(x->x_proxy_inlet)
+    pd_free((t_pd *)x->x_proxy_inlet);
+}
+
+static void *iem_prepend_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_prepend *x = (t_iem_prepend *)pd_new(iem_prepend_class);
+  t_iem_prepend_proxy *p = (t_iem_prepend_proxy *)pd_new(iem_prepend_proxy_class);
+
+  x->x_proxy_inlet = p;
+  p->p_owner = x;
+
+  x->x_size = 30;
+  if(ac > 10)
+    x->x_size = 2*ac + 10;
+  x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
+  if(!ac)
+  {
+    x->x_ac = 0;
+    x->x_selector_sym = &s_bang;
+  }
+  else
+  {
+    if(IS_A_FLOAT(av, 0))
+    {
+      iem_prepend_proxy_list(p, &s_list, ac, av);
+    }
+    else if(IS_A_SYMBOL(av, 0))
+    {
+      iem_prepend_proxy_anything(p, atom_getsymbol(av), ac-1, av+1);
+    }
+  }
+  inlet_new((t_object *)x, (t_pd *)p, 0, 0);
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void iem_prepend_setup(void)
+{
+  iem_prepend_class = class_new(gensym("iem_prepend"),
+    (t_newmethod)iem_prepend_new, (t_method)iem_prepend_free,
+    sizeof(t_iem_prepend), 0, A_GIMME, 0);
+	class_addcreator((t_newmethod)iem_prepend_new, gensym("pp"), A_GIMME, 0);
+	class_addcreator((t_newmethod)iem_prepend_new, gensym("prepend"), A_GIMME, 0);
+
+  class_addbang(iem_prepend_class, (t_method)iem_prepend_bang);
+  class_addpointer(iem_prepend_class, iem_prepend_pointer);
+  class_addfloat(iem_prepend_class, (t_method)iem_prepend_float);
+  class_addsymbol(iem_prepend_class, iem_prepend_symbol);
+  class_addlist(iem_prepend_class, iem_prepend_list);
+  class_addanything(iem_prepend_class, iem_prepend_anything);
+  class_sethelpsymbol(iem_prepend_class, gensym("iemhelp/help-iem_prepend"));
+
+  iem_prepend_proxy_class = class_new(gensym("_iem_prepend_proxy"),
+    0, 0, sizeof(t_iem_prepend_proxy), CLASS_PD | CLASS_NOINLET, 0);
+  class_addbang(iem_prepend_proxy_class, (t_method)iem_prepend_proxy_bang);
+  class_addpointer(iem_prepend_proxy_class, iem_prepend_proxy_pointer);
+  class_addfloat(iem_prepend_proxy_class, (t_method)iem_prepend_proxy_float);
+  class_addsymbol(iem_prepend_proxy_class, iem_prepend_proxy_symbol);
+  class_addlist(iem_prepend_proxy_class, iem_prepend_proxy_list);
+  class_addanything(iem_prepend_proxy_class, iem_prepend_proxy_anything);
+}
diff --git a/src/iemlib2/iem_prepend_kernel.c b/src/iemlib2/iem_prepend_kernel.c
index 17d9438..2af29d3 100644
--- a/src/iemlib2/iem_prepend_kernel.c
+++ b/src/iemlib2/iem_prepend_kernel.c
@@ -1,258 +1,258 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2004 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "g_canvas.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
-
-
-/* ------------------------ iem_prepend_kernel ---------------------------- */
-static t_class *iem_prepend_kernel_class;
-
-typedef struct _iem_prepend_kernel
-{
-  t_object    x_obj;
-  int         x_inlet_select;
-  int         x_size;
-  int         x_ac;
-  t_atom      *x_at;
-  t_symbol    *x_sym;
-  t_atomtype  x_type;
-} t_iem_prepend_kernel;
-
-static void iem_prepend_kernel_atcopy(t_atom *src, t_atom *dst, int n)
-{
-  while(n--)
-    *dst++ = *src++;
-}
-
-static void iem_prepend_kernel_inlet_select(t_iem_prepend_kernel *x, t_floatarg fin_sel_01)
-{
-  x->x_inlet_select = (int)fin_sel_01;
-}
-
-static void iem_prepend_kernel_bang(t_iem_prepend_kernel *x)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac = 0;
-    x->x_type = A_NULL;
-    x->x_sym = &s_bang;
-  }
-  else /* if 1st inlet */
-  {
-    outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at);
-  }
-}
-
-static void iem_prepend_kernel_float(t_iem_prepend_kernel *x, t_float f)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac = 1;
-    x->x_type = A_FLOAT;
-    SETFLOAT(x->x_at, f);
-    x->x_sym = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    if(x->x_type == A_NULL)
-    {
-      outlet_float(x->x_obj.ob_outlet, f);
-    }
-    else
-    {
-      SETFLOAT(x->x_at+x->x_ac, f);
-      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
-    }
-  }
-}
-
-static void iem_prepend_kernel_symbol(t_iem_prepend_kernel *x, t_symbol *s)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac = 1;
-    x->x_type = A_SYMBOL;
-    SETSYMBOL(x->x_at, s);
-    x->x_sym = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    if(x->x_type == A_NULL)
-    {
-      outlet_symbol(x->x_obj.ob_outlet, s);
-    }
-    else
-    {
-      SETSYMBOL(x->x_at+x->x_ac, s);
-      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
-    }
-  }
-}
-
-static void iem_prepend_kernel_pointer(t_iem_prepend_kernel *x, t_gpointer *gp)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac = 1;
-    x->x_type = A_POINTER;
-    SETPOINTER(x->x_at, gp);
-    x->x_sym = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    if(x->x_type == A_NULL)
-    {
-      outlet_pointer(x->x_obj.ob_outlet, gp);
-    }
-    else
-    {
-      SETPOINTER(x->x_at+x->x_ac, gp);
-      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
-    }
-  }
-}
-
-static void iem_prepend_kernel_list(t_iem_prepend_kernel *x, t_symbol *s, int ac, t_atom *av)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    if((ac+10) > x->x_size)
-    {
-      x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+10)*sizeof(t_atom));
-      x->x_size = 2*(ac+10);
-    }
-    x->x_ac = ac;
-    x->x_type = A_GIMME;
-    x->x_sym = &s_list;
-    iem_prepend_kernel_atcopy(av, x->x_at, ac);
-  }
-  else /* if 1st inlet */
-  {
-    if((ac+x->x_ac+1) > x->x_size)
-    {
-      x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+x->x_ac+1)*sizeof(t_atom));
-      x->x_size = 2*(ac+x->x_ac+1);
-    }
-    if(x->x_type == A_NULL)
-    {
-      outlet_anything(x->x_obj.ob_outlet, &s_list, ac, av);
-    }
-    else
-    {
-      iem_prepend_kernel_atcopy(av, x->x_at + x->x_ac, ac);
-      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+ac, x->x_at);
-    }
-  }
-}
-
-static void iem_prepend_kernel_anything(t_iem_prepend_kernel *x, t_symbol *s, int ac, t_atom *av)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    if((ac+10) > x->x_size)
-    {
-      x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+10)*sizeof(t_atom));
-      x->x_size = 2*(ac+10);
-    }
-    x->x_ac = ac;
-    x->x_type = A_COMMA;
-    x->x_sym = s;
-    iem_prepend_kernel_atcopy(av, x->x_at, ac);
-  }
-  else /* if 1st inlet */
-  {
-    if((ac+x->x_ac+1) > x->x_size)
-    {
-      x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+x->x_ac+1)*sizeof(t_atom));
-      x->x_size = 2*(ac+x->x_ac+1);
-    }
-    if(x->x_type == A_NULL)
-    {
-      outlet_anything(x->x_obj.ob_outlet, s, ac, av);
-    }
-    else
-    {
-      SETSYMBOL(x->x_at + x->x_ac, s);
-      iem_prepend_kernel_atcopy(av, x->x_at+x->x_ac+1, ac);
-      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+ac+1, x->x_at);
-    }
-  }
-}
-
-static void iem_prepend_kernel_free(t_iem_prepend_kernel *x)
-{
-  if(x->x_at)
-    freebytes(x->x_at, x->x_size * sizeof(t_atom));
-}
-
-static void *iem_prepend_kernel_new(void)
-{
-  t_iem_prepend_kernel *x = (t_iem_prepend_kernel *)pd_new(iem_prepend_kernel_class);
-  t_glist *glist = (t_glist *)canvas_getcurrent();
-  t_canvas *canvas=glist_getcanvas(glist);
-  int ac=0;
-  t_atom *av;
-  
-  canvas_setcurrent(canvas);
-  canvas_getargs(&ac, &av);
-  canvas_unsetcurrent(canvas);
-  
-  x->x_size = 30;
-  if(ac > 5)
-    x->x_size = 2*(ac+10);
-  x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
-  x->x_inlet_select = 1;
-  if(ac <= 0)
-  {
-    x->x_type = A_NULL;
-    x->x_ac = 0;
-    x->x_sym = &s_bang;
-  }
-  else
-  {
-    if(IS_A_FLOAT(av, 0))
-    {
-      iem_prepend_kernel_list(x, &s_list, ac, av);
-    }
-    else if(IS_A_SYMBOL(av, 0))
-    {
-      iem_prepend_kernel_anything(x, atom_getsymbol(av), ac-1, av+1);
-    }
-  }
-  outlet_new(&x->x_obj, &s_list);
-  return(x);
-}
-
-void iem_prepend_kernel_setup(void)
-{
-  char str[2];
-  
-  str[0] = 1;
-  str[1] = 0;
-  iem_prepend_kernel_class = class_new(gensym("iem_prepend_kernel"),
-    (t_newmethod)iem_prepend_kernel_new, (t_method)iem_prepend_kernel_free,
-    sizeof(t_iem_prepend_kernel), 0, 0);
-  class_addbang(iem_prepend_kernel_class, (t_method)iem_prepend_kernel_bang);
-  class_addpointer(iem_prepend_kernel_class, iem_prepend_kernel_pointer);
-  class_addfloat(iem_prepend_kernel_class, (t_method)iem_prepend_kernel_float);
-  class_addsymbol(iem_prepend_kernel_class, iem_prepend_kernel_symbol);
-  class_addlist(iem_prepend_kernel_class, iem_prepend_kernel_list);
-  class_addmethod(iem_prepend_kernel_class, (t_method)iem_prepend_kernel_inlet_select, gensym(str), A_FLOAT, 0);
-  class_addanything(iem_prepend_kernel_class, iem_prepend_kernel_anything);
-  class_sethelpsymbol(iem_prepend_kernel_class, gensym("iemhelp/help-merge_any"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2004 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "g_canvas.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
+
+
+/* ------------------------ iem_prepend_kernel ---------------------------- */
+static t_class *iem_prepend_kernel_class;
+
+typedef struct _iem_prepend_kernel
+{
+  t_object    x_obj;
+  int         x_inlet_select;
+  int         x_size;
+  int         x_ac;
+  t_atom      *x_at;
+  t_symbol    *x_sym;
+  t_atomtype  x_type;
+} t_iem_prepend_kernel;
+
+static void iem_prepend_kernel_atcopy(t_atom *src, t_atom *dst, int n)
+{
+  while(n--)
+    *dst++ = *src++;
+}
+
+static void iem_prepend_kernel_inlet_select(t_iem_prepend_kernel *x, t_floatarg fin_sel_01)
+{
+  x->x_inlet_select = (int)fin_sel_01;
+}
+
+static void iem_prepend_kernel_bang(t_iem_prepend_kernel *x)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac = 0;
+    x->x_type = A_NULL;
+    x->x_sym = &s_bang;
+  }
+  else /* if 1st inlet */
+  {
+    outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at);
+  }
+}
+
+static void iem_prepend_kernel_float(t_iem_prepend_kernel *x, t_float f)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac = 1;
+    x->x_type = A_FLOAT;
+    SETFLOAT(x->x_at, f);
+    x->x_sym = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    if(x->x_type == A_NULL)
+    {
+      outlet_float(x->x_obj.ob_outlet, f);
+    }
+    else
+    {
+      SETFLOAT(x->x_at+x->x_ac, f);
+      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
+    }
+  }
+}
+
+static void iem_prepend_kernel_symbol(t_iem_prepend_kernel *x, t_symbol *s)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac = 1;
+    x->x_type = A_SYMBOL;
+    SETSYMBOL(x->x_at, s);
+    x->x_sym = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    if(x->x_type == A_NULL)
+    {
+      outlet_symbol(x->x_obj.ob_outlet, s);
+    }
+    else
+    {
+      SETSYMBOL(x->x_at+x->x_ac, s);
+      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
+    }
+  }
+}
+
+static void iem_prepend_kernel_pointer(t_iem_prepend_kernel *x, t_gpointer *gp)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac = 1;
+    x->x_type = A_POINTER;
+    SETPOINTER(x->x_at, gp);
+    x->x_sym = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    if(x->x_type == A_NULL)
+    {
+      outlet_pointer(x->x_obj.ob_outlet, gp);
+    }
+    else
+    {
+      SETPOINTER(x->x_at+x->x_ac, gp);
+      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
+    }
+  }
+}
+
+static void iem_prepend_kernel_list(t_iem_prepend_kernel *x, t_symbol *s, int ac, t_atom *av)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    if((ac+10) > x->x_size)
+    {
+      x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+10)*sizeof(t_atom));
+      x->x_size = 2*(ac+10);
+    }
+    x->x_ac = ac;
+    x->x_type = A_GIMME;
+    x->x_sym = &s_list;
+    iem_prepend_kernel_atcopy(av, x->x_at, ac);
+  }
+  else /* if 1st inlet */
+  {
+    if((ac+x->x_ac+1) > x->x_size)
+    {
+      x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+x->x_ac+1)*sizeof(t_atom));
+      x->x_size = 2*(ac+x->x_ac+1);
+    }
+    if(x->x_type == A_NULL)
+    {
+      outlet_anything(x->x_obj.ob_outlet, &s_list, ac, av);
+    }
+    else
+    {
+      iem_prepend_kernel_atcopy(av, x->x_at + x->x_ac, ac);
+      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+ac, x->x_at);
+    }
+  }
+}
+
+static void iem_prepend_kernel_anything(t_iem_prepend_kernel *x, t_symbol *s, int ac, t_atom *av)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    if((ac+10) > x->x_size)
+    {
+      x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+10)*sizeof(t_atom));
+      x->x_size = 2*(ac+10);
+    }
+    x->x_ac = ac;
+    x->x_type = A_COMMA;
+    x->x_sym = s;
+    iem_prepend_kernel_atcopy(av, x->x_at, ac);
+  }
+  else /* if 1st inlet */
+  {
+    if((ac+x->x_ac+1) > x->x_size)
+    {
+      x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+x->x_ac+1)*sizeof(t_atom));
+      x->x_size = 2*(ac+x->x_ac+1);
+    }
+    if(x->x_type == A_NULL)
+    {
+      outlet_anything(x->x_obj.ob_outlet, s, ac, av);
+    }
+    else
+    {
+      SETSYMBOL(x->x_at + x->x_ac, s);
+      iem_prepend_kernel_atcopy(av, x->x_at+x->x_ac+1, ac);
+      outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+ac+1, x->x_at);
+    }
+  }
+}
+
+static void iem_prepend_kernel_free(t_iem_prepend_kernel *x)
+{
+  if(x->x_at)
+    freebytes(x->x_at, x->x_size * sizeof(t_atom));
+}
+
+static void *iem_prepend_kernel_new(void)
+{
+  t_iem_prepend_kernel *x = (t_iem_prepend_kernel *)pd_new(iem_prepend_kernel_class);
+  t_glist *glist = (t_glist *)canvas_getcurrent();
+  t_canvas *canvas=glist_getcanvas(glist);
+  int ac=0;
+  t_atom *av;
+  
+  canvas_setcurrent(canvas);
+  canvas_getargs(&ac, &av);
+  canvas_unsetcurrent(canvas);
+  
+  x->x_size = 30;
+  if(ac > 5)
+    x->x_size = 2*(ac+10);
+  x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
+  x->x_inlet_select = 1;
+  if(ac <= 0)
+  {
+    x->x_type = A_NULL;
+    x->x_ac = 0;
+    x->x_sym = &s_bang;
+  }
+  else
+  {
+    if(IS_A_FLOAT(av, 0))
+    {
+      iem_prepend_kernel_list(x, &s_list, ac, av);
+    }
+    else if(IS_A_SYMBOL(av, 0))
+    {
+      iem_prepend_kernel_anything(x, atom_getsymbol(av), ac-1, av+1);
+    }
+  }
+  outlet_new(&x->x_obj, &s_list);
+  return(x);
+}
+
+void iem_prepend_kernel_setup(void)
+{
+  char str[2];
+  
+  str[0] = 1;
+  str[1] = 0;
+  iem_prepend_kernel_class = class_new(gensym("iem_prepend_kernel"),
+    (t_newmethod)iem_prepend_kernel_new, (t_method)iem_prepend_kernel_free,
+    sizeof(t_iem_prepend_kernel), 0, 0);
+  class_addbang(iem_prepend_kernel_class, (t_method)iem_prepend_kernel_bang);
+  class_addpointer(iem_prepend_kernel_class, iem_prepend_kernel_pointer);
+  class_addfloat(iem_prepend_kernel_class, (t_method)iem_prepend_kernel_float);
+  class_addsymbol(iem_prepend_kernel_class, iem_prepend_kernel_symbol);
+  class_addlist(iem_prepend_kernel_class, iem_prepend_kernel_list);
+  class_addmethod(iem_prepend_kernel_class, (t_method)iem_prepend_kernel_inlet_select, gensym(str), A_FLOAT, 0);
+  class_addanything(iem_prepend_kernel_class, iem_prepend_kernel_anything);
+  class_sethelpsymbol(iem_prepend_kernel_class, gensym("iemhelp/help-merge_any"));
+}
diff --git a/src/iemlib2/iem_receive.c b/src/iemlib2/iem_receive.c
index dfe23a7..1e46c20 100644
--- a/src/iemlib2/iem_receive.c
+++ b/src/iemlib2/iem_receive.c
@@ -1,179 +1,179 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* ------------------------ iem_receive ---------------------------- */
-/* -------- like millers r, but with setable receive label --------- */
-
-struct _iem_receive_proxy;
-
-static t_class *iem_receive_class;
-static t_class *iem_receive_proxy_class;
-
-typedef struct _iem_receive
-{
-  t_object                   x_obj;
-  struct _iem_receive_proxy  *x_proxy_receiver;
-  t_symbol                   *x_receive_label_sym;
-} t_iem_receive;
-
-typedef struct _iem_receive_proxy
-{
-  t_object       p_obj;
-  t_iem_receive  *p_owner;
-} t_iem_receive_proxy;
-
-static void iem_receive_clear(t_iem_receive *x, t_symbol *s, int ac, t_atom *av)
-{
-	t_iem_receive_proxy *p=x->x_proxy_receiver;
-
-  if(x->x_receive_label_sym)
-    pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym);
-  x->x_receive_label_sym = 0;
-}
-
-static void iem_receive_set(t_iem_receive *x, t_symbol *s, int ac, t_atom *av)
-{
-	t_iem_receive_proxy *p=x->x_proxy_receiver;
-
-	if(ac > 0)
-  {
-    if(IS_A_SYMBOL(av,0))
-		{
-			if(x->x_receive_label_sym)
-        pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym);
-      x->x_receive_label_sym = atom_getsymbol(av);
-			pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym);
-		}
-    else if(IS_A_FLOAT(av,0))
-    {
-      char str[32];
-      
-			if(x->x_receive_label_sym)
-        pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym);
-      sprintf(str, "%g", atom_getfloat(av));
-      x->x_receive_label_sym = gensym(str);
-			pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym);
-    }
-  }
-}
-
-/* begin of proxy methods (anything inlets) */
-
-static void iem_receive_proxy_bang(t_iem_receive_proxy *p)
-{
-	t_iem_receive *x = p->p_owner;
-
-  outlet_bang(x->x_obj.ob_outlet);
-}
-
-static void iem_receive_proxy_float(t_iem_receive_proxy *p, t_float f)
-{
-	t_iem_receive *x = p->p_owner;
-
-  outlet_float(x->x_obj.ob_outlet, f);
-}
-
-static void iem_receive_proxy_symbol(t_iem_receive_proxy *p, t_symbol *s)
-{
-	t_iem_receive *x = p->p_owner;
-
-  outlet_symbol(x->x_obj.ob_outlet, s);
-}
-
-static void iem_receive_proxy_pointer(t_iem_receive_proxy *p, t_gpointer *gp)
-{
-	t_iem_receive *x = p->p_owner;
-
-  outlet_pointer(x->x_obj.ob_outlet, gp);
-}
-
-static void iem_receive_proxy_list(t_iem_receive_proxy *p, t_symbol *s, int argc, t_atom *argv)
-{
-	t_iem_receive *x = p->p_owner;
-
-  outlet_list(x->x_obj.ob_outlet, &s_list, argc, argv);
-}
-
-static void iem_receive_proxy_anything(t_iem_receive_proxy *p, t_symbol *s, int argc, t_atom *argv)
-{
-	t_iem_receive *x = p->p_owner;
-
-  outlet_anything(x->x_obj.ob_outlet, s, argc, argv);
-}
-
-/* end of proxy methods (anything inlets) */
-
-static void iem_receive_free(t_iem_receive *x)
-{
-	t_iem_receive_proxy *p=x->x_proxy_receiver;
-
-  if(x->x_receive_label_sym)
-    pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym);
-	if(x->x_proxy_receiver)
-    pd_free((t_pd *)x->x_proxy_receiver);
-}
-
-static void *iem_receive_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_receive *x = (t_iem_receive *)pd_new(iem_receive_class);
-	t_iem_receive_proxy *p = (t_iem_receive_proxy *)pd_new(iem_receive_proxy_class);
-
-  x->x_proxy_receiver = p;
-  p->p_owner = x;
-  
-  if(ac > 0)
-  {
-    if(IS_A_SYMBOL(av,0))
-    {
-      x->x_receive_label_sym = atom_getsymbol(av);
-      pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym);
-    }
-    else if(IS_A_FLOAT(av,0))
-    {
-      char str[100];
-      
-      sprintf(str, "%g", atom_getfloat(av));
-      x->x_receive_label_sym = gensym(str);
-      pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym);
-    }
-    else
-      x->x_receive_label_sym = 0;
-  }
-  else
-    x->x_receive_label_sym = 0;
-  
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void iem_receive_setup(void)
-{
-  iem_receive_class = class_new(gensym("iem_receive"), (t_newmethod)iem_receive_new, 
-    (t_method)iem_receive_free, sizeof(t_iem_receive), 0, A_GIMME, 0);
-	class_addcreator((t_newmethod)iem_receive_new, gensym("iem_r"), A_GIMME, 0);
-	class_addmethod(iem_receive_class, (t_method)iem_receive_clear, gensym("clear"), A_GIMME, 0);
-  class_addmethod(iem_receive_class, (t_method)iem_receive_set, gensym("set"), A_GIMME, 0);
-  class_sethelpsymbol(iem_receive_class, gensym("iemhelp/help-iem_receive"));
-
-	iem_receive_proxy_class = class_new(gensym("_iem_receive_proxy"),
-    0, 0, sizeof(t_iem_receive_proxy), CLASS_PD | CLASS_NOINLET, 0);
-  class_addbang(iem_receive_proxy_class, iem_receive_proxy_bang);
-  class_addfloat(iem_receive_proxy_class, iem_receive_proxy_float);
-	class_addsymbol(iem_receive_proxy_class, iem_receive_proxy_symbol);
-	class_addpointer(iem_receive_proxy_class, iem_receive_proxy_pointer);
-  class_addlist(iem_receive_proxy_class, iem_receive_proxy_list);
-  class_addanything(iem_receive_proxy_class, iem_receive_proxy_anything);
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* ------------------------ iem_receive ---------------------------- */
+/* -------- like millers r, but with setable receive label --------- */
+
+struct _iem_receive_proxy;
+
+static t_class *iem_receive_class;
+static t_class *iem_receive_proxy_class;
+
+typedef struct _iem_receive
+{
+  t_object                   x_obj;
+  struct _iem_receive_proxy  *x_proxy_receiver;
+  t_symbol                   *x_receive_label_sym;
+} t_iem_receive;
+
+typedef struct _iem_receive_proxy
+{
+  t_object       p_obj;
+  t_iem_receive  *p_owner;
+} t_iem_receive_proxy;
+
+static void iem_receive_clear(t_iem_receive *x, t_symbol *s, int ac, t_atom *av)
+{
+	t_iem_receive_proxy *p=x->x_proxy_receiver;
+
+  if(x->x_receive_label_sym)
+    pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym);
+  x->x_receive_label_sym = 0;
+}
+
+static void iem_receive_set(t_iem_receive *x, t_symbol *s, int ac, t_atom *av)
+{
+	t_iem_receive_proxy *p=x->x_proxy_receiver;
+
+	if(ac > 0)
+  {
+    if(IS_A_SYMBOL(av,0))
+		{
+			if(x->x_receive_label_sym)
+        pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym);
+      x->x_receive_label_sym = atom_getsymbol(av);
+			pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym);
+		}
+    else if(IS_A_FLOAT(av,0))
+    {
+      char str[32];
+      
+			if(x->x_receive_label_sym)
+        pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym);
+      sprintf(str, "%g", atom_getfloat(av));
+      x->x_receive_label_sym = gensym(str);
+			pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym);
+    }
+  }
+}
+
+/* begin of proxy methods (anything inlets) */
+
+static void iem_receive_proxy_bang(t_iem_receive_proxy *p)
+{
+	t_iem_receive *x = p->p_owner;
+
+  outlet_bang(x->x_obj.ob_outlet);
+}
+
+static void iem_receive_proxy_float(t_iem_receive_proxy *p, t_float f)
+{
+	t_iem_receive *x = p->p_owner;
+
+  outlet_float(x->x_obj.ob_outlet, f);
+}
+
+static void iem_receive_proxy_symbol(t_iem_receive_proxy *p, t_symbol *s)
+{
+	t_iem_receive *x = p->p_owner;
+
+  outlet_symbol(x->x_obj.ob_outlet, s);
+}
+
+static void iem_receive_proxy_pointer(t_iem_receive_proxy *p, t_gpointer *gp)
+{
+	t_iem_receive *x = p->p_owner;
+
+  outlet_pointer(x->x_obj.ob_outlet, gp);
+}
+
+static void iem_receive_proxy_list(t_iem_receive_proxy *p, t_symbol *s, int argc, t_atom *argv)
+{
+	t_iem_receive *x = p->p_owner;
+
+  outlet_list(x->x_obj.ob_outlet, &s_list, argc, argv);
+}
+
+static void iem_receive_proxy_anything(t_iem_receive_proxy *p, t_symbol *s, int argc, t_atom *argv)
+{
+	t_iem_receive *x = p->p_owner;
+
+  outlet_anything(x->x_obj.ob_outlet, s, argc, argv);
+}
+
+/* end of proxy methods (anything inlets) */
+
+static void iem_receive_free(t_iem_receive *x)
+{
+	t_iem_receive_proxy *p=x->x_proxy_receiver;
+
+  if(x->x_receive_label_sym)
+    pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym);
+	if(x->x_proxy_receiver)
+    pd_free((t_pd *)x->x_proxy_receiver);
+}
+
+static void *iem_receive_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_receive *x = (t_iem_receive *)pd_new(iem_receive_class);
+	t_iem_receive_proxy *p = (t_iem_receive_proxy *)pd_new(iem_receive_proxy_class);
+
+  x->x_proxy_receiver = p;
+  p->p_owner = x;
+  
+  if(ac > 0)
+  {
+    if(IS_A_SYMBOL(av,0))
+    {
+      x->x_receive_label_sym = atom_getsymbol(av);
+      pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym);
+    }
+    else if(IS_A_FLOAT(av,0))
+    {
+      char str[100];
+      
+      sprintf(str, "%g", atom_getfloat(av));
+      x->x_receive_label_sym = gensym(str);
+      pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym);
+    }
+    else
+      x->x_receive_label_sym = 0;
+  }
+  else
+    x->x_receive_label_sym = 0;
+  
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void iem_receive_setup(void)
+{
+  iem_receive_class = class_new(gensym("iem_receive"), (t_newmethod)iem_receive_new, 
+    (t_method)iem_receive_free, sizeof(t_iem_receive), 0, A_GIMME, 0);
+	class_addcreator((t_newmethod)iem_receive_new, gensym("iem_r"), A_GIMME, 0);
+	class_addmethod(iem_receive_class, (t_method)iem_receive_clear, gensym("clear"), A_GIMME, 0);
+  class_addmethod(iem_receive_class, (t_method)iem_receive_set, gensym("set"), A_GIMME, 0);
+  class_sethelpsymbol(iem_receive_class, gensym("iemhelp/help-iem_receive"));
+
+	iem_receive_proxy_class = class_new(gensym("_iem_receive_proxy"),
+    0, 0, sizeof(t_iem_receive_proxy), CLASS_PD | CLASS_NOINLET, 0);
+  class_addbang(iem_receive_proxy_class, iem_receive_proxy_bang);
+  class_addfloat(iem_receive_proxy_class, iem_receive_proxy_float);
+	class_addsymbol(iem_receive_proxy_class, iem_receive_proxy_symbol);
+	class_addpointer(iem_receive_proxy_class, iem_receive_proxy_pointer);
+  class_addlist(iem_receive_proxy_class, iem_receive_proxy_list);
+  class_addanything(iem_receive_proxy_class, iem_receive_proxy_anything);
+}
diff --git a/src/iemlib2/iem_receive_kernel.c b/src/iemlib2/iem_receive_kernel.c
index 607867d..d213852 100644
--- a/src/iemlib2/iem_receive_kernel.c
+++ b/src/iemlib2/iem_receive_kernel.c
@@ -1,155 +1,155 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2004 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "g_canvas.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
-
-/* ------------------------ iem_receive_kernel ---------------------------- */
-
-static t_class *iem_receive_kernel_class;
-
-typedef struct _iem_receive_kernel
-{
-  t_object  x_obj;
-  t_symbol  *x_sym;
-} t_iem_receive_kernel;
-
-void iem_receive_kernel_copy_at(t_atom *src, t_atom *dst, int n)
-{
-  while(n--)
-    *dst++ = *src++;
-}
-
-static void iem_receive_kernel_set_name(t_iem_receive_kernel *x, t_symbol *s, int argc, t_atom *argv)
-{
-  if((argc > 0)&&((IS_A_SYMBOL(argv,0))||(IS_A_FLOAT(argv,0))))
-  {
-    if(x->x_sym)
-      pd_unbind(&x->x_obj.ob_pd, x->x_sym);
-    if(IS_A_SYMBOL(argv,0))
-      x->x_sym = atom_getsymbol(argv);
-    else if(IS_A_FLOAT(argv,0))
-    {
-      char str[100];
-      
-      sprintf(str, "%g", atom_getfloat(argv));
-      x->x_sym = gensym(str);
-    }
-    pd_bind(&x->x_obj.ob_pd, x->x_sym);
-  }
-}
-
-static void iem_receive_kernel_clear(t_iem_receive_kernel *x)
-{
-  if(x->x_sym)
-    pd_unbind(&x->x_obj.ob_pd, x->x_sym);
-  x->x_sym = 0;
-}
-
-static void iem_receive_kernel_bang(t_iem_receive_kernel *x)
-{
-  outlet_bang(x->x_obj.ob_outlet);
-}
-
-static void iem_receive_kernel_float(t_iem_receive_kernel *x, t_float f)
-{
-  outlet_float(x->x_obj.ob_outlet, f);
-}
-
-static void iem_receive_kernel_symbol(t_iem_receive_kernel *x, t_symbol *s)
-{
-  outlet_symbol(x->x_obj.ob_outlet, s);
-}
-
-static void iem_receive_kernel_pointer(t_iem_receive_kernel *x, t_gpointer *gp)
-{
-  outlet_pointer(x->x_obj.ob_outlet, gp);
-}
-
-static void iem_receive_kernel_list(t_iem_receive_kernel *x, t_symbol *s, int argc, t_atom *argv)
-{
-  outlet_list(x->x_obj.ob_outlet, &s_list, argc, argv);
-}
-
-static void iem_receive_kernel_anything(t_iem_receive_kernel *x, t_symbol *s, int argc, t_atom *argv)
-{
-  outlet_anything(x->x_obj.ob_outlet, s, argc, argv);
-}
-
-static void iem_receive_kernel_free(t_iem_receive_kernel *x)
-{
-  if(x->x_sym)
-    pd_unbind(&x->x_obj.ob_pd, x->x_sym);
-}
-
-static void *iem_receive_kernel_new(void)
-{
-  t_iem_receive_kernel *x = (t_iem_receive_kernel *)pd_new(iem_receive_kernel_class);
-  t_glist *glist = (t_glist *)canvas_getcurrent();
-  t_canvas *canvas=glist_getcanvas(glist);
-  int ac=0;
-  t_atom *av;
-  
-  canvas_setcurrent(canvas);
-  canvas_getargs(&ac, &av);
-  canvas_unsetcurrent(canvas);
-  
-  if(ac > 0)
-  {
-    if(IS_A_SYMBOL(av,0))
-    {
-      x->x_sym = atom_getsymbol(av);
-      pd_bind(&x->x_obj.ob_pd, x->x_sym);
-    }
-    else if(IS_A_FLOAT(av,0))
-    {
-      char str[100];
-      
-      sprintf(str, "%g", atom_getfloat(av));
-      x->x_sym = gensym(str);
-      pd_bind(&x->x_obj.ob_pd, x->x_sym);
-    }
-    else
-      x->x_sym = 0;
-  }
-  else
-    x->x_sym = 0;
-  
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void iem_receive_kernel_setup(void)
-{
-  char str[2];
-  
-  str[1] = 0;
-  iem_receive_kernel_class = class_new(gensym("iem_receive_kernel"), (t_newmethod)iem_receive_kernel_new, 
-    (t_method)iem_receive_kernel_free, sizeof(t_iem_receive_kernel), 0, 0);
-  class_addbang(iem_receive_kernel_class, iem_receive_kernel_bang);
-  class_addfloat(iem_receive_kernel_class, iem_receive_kernel_float);
-  class_addsymbol(iem_receive_kernel_class, iem_receive_kernel_symbol);
-  class_addpointer(iem_receive_kernel_class, iem_receive_kernel_pointer);
-  class_addlist(iem_receive_kernel_class, iem_receive_kernel_list);
-  class_addanything(iem_receive_kernel_class, iem_receive_kernel_anything);
-  //  class_addmethod(iem_receive_kernel_class, (t_method)iem_receive_kernel_set, gensym("set"), A_GIMME, 0);
-  str[0] = 1;/*inlet-sym = "\0x01"*/
-  class_addmethod(iem_receive_kernel_class, (t_method)iem_receive_kernel_set_name, gensym(str), A_GIMME, 0);
-  str[0] = 2;/*inlet-sym = "\0x02"*/
-  class_addmethod(iem_receive_kernel_class, (t_method)iem_receive_kernel_clear, gensym(str), 0);
-  class_sethelpsymbol(iem_receive_kernel_class, gensym("iemhelp/help-iem_receive"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2004 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "g_canvas.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
+
+/* ------------------------ iem_receive_kernel ---------------------------- */
+
+static t_class *iem_receive_kernel_class;
+
+typedef struct _iem_receive_kernel
+{
+  t_object  x_obj;
+  t_symbol  *x_sym;
+} t_iem_receive_kernel;
+
+void iem_receive_kernel_copy_at(t_atom *src, t_atom *dst, int n)
+{
+  while(n--)
+    *dst++ = *src++;
+}
+
+static void iem_receive_kernel_set_name(t_iem_receive_kernel *x, t_symbol *s, int argc, t_atom *argv)
+{
+  if((argc > 0)&&((IS_A_SYMBOL(argv,0))||(IS_A_FLOAT(argv,0))))
+  {
+    if(x->x_sym)
+      pd_unbind(&x->x_obj.ob_pd, x->x_sym);
+    if(IS_A_SYMBOL(argv,0))
+      x->x_sym = atom_getsymbol(argv);
+    else if(IS_A_FLOAT(argv,0))
+    {
+      char str[100];
+      
+      sprintf(str, "%g", atom_getfloat(argv));
+      x->x_sym = gensym(str);
+    }
+    pd_bind(&x->x_obj.ob_pd, x->x_sym);
+  }
+}
+
+static void iem_receive_kernel_clear(t_iem_receive_kernel *x)
+{
+  if(x->x_sym)
+    pd_unbind(&x->x_obj.ob_pd, x->x_sym);
+  x->x_sym = 0;
+}
+
+static void iem_receive_kernel_bang(t_iem_receive_kernel *x)
+{
+  outlet_bang(x->x_obj.ob_outlet);
+}
+
+static void iem_receive_kernel_float(t_iem_receive_kernel *x, t_float f)
+{
+  outlet_float(x->x_obj.ob_outlet, f);
+}
+
+static void iem_receive_kernel_symbol(t_iem_receive_kernel *x, t_symbol *s)
+{
+  outlet_symbol(x->x_obj.ob_outlet, s);
+}
+
+static void iem_receive_kernel_pointer(t_iem_receive_kernel *x, t_gpointer *gp)
+{
+  outlet_pointer(x->x_obj.ob_outlet, gp);
+}
+
+static void iem_receive_kernel_list(t_iem_receive_kernel *x, t_symbol *s, int argc, t_atom *argv)
+{
+  outlet_list(x->x_obj.ob_outlet, &s_list, argc, argv);
+}
+
+static void iem_receive_kernel_anything(t_iem_receive_kernel *x, t_symbol *s, int argc, t_atom *argv)
+{
+  outlet_anything(x->x_obj.ob_outlet, s, argc, argv);
+}
+
+static void iem_receive_kernel_free(t_iem_receive_kernel *x)
+{
+  if(x->x_sym)
+    pd_unbind(&x->x_obj.ob_pd, x->x_sym);
+}
+
+static void *iem_receive_kernel_new(void)
+{
+  t_iem_receive_kernel *x = (t_iem_receive_kernel *)pd_new(iem_receive_kernel_class);
+  t_glist *glist = (t_glist *)canvas_getcurrent();
+  t_canvas *canvas=glist_getcanvas(glist);
+  int ac=0;
+  t_atom *av;
+  
+  canvas_setcurrent(canvas);
+  canvas_getargs(&ac, &av);
+  canvas_unsetcurrent(canvas);
+  
+  if(ac > 0)
+  {
+    if(IS_A_SYMBOL(av,0))
+    {
+      x->x_sym = atom_getsymbol(av);
+      pd_bind(&x->x_obj.ob_pd, x->x_sym);
+    }
+    else if(IS_A_FLOAT(av,0))
+    {
+      char str[100];
+      
+      sprintf(str, "%g", atom_getfloat(av));
+      x->x_sym = gensym(str);
+      pd_bind(&x->x_obj.ob_pd, x->x_sym);
+    }
+    else
+      x->x_sym = 0;
+  }
+  else
+    x->x_sym = 0;
+  
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void iem_receive_kernel_setup(void)
+{
+  char str[2];
+  
+  str[1] = 0;
+  iem_receive_kernel_class = class_new(gensym("iem_receive_kernel"), (t_newmethod)iem_receive_kernel_new, 
+    (t_method)iem_receive_kernel_free, sizeof(t_iem_receive_kernel), 0, 0);
+  class_addbang(iem_receive_kernel_class, iem_receive_kernel_bang);
+  class_addfloat(iem_receive_kernel_class, iem_receive_kernel_float);
+  class_addsymbol(iem_receive_kernel_class, iem_receive_kernel_symbol);
+  class_addpointer(iem_receive_kernel_class, iem_receive_kernel_pointer);
+  class_addlist(iem_receive_kernel_class, iem_receive_kernel_list);
+  class_addanything(iem_receive_kernel_class, iem_receive_kernel_anything);
+  //  class_addmethod(iem_receive_kernel_class, (t_method)iem_receive_kernel_set, gensym("set"), A_GIMME, 0);
+  str[0] = 1;/*inlet-sym = "\0x01"*/
+  class_addmethod(iem_receive_kernel_class, (t_method)iem_receive_kernel_set_name, gensym(str), A_GIMME, 0);
+  str[0] = 2;/*inlet-sym = "\0x02"*/
+  class_addmethod(iem_receive_kernel_class, (t_method)iem_receive_kernel_clear, gensym(str), 0);
+  class_sethelpsymbol(iem_receive_kernel_class, gensym("iemhelp/help-iem_receive"));
+}
diff --git a/src/iemlib2/iem_route.c b/src/iemlib2/iem_route.c
index 06aba1a..03ca58e 100644
--- a/src/iemlib2/iem_route.c
+++ b/src/iemlib2/iem_route.c
@@ -1,199 +1,199 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* -------------------------- iem_route ------------------------------ */
-/* -------- like millers route, but can output bangs ----------------- */
-
-static t_class *iem_route_class;
-
-typedef struct _iem_routeelement
-{
-  t_word   e_w;
-  t_outlet *e_outlet;
-} t_iem_routeelement;
-
-typedef struct _iem_route
-{
-  t_object           x_obj;
-  t_atomtype         x_type;
-  t_int              x_nelement;
-  t_iem_routeelement *x_vec;
-  t_outlet           *x_rejectout;
-} t_iem_route;
-
-static void iem_route_anything(t_iem_route *x, t_symbol *sel, int argc, t_atom *argv)
-{
-  t_iem_routeelement *e;
-  int nelement;
-  
-  if(x->x_type == A_SYMBOL)
-  {
-    for(nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
-    {
-      if(e->e_w.w_symbol == sel)
-      {
-        if(!argc)
-          outlet_bang(e->e_outlet);
-        else
-        {
-          if(argc == 1)
-          {
-            if(argv[0].a_type == A_FLOAT)
-              outlet_float(e->e_outlet, argv[0].a_w.w_float);
-            else
-              outlet_anything(e->e_outlet, argv[0].a_w.w_symbol, 0, argv+1);
-          }
-          else
-          {
-            if(argv[0].a_type == A_SYMBOL)
-              outlet_anything(e->e_outlet, argv[0].a_w.w_symbol, argc-1, argv+1);
-            else
-              outlet_list(e->e_outlet, &s_list, argc, argv);
-          }
-        }
-        return;
-      }
-    }
-  }
-  outlet_anything(x->x_rejectout, sel, argc, argv);
-}
-
-static void iem_route_list(t_iem_route *x, t_symbol *sel, int argc, t_atom *argv)
-{
-  t_iem_routeelement *e;
-  int nelement;
-  
-  if (x->x_type == A_FLOAT)
-  {
-    float f;
-    
-    if(!argc)
-      return;
-    f = atom_getfloat(argv);
-    for(nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
-    {
-      if(e->e_w.w_float == f)
-      {
-        if(argc > 1 && argv[1].a_type == A_SYMBOL)
-          outlet_anything(e->e_outlet, argv[1].a_w.w_symbol, argc-2, argv+2);
-        else
-        {
-          if(argc == 1)
-            outlet_bang(e->e_outlet);
-          else if(argc == 2)
-            outlet_float(e->e_outlet, atom_getfloat(argv+1));
-          else
-            outlet_list(e->e_outlet, &s_list, argc-1, argv+1);
-        }
-        return;
-      }
-    }
-  }
-  else  /* symbol arguments */
-  {
-    if(argc > 1)    /* 2 or more args: treat as "list" */
-    {
-      for(nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
-      {
-        if(e->e_w.w_symbol == &s_list)
-        {
-          if(argv[0].a_type == A_SYMBOL)
-            outlet_anything(e->e_outlet, argv[0].a_w.w_symbol, argc-1, argv+1);
-          else
-            outlet_list(e->e_outlet, &s_list, argc, argv);
-          return;
-        }
-      }
-    }
-    else if(argc == 0)    /* no args: treat as "bang" */
-    {
-      for (nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
-      {
-        if (e->e_w.w_symbol == &s_bang)
-        {
-          outlet_bang(e->e_outlet);
-          return;
-        }
-      }
-    }
-    else if (argv[0].a_type == A_FLOAT)   /* one float arg */
-    {
-      for (nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
-      {
-        if (e->e_w.w_symbol == &s_float)
-        {
-          outlet_float(e->e_outlet, argv[0].a_w.w_float);
-          return;
-        }
-      }
-    }
-    else
-    {
-      for (nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
-      {
-        if (e->e_w.w_symbol == &s_symbol)
-        {
-          outlet_symbol(e->e_outlet, argv[0].a_w.w_symbol);
-          return;
-        }
-      }
-    }
-  }
-  outlet_list(x->x_rejectout, &s_list, argc, argv);
-}
-
-
-static void iem_route_free(t_iem_route *x)
-{
-  freebytes(x->x_vec, x->x_nelement * sizeof(*x->x_vec));
-}
-
-static void *iem_route_new(t_symbol *s, int argc, t_atom *argv)
-{
-  int n;
-  t_iem_routeelement *e;
-  t_iem_route *x = (t_iem_route *)pd_new(iem_route_class);
-  t_atom a;
-  if (argc == 0)
-  {
-    argc = 1;
-    SETFLOAT(&a, 0);
-    argv = &a;
-  }
-  x->x_type = argv[0].a_type;
-  x->x_nelement = argc;
-  x->x_vec = (t_iem_routeelement *)getbytes(argc * sizeof(*x->x_vec));
-  for (n = 0, e = x->x_vec; n < argc; n++, e++)
-  {
-    e->e_outlet = outlet_new(&x->x_obj, &s_list);
-    if (x->x_type == A_FLOAT)
-      e->e_w.w_float = atom_getfloatarg(n, argc, argv);
-    else e->e_w.w_symbol = atom_getsymbolarg(n, argc, argv);
-  }
-  x->x_rejectout = outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void iem_route_setup(void)
-{
-  iem_route_class = class_new(gensym("iem_route"), (t_newmethod)iem_route_new,
-        (t_method)iem_route_free, sizeof(t_iem_route), 0, A_GIMME, 0);
-  class_addcreator((t_newmethod)iem_route_new, gensym("ir"), A_GIMME, 0);
-  class_addlist(iem_route_class, iem_route_list);
-  class_addanything(iem_route_class, iem_route_anything);
-  class_sethelpsymbol(iem_route_class, gensym("iemhelp/help-iem_route"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* -------------------------- iem_route ------------------------------ */
+/* -------- like millers route, but can output bangs ----------------- */
+
+static t_class *iem_route_class;
+
+typedef struct _iem_routeelement
+{
+  t_word   e_w;
+  t_outlet *e_outlet;
+} t_iem_routeelement;
+
+typedef struct _iem_route
+{
+  t_object           x_obj;
+  t_atomtype         x_type;
+  t_int              x_nelement;
+  t_iem_routeelement *x_vec;
+  t_outlet           *x_rejectout;
+} t_iem_route;
+
+static void iem_route_anything(t_iem_route *x, t_symbol *sel, int argc, t_atom *argv)
+{
+  t_iem_routeelement *e;
+  int nelement;
+  
+  if(x->x_type == A_SYMBOL)
+  {
+    for(nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
+    {
+      if(e->e_w.w_symbol == sel)
+      {
+        if(!argc)
+          outlet_bang(e->e_outlet);
+        else
+        {
+          if(argc == 1)
+          {
+            if(argv[0].a_type == A_FLOAT)
+              outlet_float(e->e_outlet, argv[0].a_w.w_float);
+            else
+              outlet_anything(e->e_outlet, argv[0].a_w.w_symbol, 0, argv+1);
+          }
+          else
+          {
+            if(argv[0].a_type == A_SYMBOL)
+              outlet_anything(e->e_outlet, argv[0].a_w.w_symbol, argc-1, argv+1);
+            else
+              outlet_list(e->e_outlet, &s_list, argc, argv);
+          }
+        }
+        return;
+      }
+    }
+  }
+  outlet_anything(x->x_rejectout, sel, argc, argv);
+}
+
+static void iem_route_list(t_iem_route *x, t_symbol *sel, int argc, t_atom *argv)
+{
+  t_iem_routeelement *e;
+  int nelement;
+  
+  if (x->x_type == A_FLOAT)
+  {
+    float f;
+    
+    if(!argc)
+      return;
+    f = atom_getfloat(argv);
+    for(nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
+    {
+      if(e->e_w.w_float == f)
+      {
+        if(argc > 1 && argv[1].a_type == A_SYMBOL)
+          outlet_anything(e->e_outlet, argv[1].a_w.w_symbol, argc-2, argv+2);
+        else
+        {
+          if(argc == 1)
+            outlet_bang(e->e_outlet);
+          else if(argc == 2)
+            outlet_float(e->e_outlet, atom_getfloat(argv+1));
+          else
+            outlet_list(e->e_outlet, &s_list, argc-1, argv+1);
+        }
+        return;
+      }
+    }
+  }
+  else  /* symbol arguments */
+  {
+    if(argc > 1)    /* 2 or more args: treat as "list" */
+    {
+      for(nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
+      {
+        if(e->e_w.w_symbol == &s_list)
+        {
+          if(argv[0].a_type == A_SYMBOL)
+            outlet_anything(e->e_outlet, argv[0].a_w.w_symbol, argc-1, argv+1);
+          else
+            outlet_list(e->e_outlet, &s_list, argc, argv);
+          return;
+        }
+      }
+    }
+    else if(argc == 0)    /* no args: treat as "bang" */
+    {
+      for (nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
+      {
+        if (e->e_w.w_symbol == &s_bang)
+        {
+          outlet_bang(e->e_outlet);
+          return;
+        }
+      }
+    }
+    else if (argv[0].a_type == A_FLOAT)   /* one float arg */
+    {
+      for (nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
+      {
+        if (e->e_w.w_symbol == &s_float)
+        {
+          outlet_float(e->e_outlet, argv[0].a_w.w_float);
+          return;
+        }
+      }
+    }
+    else
+    {
+      for (nelement = x->x_nelement, e = x->x_vec; nelement--; e++)
+      {
+        if (e->e_w.w_symbol == &s_symbol)
+        {
+          outlet_symbol(e->e_outlet, argv[0].a_w.w_symbol);
+          return;
+        }
+      }
+    }
+  }
+  outlet_list(x->x_rejectout, &s_list, argc, argv);
+}
+
+
+static void iem_route_free(t_iem_route *x)
+{
+  freebytes(x->x_vec, x->x_nelement * sizeof(*x->x_vec));
+}
+
+static void *iem_route_new(t_symbol *s, int argc, t_atom *argv)
+{
+  int n;
+  t_iem_routeelement *e;
+  t_iem_route *x = (t_iem_route *)pd_new(iem_route_class);
+  t_atom a;
+  if (argc == 0)
+  {
+    argc = 1;
+    SETFLOAT(&a, 0);
+    argv = &a;
+  }
+  x->x_type = argv[0].a_type;
+  x->x_nelement = argc;
+  x->x_vec = (t_iem_routeelement *)getbytes(argc * sizeof(*x->x_vec));
+  for (n = 0, e = x->x_vec; n < argc; n++, e++)
+  {
+    e->e_outlet = outlet_new(&x->x_obj, &s_list);
+    if (x->x_type == A_FLOAT)
+      e->e_w.w_float = atom_getfloatarg(n, argc, argv);
+    else e->e_w.w_symbol = atom_getsymbolarg(n, argc, argv);
+  }
+  x->x_rejectout = outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void iem_route_setup(void)
+{
+  iem_route_class = class_new(gensym("iem_route"), (t_newmethod)iem_route_new,
+        (t_method)iem_route_free, sizeof(t_iem_route), 0, A_GIMME, 0);
+  class_addcreator((t_newmethod)iem_route_new, gensym("ir"), A_GIMME, 0);
+  class_addlist(iem_route_class, iem_route_list);
+  class_addanything(iem_route_class, iem_route_anything);
+  class_sethelpsymbol(iem_route_class, gensym("iemhelp/help-iem_route"));
+}
diff --git a/src/iemlib2/iem_sel_any.c b/src/iemlib2/iem_sel_any.c
index 22359a4..ef5fccb 100644
--- a/src/iemlib2/iem_sel_any.c
+++ b/src/iemlib2/iem_sel_any.c
@@ -1,112 +1,112 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* ------------------------ iem_sel_any ---------------------------- */
-/* -- stores an array of symbols, random access by index ----------- */
-
-static t_class *iem_sel_any_class;
-
-typedef struct _iem_sel_any
-{
-  t_object  x_obj;
-  int       x_ac;
-  int       x_max_ac;
-  t_symbol  **x_any;
-  t_symbol  *x_set;
-  void      *x_out_any;
-  void      *x_out_set_any;
-} t_iem_sel_any;
-
-
-static void iem_sel_any_float(t_iem_sel_any *x, t_float f)
-{
-  int i = (int)f;
-  t_atom at;
-  
-  if(x->x_ac > 0)
-  {
-    if(i < 0)
-      i = 0;
-    if(i >= x->x_ac)
-      i = x->x_ac - 1;
-    SETSYMBOL(&at, x->x_any[i]);
-    outlet_anything(x->x_out_any, x->x_any[i], 0, 0);
-    outlet_anything(x->x_out_set_any, x->x_set, 1, &at);
-  }
-}
-
-static void iem_sel_any_add(t_iem_sel_any *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac >= 2) && (IS_A_FLOAT(av, 0)))
-  {
-    int i = (int)atom_getintarg(0, ac, av);
-    
-    if((i >= 0) && (i < x->x_max_ac))
-    {
-      if(IS_A_SYMBOL(av, 1))
-        x->x_any[i] = atom_getsymbolarg(1, ac, av);
-      else if(IS_A_FLOAT(av, 1))
-      {
-        char str[100];
-        
-        sprintf(str, "%g", atom_getfloatarg(1, ac, av));
-        x->x_any[i] = gensym(str);
-      }
-      if(i >= x->x_ac)
-        x->x_ac = i+1;
-    }
-  }
-}
-
-static void iem_sel_any_clear(t_iem_sel_any *x)
-{
-  x->x_ac = 0;
-}
-
-static void iem_sel_any_free(t_iem_sel_any *x)
-{
-  freebytes(x->x_any, x->x_max_ac * sizeof(t_symbol *));
-}
-
-static void *iem_sel_any_new(t_float fmax)
-{
-  t_iem_sel_any *x = (t_iem_sel_any *)pd_new(iem_sel_any_class);
-  int i;
-  t_symbol *default_sym=gensym("no_entry");
-  
-  if(fmax <= 0.0)
-    fmax = 10.0;
-  x->x_max_ac = (int)fmax;
-  x->x_any = (t_symbol **)getbytes(x->x_max_ac * sizeof(t_symbol *));
-  x->x_ac = 0;
-  x->x_set = gensym("set");
-  for(i=0; i<x->x_max_ac; i++)
-    x->x_any[i] = default_sym;
-  x->x_out_set_any = outlet_new(&x->x_obj, &s_list);
-  x->x_out_any = outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void iem_sel_any_setup(void)
-{
-  iem_sel_any_class = class_new(gensym("iem_sel_any"), (t_newmethod)iem_sel_any_new,
-    (t_method)iem_sel_any_free, sizeof(t_iem_sel_any), 0, A_DEFFLOAT, 0);
-  class_addmethod(iem_sel_any_class, (t_method)iem_sel_any_add, gensym("add"), A_GIMME, 0);
-  class_addmethod(iem_sel_any_class, (t_method)iem_sel_any_clear, gensym("clear"), 0);
-  class_addfloat(iem_sel_any_class, (t_method)iem_sel_any_float);
-  class_sethelpsymbol(iem_sel_any_class, gensym("iemhelp/help-iem_sel_any"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* ------------------------ iem_sel_any ---------------------------- */
+/* -- stores an array of symbols, random access by index ----------- */
+
+static t_class *iem_sel_any_class;
+
+typedef struct _iem_sel_any
+{
+  t_object  x_obj;
+  int       x_ac;
+  int       x_max_ac;
+  t_symbol  **x_any;
+  t_symbol  *x_set;
+  void      *x_out_any;
+  void      *x_out_set_any;
+} t_iem_sel_any;
+
+
+static void iem_sel_any_float(t_iem_sel_any *x, t_float f)
+{
+  int i = (int)f;
+  t_atom at;
+  
+  if(x->x_ac > 0)
+  {
+    if(i < 0)
+      i = 0;
+    if(i >= x->x_ac)
+      i = x->x_ac - 1;
+    SETSYMBOL(&at, x->x_any[i]);
+    outlet_anything(x->x_out_any, x->x_any[i], 0, 0);
+    outlet_anything(x->x_out_set_any, x->x_set, 1, &at);
+  }
+}
+
+static void iem_sel_any_add(t_iem_sel_any *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac >= 2) && (IS_A_FLOAT(av, 0)))
+  {
+    int i = (int)atom_getintarg(0, ac, av);
+    
+    if((i >= 0) && (i < x->x_max_ac))
+    {
+      if(IS_A_SYMBOL(av, 1))
+        x->x_any[i] = atom_getsymbolarg(1, ac, av);
+      else if(IS_A_FLOAT(av, 1))
+      {
+        char str[100];
+        
+        sprintf(str, "%g", atom_getfloatarg(1, ac, av));
+        x->x_any[i] = gensym(str);
+      }
+      if(i >= x->x_ac)
+        x->x_ac = i+1;
+    }
+  }
+}
+
+static void iem_sel_any_clear(t_iem_sel_any *x)
+{
+  x->x_ac = 0;
+}
+
+static void iem_sel_any_free(t_iem_sel_any *x)
+{
+  freebytes(x->x_any, x->x_max_ac * sizeof(t_symbol *));
+}
+
+static void *iem_sel_any_new(t_float fmax)
+{
+  t_iem_sel_any *x = (t_iem_sel_any *)pd_new(iem_sel_any_class);
+  int i;
+  t_symbol *default_sym=gensym("no_entry");
+  
+  if(fmax <= 0.0)
+    fmax = 10.0;
+  x->x_max_ac = (int)fmax;
+  x->x_any = (t_symbol **)getbytes(x->x_max_ac * sizeof(t_symbol *));
+  x->x_ac = 0;
+  x->x_set = gensym("set");
+  for(i=0; i<x->x_max_ac; i++)
+    x->x_any[i] = default_sym;
+  x->x_out_set_any = outlet_new(&x->x_obj, &s_list);
+  x->x_out_any = outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void iem_sel_any_setup(void)
+{
+  iem_sel_any_class = class_new(gensym("iem_sel_any"), (t_newmethod)iem_sel_any_new,
+    (t_method)iem_sel_any_free, sizeof(t_iem_sel_any), 0, A_DEFFLOAT, 0);
+  class_addmethod(iem_sel_any_class, (t_method)iem_sel_any_add, gensym("add"), A_GIMME, 0);
+  class_addmethod(iem_sel_any_class, (t_method)iem_sel_any_clear, gensym("clear"), 0);
+  class_addfloat(iem_sel_any_class, (t_method)iem_sel_any_float);
+  class_sethelpsymbol(iem_sel_any_class, gensym("iemhelp/help-iem_sel_any"));
+}
diff --git a/src/iemlib2/iem_send.c b/src/iemlib2/iem_send.c
index 67c508f..d09a361 100644
--- a/src/iemlib2/iem_send.c
+++ b/src/iemlib2/iem_send.c
@@ -1,162 +1,162 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* -------------------- iem_send ------------------------------ */
-/* ------- like millers s, but with setable send label -------- */
-
-struct _iem_send_proxy;
-
-static t_class *iem_send_class;
-static t_class *iem_send_proxy_class;
-
-typedef struct _iem_send
-{
-  t_object                x_obj;
-  struct _iem_send_proxy  *x_proxy_inlet;
-  t_symbol                *x_send_label_sym;
-} t_iem_send;
-
-typedef struct _iem_send_proxy
-{
-  t_object    p_obj;
-  t_iem_send  *p_owner;
-} t_iem_send_proxy;
-
-static void iem_send_bang(t_iem_send *x)
-{
-	if(x->x_send_label_sym)
-    if(x->x_send_label_sym->s_thing)
-      pd_bang(x->x_send_label_sym->s_thing);
-}
-
-static void iem_send_float(t_iem_send *x, t_float f)
-{
-	if(x->x_send_label_sym)
-    if(x->x_send_label_sym->s_thing)
-      pd_float(x->x_send_label_sym->s_thing, f);
-}
-
-static void iem_send_symbol(t_iem_send *x, t_symbol *s)
-{
-	if(x->x_send_label_sym)
-    if(x->x_send_label_sym->s_thing)
-      pd_symbol(x->x_send_label_sym->s_thing, s);
-}
-
-static void iem_send_pointer(t_iem_send *x, t_gpointer *gp)
-{
-	if(x->x_send_label_sym)
-    if(x->x_send_label_sym->s_thing)
-      pd_pointer(x->x_send_label_sym->s_thing, gp);
-}
-
-static void iem_send_list(t_iem_send *x, t_symbol *s, int argc, t_atom *argv)
-{
-	if(x->x_send_label_sym)
-    if(x->x_send_label_sym->s_thing)
-      pd_list(x->x_send_label_sym->s_thing, s, argc, argv);
-}
-
-static void iem_send_anything(t_iem_send *x, t_symbol *s, int argc, t_atom *argv)
-{
-	if(x->x_send_label_sym)
-	  if(x->x_send_label_sym->s_thing)
-      typedmess(x->x_send_label_sym->s_thing, s, argc, argv);
-}
-
-/* begin of proxy methods (anything inlets) */
-
-static void iem_send_proxy_clear(t_iem_send_proxy *p, t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_send *x = p->p_owner;
-
-  x->x_send_label_sym = 0;
-}
-
-static void iem_send_proxy_set(t_iem_send_proxy *p, t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_send *x = p->p_owner;
-
-	if(ac > 0)
-  {
-    if(IS_A_SYMBOL(av,0))
-      x->x_send_label_sym = atom_getsymbol(av);
-    else if(IS_A_FLOAT(av,0))
-    {
-      char str[32];
-      
-      sprintf(str, "%g", atom_getfloat(av));
-      x->x_send_label_sym = gensym(str);
-    }
-  }
-}
-
-/* end of proxy methods (anything inlets) */
-
-static void iem_send_free(t_iem_send *x)
-{
-  if(x->x_proxy_inlet)
-    pd_free((t_pd *)x->x_proxy_inlet);
-}
-
-static void *iem_send_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_iem_send *x = (t_iem_send *)pd_new(iem_send_class);
-	t_iem_send_proxy *p = (t_iem_send_proxy *)pd_new(iem_send_proxy_class);
-
-  x->x_proxy_inlet = p;
-  p->p_owner = x;
-  
-  if(ac > 0)
-  {
-    if(IS_A_SYMBOL(av,0))
-    {
-      x->x_send_label_sym = atom_getsymbol(av);
-    }
-    else if(IS_A_FLOAT(av,0))
-    {
-      char str[32];
-      
-      sprintf(str, "%g", atom_getfloat(av));
-      x->x_send_label_sym = gensym(str);
-    }
-    else
-      x->x_send_label_sym = 0;
-  }
-  else
-    x->x_send_label_sym = 0;
-	inlet_new((t_object *)x, (t_pd *)p, 0, 0);
-  return (x);
-}
-
-void iem_send_setup(void)
-{
-  iem_send_class = class_new(gensym("iem_send"), (t_newmethod)iem_send_new, (t_method)iem_send_free,
-    sizeof(t_iem_send), 0, A_GIMME, 0);
-  class_addcreator((t_newmethod)iem_send_new, gensym("iem_s"), A_GIMME, 0);
-  class_addbang(iem_send_class, iem_send_bang);
-  class_addfloat(iem_send_class, iem_send_float);
-  class_addsymbol(iem_send_class, iem_send_symbol);
-  class_addpointer(iem_send_class, iem_send_pointer);
-  class_addlist(iem_send_class, iem_send_list);
-  class_addanything(iem_send_class, iem_send_anything);
-  class_sethelpsymbol(iem_send_class, gensym("iemhelp/help-iem_send"));
-
-	iem_send_proxy_class = class_new(gensym("_iem_send_proxy"),
-    0, 0, sizeof(t_iem_send_proxy), CLASS_PD | CLASS_NOINLET, 0);
-  class_addmethod(iem_send_proxy_class, (t_method)iem_send_proxy_clear, gensym("clear"), A_GIMME, 0);
-  class_addmethod(iem_send_proxy_class, (t_method)iem_send_proxy_set, gensym("set"), A_GIMME, 0);
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* -------------------- iem_send ------------------------------ */
+/* ------- like millers s, but with setable send label -------- */
+
+struct _iem_send_proxy;
+
+static t_class *iem_send_class;
+static t_class *iem_send_proxy_class;
+
+typedef struct _iem_send
+{
+  t_object                x_obj;
+  struct _iem_send_proxy  *x_proxy_inlet;
+  t_symbol                *x_send_label_sym;
+} t_iem_send;
+
+typedef struct _iem_send_proxy
+{
+  t_object    p_obj;
+  t_iem_send  *p_owner;
+} t_iem_send_proxy;
+
+static void iem_send_bang(t_iem_send *x)
+{
+	if(x->x_send_label_sym)
+    if(x->x_send_label_sym->s_thing)
+      pd_bang(x->x_send_label_sym->s_thing);
+}
+
+static void iem_send_float(t_iem_send *x, t_float f)
+{
+	if(x->x_send_label_sym)
+    if(x->x_send_label_sym->s_thing)
+      pd_float(x->x_send_label_sym->s_thing, f);
+}
+
+static void iem_send_symbol(t_iem_send *x, t_symbol *s)
+{
+	if(x->x_send_label_sym)
+    if(x->x_send_label_sym->s_thing)
+      pd_symbol(x->x_send_label_sym->s_thing, s);
+}
+
+static void iem_send_pointer(t_iem_send *x, t_gpointer *gp)
+{
+	if(x->x_send_label_sym)
+    if(x->x_send_label_sym->s_thing)
+      pd_pointer(x->x_send_label_sym->s_thing, gp);
+}
+
+static void iem_send_list(t_iem_send *x, t_symbol *s, int argc, t_atom *argv)
+{
+	if(x->x_send_label_sym)
+    if(x->x_send_label_sym->s_thing)
+      pd_list(x->x_send_label_sym->s_thing, s, argc, argv);
+}
+
+static void iem_send_anything(t_iem_send *x, t_symbol *s, int argc, t_atom *argv)
+{
+	if(x->x_send_label_sym)
+	  if(x->x_send_label_sym->s_thing)
+      typedmess(x->x_send_label_sym->s_thing, s, argc, argv);
+}
+
+/* begin of proxy methods (anything inlets) */
+
+static void iem_send_proxy_clear(t_iem_send_proxy *p, t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_send *x = p->p_owner;
+
+  x->x_send_label_sym = 0;
+}
+
+static void iem_send_proxy_set(t_iem_send_proxy *p, t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_send *x = p->p_owner;
+
+	if(ac > 0)
+  {
+    if(IS_A_SYMBOL(av,0))
+      x->x_send_label_sym = atom_getsymbol(av);
+    else if(IS_A_FLOAT(av,0))
+    {
+      char str[32];
+      
+      sprintf(str, "%g", atom_getfloat(av));
+      x->x_send_label_sym = gensym(str);
+    }
+  }
+}
+
+/* end of proxy methods (anything inlets) */
+
+static void iem_send_free(t_iem_send *x)
+{
+  if(x->x_proxy_inlet)
+    pd_free((t_pd *)x->x_proxy_inlet);
+}
+
+static void *iem_send_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_iem_send *x = (t_iem_send *)pd_new(iem_send_class);
+	t_iem_send_proxy *p = (t_iem_send_proxy *)pd_new(iem_send_proxy_class);
+
+  x->x_proxy_inlet = p;
+  p->p_owner = x;
+  
+  if(ac > 0)
+  {
+    if(IS_A_SYMBOL(av,0))
+    {
+      x->x_send_label_sym = atom_getsymbol(av);
+    }
+    else if(IS_A_FLOAT(av,0))
+    {
+      char str[32];
+      
+      sprintf(str, "%g", atom_getfloat(av));
+      x->x_send_label_sym = gensym(str);
+    }
+    else
+      x->x_send_label_sym = 0;
+  }
+  else
+    x->x_send_label_sym = 0;
+	inlet_new((t_object *)x, (t_pd *)p, 0, 0);
+  return (x);
+}
+
+void iem_send_setup(void)
+{
+  iem_send_class = class_new(gensym("iem_send"), (t_newmethod)iem_send_new, (t_method)iem_send_free,
+    sizeof(t_iem_send), 0, A_GIMME, 0);
+  class_addcreator((t_newmethod)iem_send_new, gensym("iem_s"), A_GIMME, 0);
+  class_addbang(iem_send_class, iem_send_bang);
+  class_addfloat(iem_send_class, iem_send_float);
+  class_addsymbol(iem_send_class, iem_send_symbol);
+  class_addpointer(iem_send_class, iem_send_pointer);
+  class_addlist(iem_send_class, iem_send_list);
+  class_addanything(iem_send_class, iem_send_anything);
+  class_sethelpsymbol(iem_send_class, gensym("iemhelp/help-iem_send"));
+
+	iem_send_proxy_class = class_new(gensym("_iem_send_proxy"),
+    0, 0, sizeof(t_iem_send_proxy), CLASS_PD | CLASS_NOINLET, 0);
+  class_addmethod(iem_send_proxy_class, (t_method)iem_send_proxy_clear, gensym("clear"), A_GIMME, 0);
+  class_addmethod(iem_send_proxy_class, (t_method)iem_send_proxy_set, gensym("set"), A_GIMME, 0);
+}
diff --git a/src/iemlib2/iem_send_kernel.c b/src/iemlib2/iem_send_kernel.c
index c6b98b6..d40bd24 100644
--- a/src/iemlib2/iem_send_kernel.c
+++ b/src/iemlib2/iem_send_kernel.c
@@ -1,140 +1,140 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2004 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "g_canvas.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
-
-/* -------------------- iem_send_kernel ------------------------------ */
-
-static t_class *iem_send_kernel_class;
-
-typedef struct _iem_send_kernel
-{
-  t_object x_obj;
-  t_symbol *x_sym;
-} t_iem_send_kernel;
-
-static void iem_send_kernel_set_name(t_iem_send_kernel *x, t_symbol *s, int argc, t_atom *argv)
-{
-  if((argc > 0)&&((IS_A_SYMBOL(argv,0))||(IS_A_FLOAT(argv,0))))
-  {
-    if(IS_A_SYMBOL(argv,0))
-      x->x_sym = atom_getsymbol(argv);
-    else if(IS_A_FLOAT(argv,0))
-    {
-      char str[100];
-      
-      sprintf(str, "%g", atom_getfloat(argv));
-      x->x_sym = gensym(str);
-    }
-  }
-}
-
-static void iem_send_kernel_clear(t_iem_send_kernel *x)
-{
-  x->x_sym = 0;
-}
-
-static void iem_send_kernel_bang(t_iem_send_kernel *x)
-{
-  if(x->x_sym->s_thing)
-    pd_bang(x->x_sym->s_thing);
-}
-
-static void iem_send_kernel_float(t_iem_send_kernel *x, t_float f)
-{
-  if(x->x_sym->s_thing)
-    pd_float(x->x_sym->s_thing, f);
-}
-
-static void iem_send_kernel_symbol(t_iem_send_kernel *x, t_symbol *s)
-{
-  if(x->x_sym->s_thing)
-    pd_symbol(x->x_sym->s_thing, s);
-}
-
-static void iem_send_kernel_pointer(t_iem_send_kernel *x, t_gpointer *gp)
-{
-  if(x->x_sym->s_thing)
-    pd_pointer(x->x_sym->s_thing, gp);
-}
-
-static void iem_send_kernel_list(t_iem_send_kernel *x, t_symbol *s, int argc, t_atom *argv)
-{
-  if(x->x_sym->s_thing)
-    pd_list(x->x_sym->s_thing, s, argc, argv);
-}
-
-static void iem_send_kernel_anything(t_iem_send_kernel *x, t_symbol *s, int argc, t_atom *argv)
-{
-  if(x->x_sym->s_thing)
-    typedmess(x->x_sym->s_thing, s, argc, argv);
-}
-
-static void *iem_send_kernel_new(void)
-{
-  t_iem_send_kernel *x = (t_iem_send_kernel *)pd_new(iem_send_kernel_class);
-  t_glist *glist = (t_glist *)canvas_getcurrent();
-  t_canvas *canvas=glist_getcanvas(glist);
-  int ac=0;
-  t_atom *av;
-  
-  canvas_setcurrent(canvas);
-  canvas_getargs(&ac, &av);
-  canvas_unsetcurrent(canvas);
-  
-  if(ac > 0)
-  {
-    if(IS_A_SYMBOL(av,0))
-    {
-      x->x_sym = atom_getsymbol(av);
-    }
-    else if(IS_A_FLOAT(av,0))
-    {
-      char str[100];
-      
-      sprintf(str, "%g", atom_getfloat(av));
-      x->x_sym = gensym(str);
-    }
-    else
-      x->x_sym = 0;
-  }
-  else
-    x->x_sym = 0;
-  return (x);
-}
-
-void iem_send_kernel_setup(void)
-{
-  char str[2];
-  
-  str[1] = 0;
-  iem_send_kernel_class = class_new(gensym("iem_send_kernel"), (t_newmethod)iem_send_kernel_new, 0,
-    sizeof(t_iem_send_kernel), 0, 0);
-  class_addcreator((t_newmethod)iem_send_kernel_new, gensym("s"), A_DEFSYM, 0);
-  class_addbang(iem_send_kernel_class, iem_send_kernel_bang);
-  class_addfloat(iem_send_kernel_class, iem_send_kernel_float);
-  class_addsymbol(iem_send_kernel_class, iem_send_kernel_symbol);
-  class_addpointer(iem_send_kernel_class, iem_send_kernel_pointer);
-  class_addlist(iem_send_kernel_class, iem_send_kernel_list);
-  class_addanything(iem_send_kernel_class, iem_send_kernel_anything);
-  str[0] = 1;/*inlet-sym = "\0x01"*/
-  class_addmethod(iem_send_kernel_class, (t_method)iem_send_kernel_set_name, gensym(str), A_GIMME, 0);
-  str[0] = 2;/*inlet-sym = "\0x02"*/
-  class_addmethod(iem_send_kernel_class, (t_method)iem_send_kernel_clear, gensym(str), 0);
-  class_sethelpsymbol(iem_send_kernel_class, gensym("iemhelp/help-iem_send"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2004 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "g_canvas.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+EXTERN void canvas_getargs(int *argcp, t_atom **argvp);
+
+/* -------------------- iem_send_kernel ------------------------------ */
+
+static t_class *iem_send_kernel_class;
+
+typedef struct _iem_send_kernel
+{
+  t_object x_obj;
+  t_symbol *x_sym;
+} t_iem_send_kernel;
+
+static void iem_send_kernel_set_name(t_iem_send_kernel *x, t_symbol *s, int argc, t_atom *argv)
+{
+  if((argc > 0)&&((IS_A_SYMBOL(argv,0))||(IS_A_FLOAT(argv,0))))
+  {
+    if(IS_A_SYMBOL(argv,0))
+      x->x_sym = atom_getsymbol(argv);
+    else if(IS_A_FLOAT(argv,0))
+    {
+      char str[100];
+      
+      sprintf(str, "%g", atom_getfloat(argv));
+      x->x_sym = gensym(str);
+    }
+  }
+}
+
+static void iem_send_kernel_clear(t_iem_send_kernel *x)
+{
+  x->x_sym = 0;
+}
+
+static void iem_send_kernel_bang(t_iem_send_kernel *x)
+{
+  if(x->x_sym->s_thing)
+    pd_bang(x->x_sym->s_thing);
+}
+
+static void iem_send_kernel_float(t_iem_send_kernel *x, t_float f)
+{
+  if(x->x_sym->s_thing)
+    pd_float(x->x_sym->s_thing, f);
+}
+
+static void iem_send_kernel_symbol(t_iem_send_kernel *x, t_symbol *s)
+{
+  if(x->x_sym->s_thing)
+    pd_symbol(x->x_sym->s_thing, s);
+}
+
+static void iem_send_kernel_pointer(t_iem_send_kernel *x, t_gpointer *gp)
+{
+  if(x->x_sym->s_thing)
+    pd_pointer(x->x_sym->s_thing, gp);
+}
+
+static void iem_send_kernel_list(t_iem_send_kernel *x, t_symbol *s, int argc, t_atom *argv)
+{
+  if(x->x_sym->s_thing)
+    pd_list(x->x_sym->s_thing, s, argc, argv);
+}
+
+static void iem_send_kernel_anything(t_iem_send_kernel *x, t_symbol *s, int argc, t_atom *argv)
+{
+  if(x->x_sym->s_thing)
+    typedmess(x->x_sym->s_thing, s, argc, argv);
+}
+
+static void *iem_send_kernel_new(void)
+{
+  t_iem_send_kernel *x = (t_iem_send_kernel *)pd_new(iem_send_kernel_class);
+  t_glist *glist = (t_glist *)canvas_getcurrent();
+  t_canvas *canvas=glist_getcanvas(glist);
+  int ac=0;
+  t_atom *av;
+  
+  canvas_setcurrent(canvas);
+  canvas_getargs(&ac, &av);
+  canvas_unsetcurrent(canvas);
+  
+  if(ac > 0)
+  {
+    if(IS_A_SYMBOL(av,0))
+    {
+      x->x_sym = atom_getsymbol(av);
+    }
+    else if(IS_A_FLOAT(av,0))
+    {
+      char str[100];
+      
+      sprintf(str, "%g", atom_getfloat(av));
+      x->x_sym = gensym(str);
+    }
+    else
+      x->x_sym = 0;
+  }
+  else
+    x->x_sym = 0;
+  return (x);
+}
+
+void iem_send_kernel_setup(void)
+{
+  char str[2];
+  
+  str[1] = 0;
+  iem_send_kernel_class = class_new(gensym("iem_send_kernel"), (t_newmethod)iem_send_kernel_new, 0,
+    sizeof(t_iem_send_kernel), 0, 0);
+  class_addcreator((t_newmethod)iem_send_kernel_new, gensym("s"), A_DEFSYM, 0);
+  class_addbang(iem_send_kernel_class, iem_send_kernel_bang);
+  class_addfloat(iem_send_kernel_class, iem_send_kernel_float);
+  class_addsymbol(iem_send_kernel_class, iem_send_kernel_symbol);
+  class_addpointer(iem_send_kernel_class, iem_send_kernel_pointer);
+  class_addlist(iem_send_kernel_class, iem_send_kernel_list);
+  class_addanything(iem_send_kernel_class, iem_send_kernel_anything);
+  str[0] = 1;/*inlet-sym = "\0x01"*/
+  class_addmethod(iem_send_kernel_class, (t_method)iem_send_kernel_set_name, gensym(str), A_GIMME, 0);
+  str[0] = 2;/*inlet-sym = "\0x02"*/
+  class_addmethod(iem_send_kernel_class, (t_method)iem_send_kernel_clear, gensym(str), 0);
+  class_sethelpsymbol(iem_send_kernel_class, gensym("iemhelp/help-iem_send"));
+}
diff --git a/src/iemlib2/iemlib2.c b/src/iemlib2/iemlib2.c
index 38bc356..3982e95 100644
--- a/src/iemlib2/iemlib2.c
+++ b/src/iemlib2/iemlib2.c
@@ -1,137 +1,137 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-/*
-#include <ctype.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-#ifndef NT
-#include <sys/signal.h>
-#include <unistd.h>
-#endif
-
-#ifdef NT
-#include <io.h>
-#endif
-*/
-
-static t_class *iemlib2_class;
-
-static void *iemlib2_new(void)
-{
-  t_object *x = (t_object *)pd_new(iemlib2_class);
-  
-  return (x);
-}
-
-void add2_comma_setup(void);
-void bpe_setup(void);
-void dollarg_setup(void);
-void exp_inc_setup(void);
-void float24_setup(void);
-void iem_anything_kernel_setup(void);
-void iem_anything_setup(void);
-void iem_append_kernel_setup(void);
-void iem_append_setup(void);
-void iem_i_route_setup(void);
-void iem_prepend_kernel_setup(void);
-void iem_prepend_setup(void);
-void iem_pbank_csv_setup(void);
-void iem_receive_kernel_setup(void);
-void iem_receive_setup(void);
-void iem_send_kernel_setup(void);
-void iem_send_setup(void);
-void iem_route_setup(void);
-void iem_sel_any_setup(void);
-void init_setup(void);
-void list2send_setup(void);
-void mergefilename_setup(void);
-void modulo_counter_setup(void);
-void parentdollarzero_setup(void);
-void pre_inlet_setup(void);
-void prepend_ascii_setup(void);
-void protect_against_open_setup(void);
-void post_netreceive_setup(void);
-void receive2list_setup(void);
-void round_zero_setup(void);
-void sigfade_setup(void);
-void sigiem_blocksize_setup(void);
-void sigiem_samplerate_setup(void);
-void sigLFO_noise_setup(void);
-void sigm2f_setup(void);
-void speedlim_setup(void);
-void splitfilename_setup(void);
-void stripfilename_setup(void);
-void toggle_mess_setup(void);
-void transf_fader_setup(void);
-void unsymbol_setup(void);
-void wrap_setup(void);
-
-/* ------------------------ setup routine ------------------------- */
-
-void iemlib2_setup(void)
-{
-  iemlib2_class = class_new(gensym("iemlib2"), iemlib2_new, 0, sizeof(t_object), CLASS_NOINLET, 0);
-  
-  add2_comma_setup();
-  bpe_setup();
-  dollarg_setup();
-  exp_inc_setup();
-  float24_setup();
-  iem_anything_kernel_setup();
-	iem_anything_setup();
-  iem_append_kernel_setup();
-	iem_append_setup();
-  iem_i_route_setup();
-  iem_pbank_csv_setup();
-  iem_prepend_kernel_setup();
-	iem_prepend_setup();
-  iem_receive_kernel_setup();
-	iem_receive_setup();
-  iem_send_kernel_setup();
-	iem_send_setup();
-  iem_route_setup();
-  iem_sel_any_setup();
-  init_setup();
-  list2send_setup();
-  mergefilename_setup();
-  modulo_counter_setup();
-  parentdollarzero_setup();
-  pre_inlet_setup();
-  prepend_ascii_setup();
-  protect_against_open_setup();
-  post_netreceive_setup();
-	receive2list_setup();
-  round_zero_setup();
-  sigfade_setup();
-  sigiem_blocksize_setup();
-  sigiem_samplerate_setup();
-  sigLFO_noise_setup();
-  sigm2f_setup();
-  speedlim_setup();
-  splitfilename_setup();
-  stripfilename_setup();
-  toggle_mess_setup();
-  transf_fader_setup();
-  unsymbol_setup();
-  wrap_setup();
-    
-  post("iemlib2 (R-1.16) library loaded!   (c) Thomas Musil 05.2005");
-	post("   musil%ciem.at iem KUG Graz Austria", '@');
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+/*
+#include <ctype.h>
+#include <signal.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#ifndef NT
+#include <sys/signal.h>
+#include <unistd.h>
+#endif
+
+#ifdef NT
+#include <io.h>
+#endif
+*/
+
+static t_class *iemlib2_class;
+
+static void *iemlib2_new(void)
+{
+  t_object *x = (t_object *)pd_new(iemlib2_class);
+  
+  return (x);
+}
+
+void add2_comma_setup(void);
+void bpe_setup(void);
+void dollarg_setup(void);
+void exp_inc_setup(void);
+void float24_setup(void);
+void iem_anything_kernel_setup(void);
+void iem_anything_setup(void);
+void iem_append_kernel_setup(void);
+void iem_append_setup(void);
+void iem_i_route_setup(void);
+void iem_prepend_kernel_setup(void);
+void iem_prepend_setup(void);
+void iem_pbank_csv_setup(void);
+void iem_receive_kernel_setup(void);
+void iem_receive_setup(void);
+void iem_send_kernel_setup(void);
+void iem_send_setup(void);
+void iem_route_setup(void);
+void iem_sel_any_setup(void);
+void init_setup(void);
+void list2send_setup(void);
+void mergefilename_setup(void);
+void modulo_counter_setup(void);
+void parentdollarzero_setup(void);
+void pre_inlet_setup(void);
+void prepend_ascii_setup(void);
+void protect_against_open_setup(void);
+void post_netreceive_setup(void);
+void receive2list_setup(void);
+void round_zero_setup(void);
+void sigfade_setup(void);
+void sigiem_blocksize_setup(void);
+void sigiem_samplerate_setup(void);
+void sigLFO_noise_setup(void);
+void sigm2f_setup(void);
+void speedlim_setup(void);
+void splitfilename_setup(void);
+void stripfilename_setup(void);
+void toggle_mess_setup(void);
+void transf_fader_setup(void);
+void unsymbol_setup(void);
+void wrap_setup(void);
+
+/* ------------------------ setup routine ------------------------- */
+
+void iemlib2_setup(void)
+{
+  iemlib2_class = class_new(gensym("iemlib2"), iemlib2_new, 0, sizeof(t_object), CLASS_NOINLET, 0);
+  
+  add2_comma_setup();
+  bpe_setup();
+  dollarg_setup();
+  exp_inc_setup();
+  float24_setup();
+  iem_anything_kernel_setup();
+	iem_anything_setup();
+  iem_append_kernel_setup();
+	iem_append_setup();
+  iem_i_route_setup();
+  iem_pbank_csv_setup();
+  iem_prepend_kernel_setup();
+	iem_prepend_setup();
+  iem_receive_kernel_setup();
+	iem_receive_setup();
+  iem_send_kernel_setup();
+	iem_send_setup();
+  iem_route_setup();
+  iem_sel_any_setup();
+  init_setup();
+  list2send_setup();
+  mergefilename_setup();
+  modulo_counter_setup();
+  parentdollarzero_setup();
+  pre_inlet_setup();
+  prepend_ascii_setup();
+  protect_against_open_setup();
+  post_netreceive_setup();
+	receive2list_setup();
+  round_zero_setup();
+  sigfade_setup();
+  sigiem_blocksize_setup();
+  sigiem_samplerate_setup();
+  sigLFO_noise_setup();
+  sigm2f_setup();
+  speedlim_setup();
+  splitfilename_setup();
+  stripfilename_setup();
+  toggle_mess_setup();
+  transf_fader_setup();
+  unsymbol_setup();
+  wrap_setup();
+    
+  post("iemlib2 (R-1.16) library loaded!   (c) Thomas Musil 05.2005");
+	post("   musil%ciem.at iem KUG Graz Austria", '@');
+}
diff --git a/src/iemlib2/init.c b/src/iemlib2/init.c
index 786cdc9..6dd6639 100644
--- a/src/iemlib2/init.c
+++ b/src/iemlib2/init.c
@@ -1,204 +1,204 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* ------------------------ init ---------------------------- */
-/* -------- a combination of loadbang and any --------------- */
-
-static t_class *init_class;
-
-typedef struct _init
-{
-  t_object   x_obj;
-  int        x_n;
-  int        x_ac;
-  t_atom     *x_at;
-  t_symbol   *x_sym;
-  t_atomtype x_type;
-} t_init;
-
-static void init_bang(t_init *x)
-{
-  if(x->x_type == A_FLOAT)
-    outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at));
-  else if(x->x_type == A_SYMBOL)
-    outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at));
-  else if(x->x_type == A_NULL)
-    outlet_bang(x->x_obj.ob_outlet);
-  else if(x->x_type == A_COMMA)
-    outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at);
-  else if(x->x_type == A_GIMME)
-    outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at);
-  else if(x->x_type == A_POINTER)
-    outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at->a_w.w_gpointer);
-}
-
-static void init_loadbang(t_init *x)
-{
-  if(!sys_noloadbang)
-    init_bang(x);
-}
-
-static void init_float(t_init *x, t_float f)
-{
-  x->x_ac = 1;
-  SETFLOAT(x->x_at, f);
-  x->x_sym = &s_float;
-  x->x_type = A_FLOAT;
-  outlet_float(x->x_obj.ob_outlet, f);
-}
-
-static void init_symbol(t_init *x, t_symbol *s)
-{
-  x->x_ac = 1;
-  SETSYMBOL(x->x_at, s);
-  x->x_sym = &s_symbol;
-  x->x_type = A_SYMBOL;
-  outlet_symbol(x->x_obj.ob_outlet, s);
-}
-
-static void init_pointer(t_init *x, t_gpointer *gp)
-{
-  x->x_ac = 1;
-  SETPOINTER(x->x_at, gp);
-  x->x_sym = &s_pointer;
-  x->x_type = A_POINTER;
-  outlet_pointer(x->x_obj.ob_outlet, gp);
-}
-
-static void init_list(t_init *x, t_symbol *s, int ac, t_atom *av)
-{
-  t_atom *at;
-  
-  if(ac > x->x_n)
-  {
-    if(x->x_at)
-      freebytes(x->x_at, x->x_n * sizeof(t_atom));
-    x->x_n = ac;
-    x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
-  }
-  x->x_ac = ac;
-  x->x_sym = &s_list;
-  at = x->x_at;
-  while(ac--)
-    *at++ = *av++;
-  x->x_type = A_GIMME;
-  outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at);
-}
-
-static void init_anything(t_init *x, t_symbol *s, int ac, t_atom *av)
-{
-  t_atom *at;
-  
-  if(ac > x->x_n)
-  {
-    if(x->x_at)
-      freebytes(x->x_at, x->x_n * sizeof(t_atom));
-    x->x_n = ac;
-    x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
-  }
-  x->x_ac = ac;
-  x->x_sym = s;
-  at = x->x_at;
-  while(ac--)
-    *at++ = *av++;
-  x->x_type = A_COMMA;
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at);
-}
-
-static void init_free(t_init *x)
-{
-  if(x->x_at)
-    freebytes(x->x_at, x->x_n * sizeof(t_atom));
-}
-
-static void *init_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_init *x = (t_init *)pd_new(init_class);
-  int i;
-  
-  x->x_type = A_NULL;
-  if(!ac)
-  {
-    x->x_type = A_NULL;
-    x->x_sym = &s_bang;
-    x->x_n = 1;
-    x->x_ac = 0;
-    x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
-  }
-  else if(ac == 1)
-  {
-    if(IS_A_SYMBOL(av,0))
-    {
-      x->x_type = A_COMMA;
-      x->x_sym = atom_getsymbol(av);
-      x->x_n = 1;
-      x->x_ac = 0;
-      x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
-    }
-    else
-    {
-      if(IS_A_FLOAT(av,0))
-      {
-        x->x_type = A_FLOAT;
-        x->x_sym = &s_float;
-      }
-      else if(IS_A_POINTER(av,0))
-      {
-        x->x_type = A_POINTER;
-        x->x_sym = &s_pointer;
-      }
-      x->x_n = x->x_ac = 1;
-      x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
-      x->x_at[0] = *av;
-    }
-  }
-  else
-  {
-    if(IS_A_SYMBOL(av,0))
-    {
-      x->x_type = A_COMMA;/*for anything*/
-      x->x_sym = atom_getsymbol(av++);
-      ac--;
-    }
-    else
-    {
-      x->x_type = A_GIMME;
-      x->x_sym = &s_list;
-    }
-    x->x_n = x->x_ac = ac;
-    x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
-    for(i=0; i<ac; i++)
-      x->x_at[i] = *av++;
-  }
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void init_setup(void)
-{
-  init_class = class_new(gensym("init"), (t_newmethod)init_new,
-    (t_method)init_free, sizeof(t_init), 0, A_GIMME, 0);
-  class_addcreator((t_newmethod)init_new, gensym("ii"), A_GIMME, 0);
-  class_addmethod(init_class, (t_method)init_loadbang, gensym("loadbang"), 0);
-  class_addbang(init_class, (t_method)init_bang);
-  class_addanything(init_class, init_anything);
-  class_addlist(init_class, init_list);
-  class_addpointer(init_class, init_pointer);
-  class_addfloat(init_class, (t_method)init_float);
-  class_addsymbol(init_class, init_symbol);
-  class_sethelpsymbol(init_class, gensym("iemhelp/help-init"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* ------------------------ init ---------------------------- */
+/* -------- a combination of loadbang and any --------------- */
+
+static t_class *init_class;
+
+typedef struct _init
+{
+  t_object   x_obj;
+  int        x_n;
+  int        x_ac;
+  t_atom     *x_at;
+  t_symbol   *x_sym;
+  t_atomtype x_type;
+} t_init;
+
+static void init_bang(t_init *x)
+{
+  if(x->x_type == A_FLOAT)
+    outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at));
+  else if(x->x_type == A_SYMBOL)
+    outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at));
+  else if(x->x_type == A_NULL)
+    outlet_bang(x->x_obj.ob_outlet);
+  else if(x->x_type == A_COMMA)
+    outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at);
+  else if(x->x_type == A_GIMME)
+    outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at);
+  else if(x->x_type == A_POINTER)
+    outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at->a_w.w_gpointer);
+}
+
+static void init_loadbang(t_init *x)
+{
+  if(!sys_noloadbang)
+    init_bang(x);
+}
+
+static void init_float(t_init *x, t_float f)
+{
+  x->x_ac = 1;
+  SETFLOAT(x->x_at, f);
+  x->x_sym = &s_float;
+  x->x_type = A_FLOAT;
+  outlet_float(x->x_obj.ob_outlet, f);
+}
+
+static void init_symbol(t_init *x, t_symbol *s)
+{
+  x->x_ac = 1;
+  SETSYMBOL(x->x_at, s);
+  x->x_sym = &s_symbol;
+  x->x_type = A_SYMBOL;
+  outlet_symbol(x->x_obj.ob_outlet, s);
+}
+
+static void init_pointer(t_init *x, t_gpointer *gp)
+{
+  x->x_ac = 1;
+  SETPOINTER(x->x_at, gp);
+  x->x_sym = &s_pointer;
+  x->x_type = A_POINTER;
+  outlet_pointer(x->x_obj.ob_outlet, gp);
+}
+
+static void init_list(t_init *x, t_symbol *s, int ac, t_atom *av)
+{
+  t_atom *at;
+  
+  if(ac > x->x_n)
+  {
+    if(x->x_at)
+      freebytes(x->x_at, x->x_n * sizeof(t_atom));
+    x->x_n = ac;
+    x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
+  }
+  x->x_ac = ac;
+  x->x_sym = &s_list;
+  at = x->x_at;
+  while(ac--)
+    *at++ = *av++;
+  x->x_type = A_GIMME;
+  outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at);
+}
+
+static void init_anything(t_init *x, t_symbol *s, int ac, t_atom *av)
+{
+  t_atom *at;
+  
+  if(ac > x->x_n)
+  {
+    if(x->x_at)
+      freebytes(x->x_at, x->x_n * sizeof(t_atom));
+    x->x_n = ac;
+    x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
+  }
+  x->x_ac = ac;
+  x->x_sym = s;
+  at = x->x_at;
+  while(ac--)
+    *at++ = *av++;
+  x->x_type = A_COMMA;
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at);
+}
+
+static void init_free(t_init *x)
+{
+  if(x->x_at)
+    freebytes(x->x_at, x->x_n * sizeof(t_atom));
+}
+
+static void *init_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_init *x = (t_init *)pd_new(init_class);
+  int i;
+  
+  x->x_type = A_NULL;
+  if(!ac)
+  {
+    x->x_type = A_NULL;
+    x->x_sym = &s_bang;
+    x->x_n = 1;
+    x->x_ac = 0;
+    x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
+  }
+  else if(ac == 1)
+  {
+    if(IS_A_SYMBOL(av,0))
+    {
+      x->x_type = A_COMMA;
+      x->x_sym = atom_getsymbol(av);
+      x->x_n = 1;
+      x->x_ac = 0;
+      x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
+    }
+    else
+    {
+      if(IS_A_FLOAT(av,0))
+      {
+        x->x_type = A_FLOAT;
+        x->x_sym = &s_float;
+      }
+      else if(IS_A_POINTER(av,0))
+      {
+        x->x_type = A_POINTER;
+        x->x_sym = &s_pointer;
+      }
+      x->x_n = x->x_ac = 1;
+      x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
+      x->x_at[0] = *av;
+    }
+  }
+  else
+  {
+    if(IS_A_SYMBOL(av,0))
+    {
+      x->x_type = A_COMMA;/*for anything*/
+      x->x_sym = atom_getsymbol(av++);
+      ac--;
+    }
+    else
+    {
+      x->x_type = A_GIMME;
+      x->x_sym = &s_list;
+    }
+    x->x_n = x->x_ac = ac;
+    x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom));
+    for(i=0; i<ac; i++)
+      x->x_at[i] = *av++;
+  }
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void init_setup(void)
+{
+  init_class = class_new(gensym("init"), (t_newmethod)init_new,
+    (t_method)init_free, sizeof(t_init), 0, A_GIMME, 0);
+  class_addcreator((t_newmethod)init_new, gensym("ii"), A_GIMME, 0);
+  class_addmethod(init_class, (t_method)init_loadbang, gensym("loadbang"), 0);
+  class_addbang(init_class, (t_method)init_bang);
+  class_addanything(init_class, init_anything);
+  class_addlist(init_class, init_list);
+  class_addpointer(init_class, init_pointer);
+  class_addfloat(init_class, (t_method)init_float);
+  class_addsymbol(init_class, init_symbol);
+  class_sethelpsymbol(init_class, gensym("iemhelp/help-init"));
+}
diff --git a/src/iemlib2/list2send.c b/src/iemlib2/list2send.c
index ff871e8..b21bc5d 100644
--- a/src/iemlib2/list2send.c
+++ b/src/iemlib2/list2send.c
@@ -1,250 +1,250 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* ------------------------- list2send ----------------------------- */
-/* -- via an array of send labels, an incomming list with leading -- */
-/* -- float index will be sent to a receive object with the label -- */
-/* ------------ name of the index-th entry of the array ------------ */
-
-static t_class *list2send_class;
-
-typedef struct _list2send
-{
-  t_object    x_obj;
-  int         x_max;
-  char        *x_snd_able;
-  t_symbol    **x_send_entries;
-  t_symbol    *x_set;
-} t_list2send;
-
-static void list2send_list(t_list2send *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac >= 2) && (IS_A_FLOAT(av,0)))
-  {
-    int identifier_index = (int)atom_getintarg(0, ac, av);
-    
-    if(identifier_index < x->x_max)
-    {
-      if(x->x_snd_able[identifier_index])
-      {
-        t_symbol *sender = x->x_send_entries[identifier_index];
-        
-        if(sender->s_thing)
-        {
-          if(ac == 2)
-          {
-            if(IS_A_FLOAT(av, 1))
-              pd_float(sender->s_thing, atom_getfloatarg(1, ac, av));
-            else if(IS_A_SYMBOL(av, 1))
-              pd_symbol(sender->s_thing, atom_getsymbolarg(1, ac, av));
-          }
-          else
-            pd_list(sender->s_thing, &s_list, ac-1, av+1);
-        }
-      }
-    }
-  }
-}
-
-static void list2send_set(t_list2send *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac >= 2) && (IS_A_FLOAT(av,0)))
-  {
-    int identifier_index = (int)atom_getintarg(0, ac, av);
-    
-    if(identifier_index < x->x_max)
-    {
-      if(x->x_snd_able[identifier_index])
-      {
-        t_symbol *sender = x->x_send_entries[identifier_index];
-        
-        if(sender->s_thing)
-          typedmess(sender->s_thing, s, ac-1, av+1);
-      }
-    }
-  }
-}
-
-static void list2send_all(t_list2send *x, t_symbol *s, int ac, t_atom *av)
-{
-  int i, n=x->x_max;
-  
-  if(ac == n)
-  {
-    for(i=n-1; i>=0; i--)/*change*/
-    {
-      if(x->x_snd_able[i])
-      {
-        t_symbol *sender = x->x_send_entries[i];
-        
-        if(sender->s_thing)
-        {
-          if(IS_A_FLOAT(av, i))
-            pd_float(sender->s_thing, atom_getfloatarg(i, ac, av));
-          else if(IS_A_SYMBOL(av, i))
-            pd_symbol(sender->s_thing, atom_getsymbolarg(i, ac, av));
-        }
-      }
-    }
-  }
-}
-
-static void list2send_set_all(t_list2send *x, t_symbol *s, int ac, t_atom *av)
-{
-  int i, n=x->x_max;
-  
-  if(ac == n)
-  {
-    for(i=n-1; i>=0; i--)/*change*/
-    {
-      if(x->x_snd_able[i])
-      {
-        t_symbol *sender = x->x_send_entries[i];
-        
-        if(sender->s_thing)
-          typedmess(sender->s_thing, x->x_set, 1, av+i);
-      }
-    }
-  }
-}
-
-static void list2send_from(t_list2send *x, t_symbol *s, int ac, t_atom *av)
-{
-  int n=x->x_max;
-  
-  if(ac >= 1)
-  {
-    int i, j, beg=(int)atom_getintarg(0, ac, av);
-    
-    if((beg + ac - 1) <= n)
-    {
-      for(i=ac-1,j=beg+ac-2; i>=1; i--,j--)/*change*/
-      {
-        if(x->x_snd_able[j])
-        {
-          t_symbol *sender = x->x_send_entries[j];
-          
-          if(sender->s_thing)
-          {
-            if(IS_A_FLOAT(av, i))
-              pd_float(sender->s_thing, atom_getfloatarg(i, ac, av));
-            else if(IS_A_SYMBOL(av, i))
-              pd_symbol(sender->s_thing, atom_getsymbolarg(i, ac, av));
-          }
-        }
-      }
-    }
-  }
-}
-
-static void list2send_set_from(t_list2send *x, t_symbol *s, int ac, t_atom *av)
-{
-  int n=x->x_max;
-  
-  if(ac >= 1)
-  {
-    int i, j, beg=(int)atom_getintarg(0, ac, av);
-    
-    if((beg + ac - 1) <= n)
-    {
-      for(i=ac-1,j=beg+ac-2; i>=1; i--,j--)/*change*/
-      {
-        if(x->x_snd_able[j])
-        {
-          t_symbol *sender = x->x_send_entries[j];
-          
-          if(sender->s_thing)
-            typedmess(sender->s_thing, x->x_set, 1, av+i);
-        }
-      }
-    }
-  }
-}
-
-static void list2send_add(t_list2send *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac > 1) && (IS_A_FLOAT(av, 0)))
-  {
-    int identifier_index = (int)atom_getintarg(0, ac, av);
-    
-    if(identifier_index < x->x_max)
-    {
-      if(IS_A_SYMBOL(av, 1))
-      {
-        x->x_send_entries[identifier_index] = atom_getsymbolarg(1, ac, av);
-        x->x_snd_able[identifier_index] = 1;
-      }
-      else if(IS_A_FLOAT(av, 1))
-      {
-        char str[100];
-        
-        sprintf(str, "%g", atom_getfloatarg(1, ac, av));
-        x->x_send_entries[identifier_index] = gensym(str);
-        x->x_snd_able[identifier_index] = 1;
-      }
-    }
-  }
-}
-
-static void list2send_clear(t_list2send *x)
-{
-  int i, n=x->x_max;
-  
-  for(i=0; i<n; i++)
-  {
-    if(x->x_snd_able[i])
-      x->x_snd_able[i] = 0;
-  }
-}
-
-static void list2send_free(t_list2send *x)
-{
-  freebytes(x->x_snd_able, x->x_max * sizeof(char));
-  freebytes(x->x_send_entries, x->x_max * sizeof(t_symbol *));
-}
-
-static void *list2send_new(t_float fmax)
-{
-  t_list2send *x = (t_list2send *)pd_new(list2send_class);
-  int i, max = (int)fmax;
-  t_atom *ap;
-  
-  if(max <= 0)
-    max = 80;
-  x->x_max = max;
-  x->x_snd_able = (char *)getbytes(max * sizeof(char));
-  x->x_send_entries = (t_symbol **)getbytes(max * sizeof(t_symbol *));
-  for(i=0; i<max; i++)
-    x->x_snd_able[i] = 0;
-  x->x_set = gensym("set");
-  return (x);
-}
-
-void list2send_setup(void)
-{
-  list2send_class = class_new(gensym("list2send"), (t_newmethod)list2send_new,
-    (t_method)list2send_free, sizeof(t_list2send), 0, A_DEFFLOAT, 0);
-  class_addlist(list2send_class, list2send_list);
-  class_addmethod(list2send_class, (t_method)list2send_add, gensym("add"), A_GIMME, 0);
-  class_addmethod(list2send_class, (t_method)list2send_set, gensym("set"), A_GIMME, 0);
-  class_addmethod(list2send_class, (t_method)list2send_all, gensym("all"), A_GIMME, 0);
-  class_addmethod(list2send_class, (t_method)list2send_set_all, gensym("set_all"), A_GIMME, 0);
-  class_addmethod(list2send_class, (t_method)list2send_from, gensym("from"), A_GIMME, 0);
-  class_addmethod(list2send_class, (t_method)list2send_set_from, gensym("set_from"), A_GIMME, 0);
-  class_addmethod(list2send_class, (t_method)list2send_clear, gensym("clear"), 0);
-  class_sethelpsymbol(list2send_class, gensym("iemhelp/help-list2send"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* ------------------------- list2send ----------------------------- */
+/* -- via an array of send labels, an incomming list with leading -- */
+/* -- float index will be sent to a receive object with the label -- */
+/* ------------ name of the index-th entry of the array ------------ */
+
+static t_class *list2send_class;
+
+typedef struct _list2send
+{
+  t_object    x_obj;
+  int         x_max;
+  char        *x_snd_able;
+  t_symbol    **x_send_entries;
+  t_symbol    *x_set;
+} t_list2send;
+
+static void list2send_list(t_list2send *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac >= 2) && (IS_A_FLOAT(av,0)))
+  {
+    int identifier_index = (int)atom_getintarg(0, ac, av);
+    
+    if(identifier_index < x->x_max)
+    {
+      if(x->x_snd_able[identifier_index])
+      {
+        t_symbol *sender = x->x_send_entries[identifier_index];
+        
+        if(sender->s_thing)
+        {
+          if(ac == 2)
+          {
+            if(IS_A_FLOAT(av, 1))
+              pd_float(sender->s_thing, atom_getfloatarg(1, ac, av));
+            else if(IS_A_SYMBOL(av, 1))
+              pd_symbol(sender->s_thing, atom_getsymbolarg(1, ac, av));
+          }
+          else
+            pd_list(sender->s_thing, &s_list, ac-1, av+1);
+        }
+      }
+    }
+  }
+}
+
+static void list2send_set(t_list2send *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac >= 2) && (IS_A_FLOAT(av,0)))
+  {
+    int identifier_index = (int)atom_getintarg(0, ac, av);
+    
+    if(identifier_index < x->x_max)
+    {
+      if(x->x_snd_able[identifier_index])
+      {
+        t_symbol *sender = x->x_send_entries[identifier_index];
+        
+        if(sender->s_thing)
+          typedmess(sender->s_thing, s, ac-1, av+1);
+      }
+    }
+  }
+}
+
+static void list2send_all(t_list2send *x, t_symbol *s, int ac, t_atom *av)
+{
+  int i, n=x->x_max;
+  
+  if(ac == n)
+  {
+    for(i=n-1; i>=0; i--)/*change*/
+    {
+      if(x->x_snd_able[i])
+      {
+        t_symbol *sender = x->x_send_entries[i];
+        
+        if(sender->s_thing)
+        {
+          if(IS_A_FLOAT(av, i))
+            pd_float(sender->s_thing, atom_getfloatarg(i, ac, av));
+          else if(IS_A_SYMBOL(av, i))
+            pd_symbol(sender->s_thing, atom_getsymbolarg(i, ac, av));
+        }
+      }
+    }
+  }
+}
+
+static void list2send_set_all(t_list2send *x, t_symbol *s, int ac, t_atom *av)
+{
+  int i, n=x->x_max;
+  
+  if(ac == n)
+  {
+    for(i=n-1; i>=0; i--)/*change*/
+    {
+      if(x->x_snd_able[i])
+      {
+        t_symbol *sender = x->x_send_entries[i];
+        
+        if(sender->s_thing)
+          typedmess(sender->s_thing, x->x_set, 1, av+i);
+      }
+    }
+  }
+}
+
+static void list2send_from(t_list2send *x, t_symbol *s, int ac, t_atom *av)
+{
+  int n=x->x_max;
+  
+  if(ac >= 1)
+  {
+    int i, j, beg=(int)atom_getintarg(0, ac, av);
+    
+    if((beg + ac - 1) <= n)
+    {
+      for(i=ac-1,j=beg+ac-2; i>=1; i--,j--)/*change*/
+      {
+        if(x->x_snd_able[j])
+        {
+          t_symbol *sender = x->x_send_entries[j];
+          
+          if(sender->s_thing)
+          {
+            if(IS_A_FLOAT(av, i))
+              pd_float(sender->s_thing, atom_getfloatarg(i, ac, av));
+            else if(IS_A_SYMBOL(av, i))
+              pd_symbol(sender->s_thing, atom_getsymbolarg(i, ac, av));
+          }
+        }
+      }
+    }
+  }
+}
+
+static void list2send_set_from(t_list2send *x, t_symbol *s, int ac, t_atom *av)
+{
+  int n=x->x_max;
+  
+  if(ac >= 1)
+  {
+    int i, j, beg=(int)atom_getintarg(0, ac, av);
+    
+    if((beg + ac - 1) <= n)
+    {
+      for(i=ac-1,j=beg+ac-2; i>=1; i--,j--)/*change*/
+      {
+        if(x->x_snd_able[j])
+        {
+          t_symbol *sender = x->x_send_entries[j];
+          
+          if(sender->s_thing)
+            typedmess(sender->s_thing, x->x_set, 1, av+i);
+        }
+      }
+    }
+  }
+}
+
+static void list2send_add(t_list2send *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac > 1) && (IS_A_FLOAT(av, 0)))
+  {
+    int identifier_index = (int)atom_getintarg(0, ac, av);
+    
+    if(identifier_index < x->x_max)
+    {
+      if(IS_A_SYMBOL(av, 1))
+      {
+        x->x_send_entries[identifier_index] = atom_getsymbolarg(1, ac, av);
+        x->x_snd_able[identifier_index] = 1;
+      }
+      else if(IS_A_FLOAT(av, 1))
+      {
+        char str[100];
+        
+        sprintf(str, "%g", atom_getfloatarg(1, ac, av));
+        x->x_send_entries[identifier_index] = gensym(str);
+        x->x_snd_able[identifier_index] = 1;
+      }
+    }
+  }
+}
+
+static void list2send_clear(t_list2send *x)
+{
+  int i, n=x->x_max;
+  
+  for(i=0; i<n; i++)
+  {
+    if(x->x_snd_able[i])
+      x->x_snd_able[i] = 0;
+  }
+}
+
+static void list2send_free(t_list2send *x)
+{
+  freebytes(x->x_snd_able, x->x_max * sizeof(char));
+  freebytes(x->x_send_entries, x->x_max * sizeof(t_symbol *));
+}
+
+static void *list2send_new(t_float fmax)
+{
+  t_list2send *x = (t_list2send *)pd_new(list2send_class);
+  int i, max = (int)fmax;
+  t_atom *ap;
+  
+  if(max <= 0)
+    max = 80;
+  x->x_max = max;
+  x->x_snd_able = (char *)getbytes(max * sizeof(char));
+  x->x_send_entries = (t_symbol **)getbytes(max * sizeof(t_symbol *));
+  for(i=0; i<max; i++)
+    x->x_snd_able[i] = 0;
+  x->x_set = gensym("set");
+  return (x);
+}
+
+void list2send_setup(void)
+{
+  list2send_class = class_new(gensym("list2send"), (t_newmethod)list2send_new,
+    (t_method)list2send_free, sizeof(t_list2send), 0, A_DEFFLOAT, 0);
+  class_addlist(list2send_class, list2send_list);
+  class_addmethod(list2send_class, (t_method)list2send_add, gensym("add"), A_GIMME, 0);
+  class_addmethod(list2send_class, (t_method)list2send_set, gensym("set"), A_GIMME, 0);
+  class_addmethod(list2send_class, (t_method)list2send_all, gensym("all"), A_GIMME, 0);
+  class_addmethod(list2send_class, (t_method)list2send_set_all, gensym("set_all"), A_GIMME, 0);
+  class_addmethod(list2send_class, (t_method)list2send_from, gensym("from"), A_GIMME, 0);
+  class_addmethod(list2send_class, (t_method)list2send_set_from, gensym("set_from"), A_GIMME, 0);
+  class_addmethod(list2send_class, (t_method)list2send_clear, gensym("clear"), 0);
+  class_sethelpsymbol(list2send_class, gensym("iemhelp/help-list2send"));
+}
diff --git a/src/iemlib2/mergefilename.c b/src/iemlib2/mergefilename.c
index eeccf56..8d22b5e 100644
--- a/src/iemlib2/mergefilename.c
+++ b/src/iemlib2/mergefilename.c
@@ -1,230 +1,230 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* -------------------------- mergefilename ------------------------------ */
-/* ------------ concatenates a list of symbols to one symbol ------------- */
-/* ----- between the linked symbols, there is a variable character ------- */
-
-static t_class *mergefilename_class;
-
-typedef struct _mergefilename
-{
-  t_object x_obj;
-  char     x_sep[2];
-} t_mergefilename;
-
-static void mergefilename_separator(t_mergefilename *x, t_symbol *s, int ac, t_atom *av)
-{
-  if(ac > 0)
-  {
-    if(IS_A_SYMBOL(av, 0))
-    {
-      if(strlen(av->a_w.w_symbol->s_name) == 1)
-        x->x_sep[0] = av->a_w.w_symbol->s_name[0];
-      else if(!strcmp(av->a_w.w_symbol->s_name, "backslash"))
-        x->x_sep[0] = '\\';
-      else if(!strcmp(av->a_w.w_symbol->s_name, "slash"))
-        x->x_sep[0] = '/';
-      else if(!strcmp(av->a_w.w_symbol->s_name, "blank"))
-        x->x_sep[0] = ' ';
-      else if(!strcmp(av->a_w.w_symbol->s_name, "space"))
-        x->x_sep[0] = ' ';
-      else if(!strcmp(av->a_w.w_symbol->s_name, "dollar"))
-        x->x_sep[0] = '$';
-      else if(!strcmp(av->a_w.w_symbol->s_name, "comma"))
-        x->x_sep[0] = ',';
-      else if(!strcmp(av->a_w.w_symbol->s_name, "semi"))
-        x->x_sep[0] = ';';
-      else if(!strcmp(av->a_w.w_symbol->s_name, "leftbrace"))
-        x->x_sep[0] = '{';
-      else if(!strcmp(av->a_w.w_symbol->s_name, "rightbrace"))
-        x->x_sep[0] = '}';
-      else
-        x->x_sep[0] = 0;
-    }
-    else if(IS_A_FLOAT(av, 0))
-    {
-      int i;
-      float f=fabs(av->a_w.w_float);
-      
-      while(f >= 10.0)
-        f *= 0.1;
-      i = (int)f;
-      x->x_sep[0] = (char)i + '0';
-    }
-  }
-  else
-    x->x_sep[0] = 0;
-}
-
-static void mergefilename_float(t_mergefilename *x, t_floatarg f)
-{
-  char fbuf[30];
-  
-  fbuf[0] = 0;
-  sprintf(fbuf, "%g", f);
-  outlet_symbol(x->x_obj.ob_outlet, gensym(fbuf));
-}
-
-static void mergefilename_symbol(t_mergefilename *x, t_symbol *s)
-{
-  outlet_symbol(x->x_obj.ob_outlet, s);
-}
-
-static void mergefilename_list(t_mergefilename *x, t_symbol *s, int ac, t_atom *av)
-{
-  char *cbeg, fbuf[30];
-  int size=400, i, len, cursize=0;
-  
-  cbeg = (char *)getbytes(size * sizeof(char));
-  cbeg[0] = 0;
-  if(ac > 0)
-  {
-    if(IS_A_SYMBOL(av, 0))
-    {
-      len = strlen(av->a_w.w_symbol->s_name);
-      if((len + cursize) >= (size-1))
-      {
-        cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
-        size = 2*(len + cursize);
-      }
-      strcat(cbeg, av->a_w.w_symbol->s_name);
-      cursize += len;
-    }
-    else if(IS_A_FLOAT(av, 0))
-    {
-      sprintf(fbuf, "%g", av->a_w.w_float);
-      len = strlen(fbuf);
-      if((len + cursize) >= (size-1))
-      {
-        cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
-        size = 2*(len + cursize);
-      }
-      strcat(cbeg, fbuf);
-      cursize += len;
-    }
-  }
-  
-  if(ac > 1)
-  {
-    for(i=1; i<ac; i++)
-    {
-      av++;
-      strcat(cbeg, x->x_sep);
-      if(IS_A_SYMBOL(av, 0))
-      {
-        len = strlen(av->a_w.w_symbol->s_name);
-        if((len + cursize) >= (size-1))
-        {
-          cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
-          size = 2*(len + cursize);
-        }
-        strcat(cbeg, av->a_w.w_symbol->s_name);
-        cursize += len;
-      }
-      else if(IS_A_FLOAT(av, 0))
-      {
-        sprintf(fbuf, "%g", av->a_w.w_float);
-        len = strlen(fbuf);
-        if((len + cursize) >= (size-1))
-        {
-          cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
-          size = 2*(len + cursize);
-        }
-        strcat(cbeg, fbuf);
-        cursize += len;
-      }
-    }
-  }
-  outlet_symbol(x->x_obj.ob_outlet, gensym(cbeg));
-  freebytes(cbeg, size * sizeof(char));
-}
-
-static void mergefilename_anything(t_mergefilename *x, t_symbol *s, int ac, t_atom *av)
-{
-  char *cbeg, fbuf[30];
-  int size=400, i, len, cursize=0;
-  
-  cbeg = (char *)getbytes(size * sizeof(char));
-  cbeg[0] = 0;
-  len = strlen(s->s_name);
-  if((len + cursize) >= (size-1))
-  {
-    cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
-    size = 2*(len + cursize);
-  }
-  strcat(cbeg, s->s_name);
-  cursize += len;
-  if(ac > 0)
-  {
-    for(i=0; i<ac; i++)
-    {
-      strcat(cbeg, x->x_sep);
-      if(IS_A_SYMBOL(av, 0))
-      {
-        len = strlen(av->a_w.w_symbol->s_name);
-        if((len + cursize) >= (size-1))
-        {
-          cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
-          size = 2*(len + cursize);
-        }
-        strcat(cbeg, av->a_w.w_symbol->s_name);
-        cursize += len;
-      }
-      else if(IS_A_FLOAT(av, 0))
-      {
-        sprintf(fbuf, "%g", av->a_w.w_float);
-        len = strlen(fbuf);
-        if((len + cursize) >= (size-1))
-        {
-          cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
-          size = 2*(len + cursize);
-        }
-        strcat(cbeg, fbuf);
-        cursize += len;
-      }
-      av++;
-    }
-  }
-  outlet_symbol(x->x_obj.ob_outlet, gensym(cbeg));
-  freebytes(cbeg, size * sizeof(char));
-}
-
-static void *mergefilename_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_mergefilename *x = (t_mergefilename *)pd_new(mergefilename_class);
-  
-  x->x_sep[0] = 0;
-  x->x_sep[1] = 0;
-  if(ac > 0)
-    mergefilename_separator(x, s, ac, av);
-  outlet_new(&x->x_obj, &s_symbol);
-  return (x);
-}
-
-void mergefilename_setup(void)
-{
-  mergefilename_class = class_new(gensym("mergefilename"), (t_newmethod)mergefilename_new,
-    0, sizeof(t_mergefilename), 0, A_GIMME, 0);
-  class_addmethod(mergefilename_class, (t_method)mergefilename_separator, gensym("separator"), A_GIMME, 0);
-  class_addmethod(mergefilename_class, (t_method)mergefilename_separator, gensym("sep"), A_GIMME, 0);
-  class_addfloat(mergefilename_class, mergefilename_float);
-  class_addsymbol(mergefilename_class, mergefilename_symbol);
-  class_addlist(mergefilename_class, mergefilename_list);
-  class_addanything(mergefilename_class, mergefilename_anything);
-  class_sethelpsymbol(mergefilename_class, gensym("iemhelp/help-mergefilename"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* -------------------------- mergefilename ------------------------------ */
+/* ------------ concatenates a list of symbols to one symbol ------------- */
+/* ----- between the linked symbols, there is a variable character ------- */
+
+static t_class *mergefilename_class;
+
+typedef struct _mergefilename
+{
+  t_object x_obj;
+  char     x_sep[2];
+} t_mergefilename;
+
+static void mergefilename_separator(t_mergefilename *x, t_symbol *s, int ac, t_atom *av)
+{
+  if(ac > 0)
+  {
+    if(IS_A_SYMBOL(av, 0))
+    {
+      if(strlen(av->a_w.w_symbol->s_name) == 1)
+        x->x_sep[0] = av->a_w.w_symbol->s_name[0];
+      else if(!strcmp(av->a_w.w_symbol->s_name, "backslash"))
+        x->x_sep[0] = '\\';
+      else if(!strcmp(av->a_w.w_symbol->s_name, "slash"))
+        x->x_sep[0] = '/';
+      else if(!strcmp(av->a_w.w_symbol->s_name, "blank"))
+        x->x_sep[0] = ' ';
+      else if(!strcmp(av->a_w.w_symbol->s_name, "space"))
+        x->x_sep[0] = ' ';
+      else if(!strcmp(av->a_w.w_symbol->s_name, "dollar"))
+        x->x_sep[0] = '$';
+      else if(!strcmp(av->a_w.w_symbol->s_name, "comma"))
+        x->x_sep[0] = ',';
+      else if(!strcmp(av->a_w.w_symbol->s_name, "semi"))
+        x->x_sep[0] = ';';
+      else if(!strcmp(av->a_w.w_symbol->s_name, "leftbrace"))
+        x->x_sep[0] = '{';
+      else if(!strcmp(av->a_w.w_symbol->s_name, "rightbrace"))
+        x->x_sep[0] = '}';
+      else
+        x->x_sep[0] = 0;
+    }
+    else if(IS_A_FLOAT(av, 0))
+    {
+      int i;
+      float f=fabs(av->a_w.w_float);
+      
+      while(f >= 10.0)
+        f *= 0.1;
+      i = (int)f;
+      x->x_sep[0] = (char)i + '0';
+    }
+  }
+  else
+    x->x_sep[0] = 0;
+}
+
+static void mergefilename_float(t_mergefilename *x, t_floatarg f)
+{
+  char fbuf[30];
+  
+  fbuf[0] = 0;
+  sprintf(fbuf, "%g", f);
+  outlet_symbol(x->x_obj.ob_outlet, gensym(fbuf));
+}
+
+static void mergefilename_symbol(t_mergefilename *x, t_symbol *s)
+{
+  outlet_symbol(x->x_obj.ob_outlet, s);
+}
+
+static void mergefilename_list(t_mergefilename *x, t_symbol *s, int ac, t_atom *av)
+{
+  char *cbeg, fbuf[30];
+  int size=400, i, len, cursize=0;
+  
+  cbeg = (char *)getbytes(size * sizeof(char));
+  cbeg[0] = 0;
+  if(ac > 0)
+  {
+    if(IS_A_SYMBOL(av, 0))
+    {
+      len = strlen(av->a_w.w_symbol->s_name);
+      if((len + cursize) >= (size-1))
+      {
+        cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
+        size = 2*(len + cursize);
+      }
+      strcat(cbeg, av->a_w.w_symbol->s_name);
+      cursize += len;
+    }
+    else if(IS_A_FLOAT(av, 0))
+    {
+      sprintf(fbuf, "%g", av->a_w.w_float);
+      len = strlen(fbuf);
+      if((len + cursize) >= (size-1))
+      {
+        cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
+        size = 2*(len + cursize);
+      }
+      strcat(cbeg, fbuf);
+      cursize += len;
+    }
+  }
+  
+  if(ac > 1)
+  {
+    for(i=1; i<ac; i++)
+    {
+      av++;
+      strcat(cbeg, x->x_sep);
+      if(IS_A_SYMBOL(av, 0))
+      {
+        len = strlen(av->a_w.w_symbol->s_name);
+        if((len + cursize) >= (size-1))
+        {
+          cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
+          size = 2*(len + cursize);
+        }
+        strcat(cbeg, av->a_w.w_symbol->s_name);
+        cursize += len;
+      }
+      else if(IS_A_FLOAT(av, 0))
+      {
+        sprintf(fbuf, "%g", av->a_w.w_float);
+        len = strlen(fbuf);
+        if((len + cursize) >= (size-1))
+        {
+          cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
+          size = 2*(len + cursize);
+        }
+        strcat(cbeg, fbuf);
+        cursize += len;
+      }
+    }
+  }
+  outlet_symbol(x->x_obj.ob_outlet, gensym(cbeg));
+  freebytes(cbeg, size * sizeof(char));
+}
+
+static void mergefilename_anything(t_mergefilename *x, t_symbol *s, int ac, t_atom *av)
+{
+  char *cbeg, fbuf[30];
+  int size=400, i, len, cursize=0;
+  
+  cbeg = (char *)getbytes(size * sizeof(char));
+  cbeg[0] = 0;
+  len = strlen(s->s_name);
+  if((len + cursize) >= (size-1))
+  {
+    cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
+    size = 2*(len + cursize);
+  }
+  strcat(cbeg, s->s_name);
+  cursize += len;
+  if(ac > 0)
+  {
+    for(i=0; i<ac; i++)
+    {
+      strcat(cbeg, x->x_sep);
+      if(IS_A_SYMBOL(av, 0))
+      {
+        len = strlen(av->a_w.w_symbol->s_name);
+        if((len + cursize) >= (size-1))
+        {
+          cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
+          size = 2*(len + cursize);
+        }
+        strcat(cbeg, av->a_w.w_symbol->s_name);
+        cursize += len;
+      }
+      else if(IS_A_FLOAT(av, 0))
+      {
+        sprintf(fbuf, "%g", av->a_w.w_float);
+        len = strlen(fbuf);
+        if((len + cursize) >= (size-1))
+        {
+          cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char));
+          size = 2*(len + cursize);
+        }
+        strcat(cbeg, fbuf);
+        cursize += len;
+      }
+      av++;
+    }
+  }
+  outlet_symbol(x->x_obj.ob_outlet, gensym(cbeg));
+  freebytes(cbeg, size * sizeof(char));
+}
+
+static void *mergefilename_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_mergefilename *x = (t_mergefilename *)pd_new(mergefilename_class);
+  
+  x->x_sep[0] = 0;
+  x->x_sep[1] = 0;
+  if(ac > 0)
+    mergefilename_separator(x, s, ac, av);
+  outlet_new(&x->x_obj, &s_symbol);
+  return (x);
+}
+
+void mergefilename_setup(void)
+{
+  mergefilename_class = class_new(gensym("mergefilename"), (t_newmethod)mergefilename_new,
+    0, sizeof(t_mergefilename), 0, A_GIMME, 0);
+  class_addmethod(mergefilename_class, (t_method)mergefilename_separator, gensym("separator"), A_GIMME, 0);
+  class_addmethod(mergefilename_class, (t_method)mergefilename_separator, gensym("sep"), A_GIMME, 0);
+  class_addfloat(mergefilename_class, mergefilename_float);
+  class_addsymbol(mergefilename_class, mergefilename_symbol);
+  class_addlist(mergefilename_class, mergefilename_list);
+  class_addanything(mergefilename_class, mergefilename_anything);
+  class_sethelpsymbol(mergefilename_class, gensym("iemhelp/help-mergefilename"));
+}
diff --git a/src/iemlib2/modulo_counter.c b/src/iemlib2/modulo_counter.c
index 309b5a0..600f74e 100644
--- a/src/iemlib2/modulo_counter.c
+++ b/src/iemlib2/modulo_counter.c
@@ -1,91 +1,91 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* ---------------- modulo-counter. ----------------- */
-/* -------- counter increments if input a bang ------ */
-/* -------- output is a modulo function. ------------ */
-
-static t_class *modulo_counter_class;
-
-typedef struct _modulo_counter
-{
-  t_object x_obj;
-  int      x_max;
-  int      x_cur;
-} t_modulo_counter;
-
-static void modulo_counter_bang(t_modulo_counter *x)
-{
-  outlet_float(x->x_obj.ob_outlet, x->x_cur++);
-  x->x_cur = x->x_cur % x->x_max;
-}
-
-static void modulo_counter_float(t_modulo_counter *x, t_float max)
-{
-  int i = (int)max;
-  
-  if(i < 1)
-    i = 1;
-  if(x->x_cur >= i)
-    x->x_cur = i - 1;
-  x->x_max = i;
-}
-
-static void modulo_counter_ft1(t_modulo_counter *x, t_float set_init)
-{
-  int i = (int)set_init;
-  
-  if(i < 0)
-    i = 0;
-  if(i >= x->x_max)
-    i = x->x_max - 1;
-  x->x_cur = i;
-}
-
-static void *modulo_counter_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_modulo_counter *x = (t_modulo_counter *)pd_new(modulo_counter_class);
-  int max = 1, cur = 0;
-  
-  if((ac > 0) && IS_A_FLOAT(av, 0))
-    max = atom_getintarg(0, ac, av);
-  if((ac > 1) && IS_A_FLOAT(av, 1))
-    cur = atom_getintarg(1, ac, av);
-  if(max < 1)
-    x->x_max = 1;
-  else
-    x->x_max = max;
-  if(cur < 0)
-    cur = 0;
-  if(cur >= x->x_max)
-    cur = x->x_max - 1;
-  x->x_cur = cur;
-  outlet_new(&x->x_obj, &s_float);
-  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
-  return (x);
-}
-
-void modulo_counter_setup(void)
-{
-  modulo_counter_class = class_new(gensym("modulo_counter"),
-    (t_newmethod)modulo_counter_new, 0,
-    sizeof(t_modulo_counter), 0, A_GIMME, 0);
-  class_addbang(modulo_counter_class, (t_method)modulo_counter_bang);
-  class_addfloat(modulo_counter_class, (t_method)modulo_counter_float);
-  class_addmethod(modulo_counter_class, (t_method)modulo_counter_ft1, gensym("ft1"), A_FLOAT, 0);
-  class_sethelpsymbol(modulo_counter_class, gensym("iemhelp/help-modulo_counter"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* ---------------- modulo-counter. ----------------- */
+/* -------- counter increments if input a bang ------ */
+/* -------- output is a modulo function. ------------ */
+
+static t_class *modulo_counter_class;
+
+typedef struct _modulo_counter
+{
+  t_object x_obj;
+  int      x_max;
+  int      x_cur;
+} t_modulo_counter;
+
+static void modulo_counter_bang(t_modulo_counter *x)
+{
+  outlet_float(x->x_obj.ob_outlet, x->x_cur++);
+  x->x_cur = x->x_cur % x->x_max;
+}
+
+static void modulo_counter_float(t_modulo_counter *x, t_float max)
+{
+  int i = (int)max;
+  
+  if(i < 1)
+    i = 1;
+  if(x->x_cur >= i)
+    x->x_cur = i - 1;
+  x->x_max = i;
+}
+
+static void modulo_counter_ft1(t_modulo_counter *x, t_float set_init)
+{
+  int i = (int)set_init;
+  
+  if(i < 0)
+    i = 0;
+  if(i >= x->x_max)
+    i = x->x_max - 1;
+  x->x_cur = i;
+}
+
+static void *modulo_counter_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_modulo_counter *x = (t_modulo_counter *)pd_new(modulo_counter_class);
+  int max = 1, cur = 0;
+  
+  if((ac > 0) && IS_A_FLOAT(av, 0))
+    max = atom_getintarg(0, ac, av);
+  if((ac > 1) && IS_A_FLOAT(av, 1))
+    cur = atom_getintarg(1, ac, av);
+  if(max < 1)
+    x->x_max = 1;
+  else
+    x->x_max = max;
+  if(cur < 0)
+    cur = 0;
+  if(cur >= x->x_max)
+    cur = x->x_max - 1;
+  x->x_cur = cur;
+  outlet_new(&x->x_obj, &s_float);
+  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
+  return (x);
+}
+
+void modulo_counter_setup(void)
+{
+  modulo_counter_class = class_new(gensym("modulo_counter"),
+    (t_newmethod)modulo_counter_new, 0,
+    sizeof(t_modulo_counter), 0, A_GIMME, 0);
+  class_addbang(modulo_counter_class, (t_method)modulo_counter_bang);
+  class_addfloat(modulo_counter_class, (t_method)modulo_counter_float);
+  class_addmethod(modulo_counter_class, (t_method)modulo_counter_ft1, gensym("ft1"), A_FLOAT, 0);
+  class_sethelpsymbol(modulo_counter_class, gensym("iemhelp/help-modulo_counter"));
+}
diff --git a/src/iemlib2/parentdollarzero.c b/src/iemlib2/parentdollarzero.c
index 947d87e..477c2c5 100644
--- a/src/iemlib2/parentdollarzero.c
+++ b/src/iemlib2/parentdollarzero.c
@@ -1,60 +1,60 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "g_canvas.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* -------------- parentdollarzero --------------- */
-/* -- receives the $0 value of the parent canvas --*/
-
-static t_class *parentdollarzero_class;
-
-typedef struct _parentdollarzero
-{
-  t_object     x_obj;
-  t_symbol     *s_parent_unique;
-  unsigned int x_is_there_a_parent;
-} t_parentdollarzero;
-
-static void parentdollarzero_bang(t_parentdollarzero *x)
-{
-  if(x->x_is_there_a_parent)
-    outlet_symbol(x->x_obj.ob_outlet, x->s_parent_unique);
-}
-
-static void *parentdollarzero_new(void)
-{
-  t_parentdollarzero *x = (t_parentdollarzero *)pd_new(parentdollarzero_class);
-  t_glist *glist = (t_glist *)canvas_getcurrent();
-  t_canvas *this_canvas = glist_getcanvas(glist);
-
-  x->x_is_there_a_parent = (unsigned int)this_canvas->gl_owner;
-
-  if(x->x_is_there_a_parent)
-    x->s_parent_unique = canvas_realizedollar((t_canvas *)this_canvas->gl_owner, gensym("$0"));
-  else
-    x->s_parent_unique = gensym("");
-  outlet_new(&x->x_obj, &s_symbol);
-  return (x);
-}
-
-void parentdollarzero_setup(void)
-{
-  parentdollarzero_class = class_new(gensym("parentdollarzero"), (t_newmethod)parentdollarzero_new,
-           0, sizeof(t_parentdollarzero), 0, 0);
-  class_addcreator((t_newmethod)parentdollarzero_new, gensym("parent$0"), 0);
-  class_addbang(parentdollarzero_class, (t_method)parentdollarzero_bang);
-  class_sethelpsymbol(parentdollarzero_class, gensym("iemhelp/help-parentdollarzero"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "g_canvas.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* -------------- parentdollarzero --------------- */
+/* -- receives the $0 value of the parent canvas --*/
+
+static t_class *parentdollarzero_class;
+
+typedef struct _parentdollarzero
+{
+  t_object     x_obj;
+  t_symbol     *s_parent_unique;
+  unsigned int x_is_there_a_parent;
+} t_parentdollarzero;
+
+static void parentdollarzero_bang(t_parentdollarzero *x)
+{
+  if(x->x_is_there_a_parent)
+    outlet_symbol(x->x_obj.ob_outlet, x->s_parent_unique);
+}
+
+static void *parentdollarzero_new(void)
+{
+  t_parentdollarzero *x = (t_parentdollarzero *)pd_new(parentdollarzero_class);
+  t_glist *glist = (t_glist *)canvas_getcurrent();
+  t_canvas *this_canvas = glist_getcanvas(glist);
+
+  x->x_is_there_a_parent = (unsigned int)this_canvas->gl_owner;
+
+  if(x->x_is_there_a_parent)
+    x->s_parent_unique = canvas_realizedollar((t_canvas *)this_canvas->gl_owner, gensym("$0"));
+  else
+    x->s_parent_unique = gensym("");
+  outlet_new(&x->x_obj, &s_symbol);
+  return (x);
+}
+
+void parentdollarzero_setup(void)
+{
+  parentdollarzero_class = class_new(gensym("parentdollarzero"), (t_newmethod)parentdollarzero_new,
+           0, sizeof(t_parentdollarzero), 0, 0);
+  class_addcreator((t_newmethod)parentdollarzero_new, gensym("parent$0"), 0);
+  class_addbang(parentdollarzero_class, (t_method)parentdollarzero_bang);
+  class_sethelpsymbol(parentdollarzero_class, gensym("iemhelp/help-parentdollarzero"));
+}
diff --git a/src/iemlib2/post_netreceive.c b/src/iemlib2/post_netreceive.c
index c626515..35dcaf2 100644
--- a/src/iemlib2/post_netreceive.c
+++ b/src/iemlib2/post_netreceive.c
@@ -1,241 +1,241 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2004 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* ------------------------ post_netreceive ---------------------------- */
-static t_class *post_netreceive_class;
-
-typedef struct _post_netreceive
-{
-  t_object   x_obj;
-  int        x_max_send_entries;
-  int        x_min_send_entries;
-  char       *x_snd_able;
-  t_symbol   **x_send_entries;
-  t_symbol   **x_plus_entries;
-  t_symbol   *x_set;
-  t_atom     x_at[2];
-  t_atom     *x_atbuf;
-  t_symbol   *x_send;
-  t_symbol   *x_setall;
-} t_post_netreceive;
-
-static void post_netreceive_list(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av)
-{
-  int identifier_index = (int)atom_getintarg(0, ac, av);
-  t_symbol *sender=0;
-  
-  if((identifier_index >= x->x_min_send_entries) && (identifier_index < x->x_max_send_entries))
-  {
-    if(x->x_snd_able[identifier_index] == 1)
-    {
-      sender = x->x_send_entries[identifier_index];
-      if(sender->s_thing)
-      {
-        if(ac == 2)
-          pd_float(sender->s_thing, atom_getfloatarg(1, ac, av));
-        else
-          pd_list(sender->s_thing, &s_list, ac-1, av+1);
-      }
-    }
-    else if(x->x_snd_able[identifier_index] == 2)
-    {
-      sender = x->x_send_entries[identifier_index];
-      if(sender->s_thing)
-      {
-        typedmess(sender->s_thing, x->x_plus_entries[identifier_index], ac-1, av+1);
-      }
-    }
-    if(IS_A_FLOAT(av,1))
-      SETFLOAT(x->x_atbuf+identifier_index+1, atom_getfloatarg(1, ac, av));
-    else if(IS_A_SYMBOL(av,1))
-      SETSYMBOL(x->x_atbuf+identifier_index+1, atom_getsymbolarg(1, ac, av));
-  }
-}
-
-/*static void post_netreceive_set_item_name(t_post_netreceive *x, t_symbol *snd, t_float findex)
-{
-int index = (int)findex;
-
-  if((index >= 0) && (index < x->x_max_send_entries))
-  {
-  x->x_send_entries[index] = snd;
-  x->x_snd_able[index] = 1;
-  }
-}*/
-
-static void post_netreceive_set_item_name(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av)
-{
-  if(ac == 2)
-  {
-    int identifier_index = (int)atom_getintarg(1, ac, av);
-    
-    if((identifier_index >= x->x_min_send_entries) && (identifier_index < x->x_max_send_entries))
-    {
-      x->x_send_entries[identifier_index] = atom_getsymbolarg(0, ac, av);
-      x->x_snd_able[identifier_index] = 1;
-    }
-  }
-  else if(ac >= 3)
-  {
-    int identifier_index = (int)atom_getintarg(2, ac, av);
-    
-    if((identifier_index >= 0) && (identifier_index < x->x_max_send_entries))
-    {
-      x->x_send_entries[identifier_index] = atom_getsymbolarg(1, ac, av);
-      x->x_snd_able[identifier_index] = 2;
-      x->x_plus_entries[identifier_index] = atom_getsymbolarg(0, ac, av);
-    }
-  }
-}
-
-static void post_netreceive_all_parameters(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av)
-{
-  int i, min = x->x_min_send_entries, max = x->x_max_send_entries;
-  t_symbol *sendname=0;
-  
-  if(min > ac)
-    min = ac;
-  if(max > ac)
-    max = ac;
-  for(i=min; i<max; i++)
-  {
-    if(x->x_snd_able[i] == 1)
-    {
-      sendname = x->x_send_entries[i];
-      if(sendname->s_thing)
-      {
-        pd_float(sendname->s_thing, atom_getfloatarg(i, ac, av));
-      }
-    }
-    else if(x->x_snd_able[i] == 2)
-    {
-      sendname = x->x_send_entries[i];
-      if(sendname->s_thing)
-      {
-        typedmess(sendname->s_thing, x->x_plus_entries[i], 1, av+i);
-      }
-    }
-    if(IS_A_FLOAT(av,i))
-      SETFLOAT(x->x_atbuf+i+1, atom_getfloatarg(i, ac, av));
-    else if(IS_A_SYMBOL(av,i))
-      SETSYMBOL(x->x_atbuf+i+1, atom_getsymbolarg(i, ac, av));
-  }
-}
-
-static void post_netreceive_set_all_parameters(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av)
-{
-  int i, min = x->x_min_send_entries, max = x->x_max_send_entries;
-  t_symbol *sendname;
-  
-  if(min > ac)
-    min = ac;
-  if(max > ac)
-    max = ac;
-  for(i=min; i<max; i++)
-  {
-    if(x->x_snd_able[i])
-    {
-      sendname = x->x_send_entries[i];
-      if(sendname->s_thing)
-      {
-        typedmess(sendname->s_thing, x->x_set, 1, av+i);
-      }
-    }
-  }
-}
-
-static void post_netreceive_clear(t_post_netreceive *x)
-{
-  int i, max = x->x_max_send_entries;
-  
-  for(i=0; i<max; i++)
-  {
-    if(x->x_snd_able[i])
-    {
-      x->x_snd_able[i] = 0;
-    }
-  }
-}
-
-static void post_netreceive_fetch_all_parameters(t_post_netreceive *x, t_float nr_sended_para)
-{
-  int nrsp=(int)nr_sended_para;
-  t_atom *ap=x->x_atbuf+x->x_min_send_entries;
-  
-  if(nrsp <= 0)
-    nrsp = 1;
-  if(nrsp > (x->x_max_send_entries - x->x_min_send_entries))
-    nrsp = (x->x_max_send_entries - x->x_min_send_entries);
-  outlet_anything(x->x_obj.ob_outlet, x->x_send, nrsp+1, x->x_atbuf);
-}
-
-static void post_netreceive_free(t_post_netreceive *x)
-{
-  freebytes(x->x_snd_able, x->x_max_send_entries * sizeof(char));
-  freebytes(x->x_send_entries, x->x_max_send_entries * sizeof(t_symbol *));
-  freebytes(x->x_atbuf, (x->x_max_send_entries+2) * sizeof(t_atom));
-  freebytes(x->x_plus_entries, x->x_max_send_entries * sizeof(t_symbol *));
-}
-
-static void *post_netreceive_new(t_float fmin, t_float fmax)
-{
-  t_post_netreceive *x = (t_post_netreceive *)pd_new(post_netreceive_class);
-  int i, min = (int)fmin, max = (int)fmax;
-  t_atom *ap;
-  
-  if(min < 0)
-    min = 0;
-  if(max <= 0)
-    max = 80;
-  x->x_min_send_entries = min;
-  x->x_max_send_entries = max;
-  x->x_atbuf = (t_atom *)getbytes((x->x_max_send_entries+2) * sizeof(t_atom));
-  x->x_snd_able = (char *)getbytes(x->x_max_send_entries * sizeof(char));
-  x->x_send_entries = (t_symbol **)getbytes(x->x_max_send_entries * sizeof(t_symbol *));
-  x->x_plus_entries = (t_symbol **)getbytes(x->x_max_send_entries * sizeof(t_symbol *));
-  x->x_set = gensym("set");
-  x->x_setall = gensym("set_all_parameters");
-  x->x_send = gensym("send");
-  ap = x->x_atbuf;
-  SETSYMBOL(ap, x->x_setall);
-  ap++;
-  for(i=1; i<=max; i++)
-  {
-    SETFLOAT(ap, 0.0);
-    ap++;
-  }
-  for(i=0; i<max; i++)
-  {
-    x->x_snd_able[i] = 0;
-    x->x_plus_entries[i] = x->x_set;
-  }
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void post_netreceive_setup(void)
-{
-  post_netreceive_class = class_new(gensym("post_netreceive"), (t_newmethod)post_netreceive_new,
-    (t_method)post_netreceive_free, sizeof(t_post_netreceive), 0, A_DEFFLOAT, A_DEFFLOAT, 0);
-  class_addlist(post_netreceive_class, post_netreceive_list);
-  class_addmethod(post_netreceive_class, (t_method)post_netreceive_set_item_name, gensym("set_item_name"), A_GIMME, 0);
-  class_addmethod(post_netreceive_class, (t_method)post_netreceive_all_parameters, gensym("all_parameters"), A_GIMME, 0);
-  class_addmethod(post_netreceive_class, (t_method)post_netreceive_set_all_parameters, gensym("set_all_parameters"), A_GIMME, 0);
-  class_addmethod(post_netreceive_class, (t_method)post_netreceive_fetch_all_parameters, gensym("fetch_all_parameters"), A_DEFFLOAT, 0);
-  class_addmethod(post_netreceive_class, (t_method)post_netreceive_clear, gensym("clear"), 0);
-  class_sethelpsymbol(post_netreceive_class, gensym("iemhelp/help-post_netreceive"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2004 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* ------------------------ post_netreceive ---------------------------- */
+static t_class *post_netreceive_class;
+
+typedef struct _post_netreceive
+{
+  t_object   x_obj;
+  int        x_max_send_entries;
+  int        x_min_send_entries;
+  char       *x_snd_able;
+  t_symbol   **x_send_entries;
+  t_symbol   **x_plus_entries;
+  t_symbol   *x_set;
+  t_atom     x_at[2];
+  t_atom     *x_atbuf;
+  t_symbol   *x_send;
+  t_symbol   *x_setall;
+} t_post_netreceive;
+
+static void post_netreceive_list(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av)
+{
+  int identifier_index = (int)atom_getintarg(0, ac, av);
+  t_symbol *sender=0;
+  
+  if((identifier_index >= x->x_min_send_entries) && (identifier_index < x->x_max_send_entries))
+  {
+    if(x->x_snd_able[identifier_index] == 1)
+    {
+      sender = x->x_send_entries[identifier_index];
+      if(sender->s_thing)
+      {
+        if(ac == 2)
+          pd_float(sender->s_thing, atom_getfloatarg(1, ac, av));
+        else
+          pd_list(sender->s_thing, &s_list, ac-1, av+1);
+      }
+    }
+    else if(x->x_snd_able[identifier_index] == 2)
+    {
+      sender = x->x_send_entries[identifier_index];
+      if(sender->s_thing)
+      {
+        typedmess(sender->s_thing, x->x_plus_entries[identifier_index], ac-1, av+1);
+      }
+    }
+    if(IS_A_FLOAT(av,1))
+      SETFLOAT(x->x_atbuf+identifier_index+1, atom_getfloatarg(1, ac, av));
+    else if(IS_A_SYMBOL(av,1))
+      SETSYMBOL(x->x_atbuf+identifier_index+1, atom_getsymbolarg(1, ac, av));
+  }
+}
+
+/*static void post_netreceive_set_item_name(t_post_netreceive *x, t_symbol *snd, t_float findex)
+{
+int index = (int)findex;
+
+  if((index >= 0) && (index < x->x_max_send_entries))
+  {
+  x->x_send_entries[index] = snd;
+  x->x_snd_able[index] = 1;
+  }
+}*/
+
+static void post_netreceive_set_item_name(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av)
+{
+  if(ac == 2)
+  {
+    int identifier_index = (int)atom_getintarg(1, ac, av);
+    
+    if((identifier_index >= x->x_min_send_entries) && (identifier_index < x->x_max_send_entries))
+    {
+      x->x_send_entries[identifier_index] = atom_getsymbolarg(0, ac, av);
+      x->x_snd_able[identifier_index] = 1;
+    }
+  }
+  else if(ac >= 3)
+  {
+    int identifier_index = (int)atom_getintarg(2, ac, av);
+    
+    if((identifier_index >= 0) && (identifier_index < x->x_max_send_entries))
+    {
+      x->x_send_entries[identifier_index] = atom_getsymbolarg(1, ac, av);
+      x->x_snd_able[identifier_index] = 2;
+      x->x_plus_entries[identifier_index] = atom_getsymbolarg(0, ac, av);
+    }
+  }
+}
+
+static void post_netreceive_all_parameters(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av)
+{
+  int i, min = x->x_min_send_entries, max = x->x_max_send_entries;
+  t_symbol *sendname=0;
+  
+  if(min > ac)
+    min = ac;
+  if(max > ac)
+    max = ac;
+  for(i=min; i<max; i++)
+  {
+    if(x->x_snd_able[i] == 1)
+    {
+      sendname = x->x_send_entries[i];
+      if(sendname->s_thing)
+      {
+        pd_float(sendname->s_thing, atom_getfloatarg(i, ac, av));
+      }
+    }
+    else if(x->x_snd_able[i] == 2)
+    {
+      sendname = x->x_send_entries[i];
+      if(sendname->s_thing)
+      {
+        typedmess(sendname->s_thing, x->x_plus_entries[i], 1, av+i);
+      }
+    }
+    if(IS_A_FLOAT(av,i))
+      SETFLOAT(x->x_atbuf+i+1, atom_getfloatarg(i, ac, av));
+    else if(IS_A_SYMBOL(av,i))
+      SETSYMBOL(x->x_atbuf+i+1, atom_getsymbolarg(i, ac, av));
+  }
+}
+
+static void post_netreceive_set_all_parameters(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av)
+{
+  int i, min = x->x_min_send_entries, max = x->x_max_send_entries;
+  t_symbol *sendname;
+  
+  if(min > ac)
+    min = ac;
+  if(max > ac)
+    max = ac;
+  for(i=min; i<max; i++)
+  {
+    if(x->x_snd_able[i])
+    {
+      sendname = x->x_send_entries[i];
+      if(sendname->s_thing)
+      {
+        typedmess(sendname->s_thing, x->x_set, 1, av+i);
+      }
+    }
+  }
+}
+
+static void post_netreceive_clear(t_post_netreceive *x)
+{
+  int i, max = x->x_max_send_entries;
+  
+  for(i=0; i<max; i++)
+  {
+    if(x->x_snd_able[i])
+    {
+      x->x_snd_able[i] = 0;
+    }
+  }
+}
+
+static void post_netreceive_fetch_all_parameters(t_post_netreceive *x, t_float nr_sended_para)
+{
+  int nrsp=(int)nr_sended_para;
+  t_atom *ap=x->x_atbuf+x->x_min_send_entries;
+  
+  if(nrsp <= 0)
+    nrsp = 1;
+  if(nrsp > (x->x_max_send_entries - x->x_min_send_entries))
+    nrsp = (x->x_max_send_entries - x->x_min_send_entries);
+  outlet_anything(x->x_obj.ob_outlet, x->x_send, nrsp+1, x->x_atbuf);
+}
+
+static void post_netreceive_free(t_post_netreceive *x)
+{
+  freebytes(x->x_snd_able, x->x_max_send_entries * sizeof(char));
+  freebytes(x->x_send_entries, x->x_max_send_entries * sizeof(t_symbol *));
+  freebytes(x->x_atbuf, (x->x_max_send_entries+2) * sizeof(t_atom));
+  freebytes(x->x_plus_entries, x->x_max_send_entries * sizeof(t_symbol *));
+}
+
+static void *post_netreceive_new(t_float fmin, t_float fmax)
+{
+  t_post_netreceive *x = (t_post_netreceive *)pd_new(post_netreceive_class);
+  int i, min = (int)fmin, max = (int)fmax;
+  t_atom *ap;
+  
+  if(min < 0)
+    min = 0;
+  if(max <= 0)
+    max = 80;
+  x->x_min_send_entries = min;
+  x->x_max_send_entries = max;
+  x->x_atbuf = (t_atom *)getbytes((x->x_max_send_entries+2) * sizeof(t_atom));
+  x->x_snd_able = (char *)getbytes(x->x_max_send_entries * sizeof(char));
+  x->x_send_entries = (t_symbol **)getbytes(x->x_max_send_entries * sizeof(t_symbol *));
+  x->x_plus_entries = (t_symbol **)getbytes(x->x_max_send_entries * sizeof(t_symbol *));
+  x->x_set = gensym("set");
+  x->x_setall = gensym("set_all_parameters");
+  x->x_send = gensym("send");
+  ap = x->x_atbuf;
+  SETSYMBOL(ap, x->x_setall);
+  ap++;
+  for(i=1; i<=max; i++)
+  {
+    SETFLOAT(ap, 0.0);
+    ap++;
+  }
+  for(i=0; i<max; i++)
+  {
+    x->x_snd_able[i] = 0;
+    x->x_plus_entries[i] = x->x_set;
+  }
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void post_netreceive_setup(void)
+{
+  post_netreceive_class = class_new(gensym("post_netreceive"), (t_newmethod)post_netreceive_new,
+    (t_method)post_netreceive_free, sizeof(t_post_netreceive), 0, A_DEFFLOAT, A_DEFFLOAT, 0);
+  class_addlist(post_netreceive_class, post_netreceive_list);
+  class_addmethod(post_netreceive_class, (t_method)post_netreceive_set_item_name, gensym("set_item_name"), A_GIMME, 0);
+  class_addmethod(post_netreceive_class, (t_method)post_netreceive_all_parameters, gensym("all_parameters"), A_GIMME, 0);
+  class_addmethod(post_netreceive_class, (t_method)post_netreceive_set_all_parameters, gensym("set_all_parameters"), A_GIMME, 0);
+  class_addmethod(post_netreceive_class, (t_method)post_netreceive_fetch_all_parameters, gensym("fetch_all_parameters"), A_DEFFLOAT, 0);
+  class_addmethod(post_netreceive_class, (t_method)post_netreceive_clear, gensym("clear"), 0);
+  class_sethelpsymbol(post_netreceive_class, gensym("iemhelp/help-post_netreceive"));
+}
diff --git a/src/iemlib2/pre_inlet.c b/src/iemlib2/pre_inlet.c
index b7ad159..4f597c5 100644
--- a/src/iemlib2/pre_inlet.c
+++ b/src/iemlib2/pre_inlet.c
@@ -1,99 +1,99 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* ------------------------ pre_inlet ---------------------------- */
-/* --------- any incoming message produce additionally a --------- */
-/* ----- special anything message at output, followed by the ----- */
-/* --- original message. this pre message contains a selector ---- */
-/* ---- symbol made of one character of the m-th entry of the ---- */
-/* --- ASCII-table, followed by one float atom list entry with --- */
-/* ---- with value n. "m" and "n" are the 2 initial arguments ---- */
-
-static t_class *pre_inlet_class;
-
-typedef struct _pre_inlet
-{
-  t_object    x_obj;
-  t_atom      x_at;
-  t_symbol    *x_sym;
-} t_pre_inlet;
-
-static void pre_inlet_bang(t_pre_inlet *x)
-{
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
-  outlet_bang(x->x_obj.ob_outlet);
-}
-
-static void pre_inlet_float(t_pre_inlet *x, t_float f)
-{
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
-  outlet_float(x->x_obj.ob_outlet, f);
-}
-
-static void pre_inlet_symbol(t_pre_inlet *x, t_symbol *s)
-{
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
-  outlet_symbol(x->x_obj.ob_outlet, s);
-}
-
-static void pre_inlet_pointer(t_pre_inlet *x, t_gpointer *gp)
-{
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
-  outlet_pointer(x->x_obj.ob_outlet, gp);
-}
-
-static void pre_inlet_list(t_pre_inlet *x, t_symbol *s, int ac, t_atom *av)
-{
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
-  outlet_list(x->x_obj.ob_outlet, s, ac, av);
-}
-
-static void pre_inlet_anything(t_pre_inlet *x, t_symbol *s, int ac, t_atom *av)
-{
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
-  outlet_anything(x->x_obj.ob_outlet, s, ac, av);
-}
-
-static void pre_inlet_free(t_pre_inlet *x)
-{
-}
-
-static void *pre_inlet_new(t_floatarg fsym, t_floatarg finlet)
-{
-  t_pre_inlet *x = (t_pre_inlet *)pd_new(pre_inlet_class);
-  char str[2];
-  
-  SETFLOAT(&x->x_at, finlet);
-  str[0] = (char)((int)(fsym)&0xff);
-  str[1] = 0;
-  x->x_sym = gensym(str);
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void pre_inlet_setup(void)
-{
-  pre_inlet_class = class_new(gensym("pre_inlet"), (t_newmethod)pre_inlet_new,
-    (t_method)pre_inlet_free, sizeof(t_pre_inlet), 0, A_DEFFLOAT, A_DEFFLOAT, 0);
-  class_addbang(pre_inlet_class, (t_method)pre_inlet_bang);
-  class_addfloat(pre_inlet_class, (t_method)pre_inlet_float);
-  class_addsymbol(pre_inlet_class, pre_inlet_symbol);
-  class_addpointer(pre_inlet_class, pre_inlet_pointer);
-  class_addlist(pre_inlet_class, pre_inlet_list);
-  class_addanything(pre_inlet_class, pre_inlet_anything);
-  class_sethelpsymbol(pre_inlet_class, gensym("iemhelp/help-pre_inlet"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* ------------------------ pre_inlet ---------------------------- */
+/* --------- any incoming message produce additionally a --------- */
+/* ----- special anything message at output, followed by the ----- */
+/* --- original message. this pre message contains a selector ---- */
+/* ---- symbol made of one character of the m-th entry of the ---- */
+/* --- ASCII-table, followed by one float atom list entry with --- */
+/* ---- with value n. "m" and "n" are the 2 initial arguments ---- */
+
+static t_class *pre_inlet_class;
+
+typedef struct _pre_inlet
+{
+  t_object    x_obj;
+  t_atom      x_at;
+  t_symbol    *x_sym;
+} t_pre_inlet;
+
+static void pre_inlet_bang(t_pre_inlet *x)
+{
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
+  outlet_bang(x->x_obj.ob_outlet);
+}
+
+static void pre_inlet_float(t_pre_inlet *x, t_float f)
+{
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
+  outlet_float(x->x_obj.ob_outlet, f);
+}
+
+static void pre_inlet_symbol(t_pre_inlet *x, t_symbol *s)
+{
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
+  outlet_symbol(x->x_obj.ob_outlet, s);
+}
+
+static void pre_inlet_pointer(t_pre_inlet *x, t_gpointer *gp)
+{
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
+  outlet_pointer(x->x_obj.ob_outlet, gp);
+}
+
+static void pre_inlet_list(t_pre_inlet *x, t_symbol *s, int ac, t_atom *av)
+{
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
+  outlet_list(x->x_obj.ob_outlet, s, ac, av);
+}
+
+static void pre_inlet_anything(t_pre_inlet *x, t_symbol *s, int ac, t_atom *av)
+{
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at);
+  outlet_anything(x->x_obj.ob_outlet, s, ac, av);
+}
+
+static void pre_inlet_free(t_pre_inlet *x)
+{
+}
+
+static void *pre_inlet_new(t_floatarg fsym, t_floatarg finlet)
+{
+  t_pre_inlet *x = (t_pre_inlet *)pd_new(pre_inlet_class);
+  char str[2];
+  
+  SETFLOAT(&x->x_at, finlet);
+  str[0] = (char)((int)(fsym)&0xff);
+  str[1] = 0;
+  x->x_sym = gensym(str);
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void pre_inlet_setup(void)
+{
+  pre_inlet_class = class_new(gensym("pre_inlet"), (t_newmethod)pre_inlet_new,
+    (t_method)pre_inlet_free, sizeof(t_pre_inlet), 0, A_DEFFLOAT, A_DEFFLOAT, 0);
+  class_addbang(pre_inlet_class, (t_method)pre_inlet_bang);
+  class_addfloat(pre_inlet_class, (t_method)pre_inlet_float);
+  class_addsymbol(pre_inlet_class, pre_inlet_symbol);
+  class_addpointer(pre_inlet_class, pre_inlet_pointer);
+  class_addlist(pre_inlet_class, pre_inlet_list);
+  class_addanything(pre_inlet_class, pre_inlet_anything);
+  class_sethelpsymbol(pre_inlet_class, gensym("iemhelp/help-pre_inlet"));
+}
diff --git a/src/iemlib2/prepend_ascii.c b/src/iemlib2/prepend_ascii.c
index 572df1c..7e86cb3 100644
--- a/src/iemlib2/prepend_ascii.c
+++ b/src/iemlib2/prepend_ascii.c
@@ -1,129 +1,129 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* ------------------------- prepend_ascii ---------------------------- */
-/* -- this object prepends to any incoming message a selector symbol -- */
-/* --- containing the n-th character of the ASCII-table. "n" is the --- */
-/* ----------------- first initial argument (integer) ----------------- */
-
-static t_class *prepend_ascii_class;
-
-typedef struct _prepend_ascii
-{
-  t_object    x_obj;
-  t_atom      *x_at;
-  int         x_size;
-  int         x_ac;
-  t_symbol    *x_sym;
-} t_prepend_ascii;
-
-static void prepend_ascii_atcopy(t_atom *src, t_atom *dst, int n)
-{
-  while(n--)
-    *dst++ = *src++;
-}
-
-static void prepend_ascii_bang(t_prepend_ascii *x)
-{
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at);
-}
-
-static void prepend_ascii_float(t_prepend_ascii *x, t_float f)
-{
-  SETFLOAT(x->x_at+x->x_ac, f);
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
-}
-
-static void prepend_ascii_symbol(t_prepend_ascii *x, t_symbol *s)
-{
-  SETSYMBOL(x->x_at+x->x_ac, s);
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
-}
-
-static void prepend_ascii_pointer(t_prepend_ascii *x, t_gpointer *gp)
-{
-  SETPOINTER(x->x_at+x->x_ac, gp);
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
-}
-
-static void prepend_ascii_list(t_prepend_ascii *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac+x->x_ac) > x->x_size)
-  {
-    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac)*sizeof(t_atom));
-    x->x_size = (ac+x->x_ac);
-  }
-  prepend_ascii_atcopy(av, x->x_at+x->x_ac, ac);
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+x->x_ac, x->x_at);
-}
-
-static void prepend_ascii_anything(t_prepend_ascii *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac+x->x_ac+1) > x->x_size)
-  {
-    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac+1)*sizeof(t_atom));
-    x->x_size = (ac+x->x_ac+1);
-  }
-  SETSYMBOL(x->x_at+x->x_ac, s);
-  prepend_ascii_atcopy(av, x->x_at+x->x_ac+1, ac);
-  outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+x->x_ac+1, x->x_at);
-}
-
-static void prepend_ascii_free(t_prepend_ascii *x)
-{
-  if(x->x_at)
-    freebytes(x->x_at, x->x_size * sizeof(t_atom));
-}
-
-static void *prepend_ascii_new(t_symbol *s, int ac, t_atom *av)
-{
-  if((ac <= 0) || (!IS_A_FLOAT(av,0)))
-  {
-    post("ERROR: prepend_ascii need a float between 1 and 255 as 1. arg. !!!");
-    return(0);
-  }
-  else
-  {
-    t_prepend_ascii *x = (t_prepend_ascii *)pd_new(prepend_ascii_class);
-    char str[2];
-    int i;
-    
-    x->x_size = 10 + ac;
-    x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
-    str[0] = (char)((int)(atom_getfloatarg(0,ac,av))&0xff);
-    str[1] = 0;
-    x->x_sym = gensym(str);
-    x->x_ac = ac - 1;
-    for(i=1; i<ac; i++)
-      x->x_at[i-1] = av[i];
-    outlet_new(&x->x_obj, &s_list);
-    return (x);
-  }
-}
-
-void prepend_ascii_setup(void)
-{
-  prepend_ascii_class = class_new(gensym("prepend_ascii"), (t_newmethod)prepend_ascii_new,
-    (t_method)prepend_ascii_free, sizeof(t_prepend_ascii), 0, A_GIMME, 0);
-  class_addbang(prepend_ascii_class, (t_method)prepend_ascii_bang);
-  class_addfloat(prepend_ascii_class, (t_method)prepend_ascii_float);
-  class_addsymbol(prepend_ascii_class, prepend_ascii_symbol);
-  class_addpointer(prepend_ascii_class, prepend_ascii_pointer);
-  class_addlist(prepend_ascii_class, prepend_ascii_list);
-  class_addanything(prepend_ascii_class, prepend_ascii_anything);
-  class_sethelpsymbol(prepend_ascii_class, gensym("iemhelp/help-prepend_ascii"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* ------------------------- prepend_ascii ---------------------------- */
+/* -- this object prepends to any incoming message a selector symbol -- */
+/* --- containing the n-th character of the ASCII-table. "n" is the --- */
+/* ----------------- first initial argument (integer) ----------------- */
+
+static t_class *prepend_ascii_class;
+
+typedef struct _prepend_ascii
+{
+  t_object    x_obj;
+  t_atom      *x_at;
+  int         x_size;
+  int         x_ac;
+  t_symbol    *x_sym;
+} t_prepend_ascii;
+
+static void prepend_ascii_atcopy(t_atom *src, t_atom *dst, int n)
+{
+  while(n--)
+    *dst++ = *src++;
+}
+
+static void prepend_ascii_bang(t_prepend_ascii *x)
+{
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at);
+}
+
+static void prepend_ascii_float(t_prepend_ascii *x, t_float f)
+{
+  SETFLOAT(x->x_at+x->x_ac, f);
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
+}
+
+static void prepend_ascii_symbol(t_prepend_ascii *x, t_symbol *s)
+{
+  SETSYMBOL(x->x_at+x->x_ac, s);
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
+}
+
+static void prepend_ascii_pointer(t_prepend_ascii *x, t_gpointer *gp)
+{
+  SETPOINTER(x->x_at+x->x_ac, gp);
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at);
+}
+
+static void prepend_ascii_list(t_prepend_ascii *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac+x->x_ac) > x->x_size)
+  {
+    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac)*sizeof(t_atom));
+    x->x_size = (ac+x->x_ac);
+  }
+  prepend_ascii_atcopy(av, x->x_at+x->x_ac, ac);
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+x->x_ac, x->x_at);
+}
+
+static void prepend_ascii_anything(t_prepend_ascii *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac+x->x_ac+1) > x->x_size)
+  {
+    x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac+1)*sizeof(t_atom));
+    x->x_size = (ac+x->x_ac+1);
+  }
+  SETSYMBOL(x->x_at+x->x_ac, s);
+  prepend_ascii_atcopy(av, x->x_at+x->x_ac+1, ac);
+  outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+x->x_ac+1, x->x_at);
+}
+
+static void prepend_ascii_free(t_prepend_ascii *x)
+{
+  if(x->x_at)
+    freebytes(x->x_at, x->x_size * sizeof(t_atom));
+}
+
+static void *prepend_ascii_new(t_symbol *s, int ac, t_atom *av)
+{
+  if((ac <= 0) || (!IS_A_FLOAT(av,0)))
+  {
+    post("ERROR: prepend_ascii need a float between 1 and 255 as 1. arg. !!!");
+    return(0);
+  }
+  else
+  {
+    t_prepend_ascii *x = (t_prepend_ascii *)pd_new(prepend_ascii_class);
+    char str[2];
+    int i;
+    
+    x->x_size = 10 + ac;
+    x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom));
+    str[0] = (char)((int)(atom_getfloatarg(0,ac,av))&0xff);
+    str[1] = 0;
+    x->x_sym = gensym(str);
+    x->x_ac = ac - 1;
+    for(i=1; i<ac; i++)
+      x->x_at[i-1] = av[i];
+    outlet_new(&x->x_obj, &s_list);
+    return (x);
+  }
+}
+
+void prepend_ascii_setup(void)
+{
+  prepend_ascii_class = class_new(gensym("prepend_ascii"), (t_newmethod)prepend_ascii_new,
+    (t_method)prepend_ascii_free, sizeof(t_prepend_ascii), 0, A_GIMME, 0);
+  class_addbang(prepend_ascii_class, (t_method)prepend_ascii_bang);
+  class_addfloat(prepend_ascii_class, (t_method)prepend_ascii_float);
+  class_addsymbol(prepend_ascii_class, prepend_ascii_symbol);
+  class_addpointer(prepend_ascii_class, prepend_ascii_pointer);
+  class_addlist(prepend_ascii_class, prepend_ascii_list);
+  class_addanything(prepend_ascii_class, prepend_ascii_anything);
+  class_sethelpsymbol(prepend_ascii_class, gensym("iemhelp/help-prepend_ascii"));
+}
diff --git a/src/iemlib2/prepend_kernel.c b/src/iemlib2/prepend_kernel.c
index baab813..eedcbee 100644
--- a/src/iemlib2/prepend_kernel.c
+++ b/src/iemlib2/prepend_kernel.c
@@ -1,349 +1,349 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2004 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-
-/* ------------------------ prepend_kernel ---------------------------- */
-static t_class *prepend_kernel_class;
-
-typedef struct _prepend_kernel
-{
-  t_object    x_obj;
-  int         x_inlet_select;
-  int         x_size12;
-  int         x_size2;
-  int         x_ac1;
-  int         x_ac2;
-  t_atom      *x_at12;
-  t_atom      *x_at2;
-  t_symbol    *x_sym1;
-  t_symbol    *x_sym2;
-  t_atomtype  x_type1;
-  t_atomtype  x_type2;
-} t_prepend_kernel;
-
-static void prepend_kernel_atcopy(t_atom *src, t_atom *dst, int n)
-{
-  while(n--)
-    *dst++ = *src++;
-}
-
-static void prepend_kernel_merge(t_prepend_kernel *x, int off)
-{
-  if((x->x_ac1+x->x_ac2) > x->x_size1)
-  {
-    x->x_at1 = (t_atom *)resizebytes(x->x_at1, x->x_size1*sizeof(t_atom), 2*(x->x_ac1+x->x_ac2)*sizeof(t_atom));
-    x->x_size1 = 2*(x->x_ac1+x->x_ac2);
-  }
-  if(off)
-    SETSYMBOL(x->x_at1 + x->x_ac1, x->x_sym2);
-  prepend_kernel_atcopy(x->x_at2, x->x_at1 + x->x_ac1 + off, x->x_ac2);
-}
-
-static void prepend_kernel_out(t_prepend_kernel *x)
-{
-  int off=0;
-  
-  if(x->x_type1 == A_GIMME)
-  {
-    if(x->x_type2 == A_COMMA)
-      off = 1;
-    else
-      off = 0;
-    prepend_kernel_merge(x, off);
-    outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at1);
-  }
-  else if(x->x_type1 == A_COMMA)
-  {
-    if(x->x_type2 == A_COMMA)
-      off = 1;
-    else
-      off = 0;
-    prepend_kernel_merge(x, off);
-    outlet_anything(x->x_obj.ob_outlet, x->x_sym1, x->x_ac1+x->x_ac2+off, x->x_at1);
-  }
-  else if(x->x_type1 == A_NULL)/*depends on 2.part*/
-  {
-    prepend_kernel_merge(x, 0);
-    if(x->x_type2 == A_GIMME)
-      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac2, x->x_at1);
-    else if(x->x_type2 == A_COMMA)
-      outlet_anything(x->x_obj.ob_outlet, x->x_sym2, x->x_ac2, x->x_at1);
-    else if(x->x_type2 == A_FLOAT)
-      outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at1));
-    else if(x->x_type2 == A_SYMBOL)
-      outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at1));
-    else if(x->x_type2 == A_NULL)
-      outlet_bang(x->x_obj.ob_outlet);
-    else if(x->x_type2 == A_POINTER)
-      outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at1->a_w.w_gpointer);
-  }
-  else
-  {
-    if(x->x_type2 == A_COMMA)
-      off = 1;
-    else
-      off = 0;
-    prepend_kernel_merge(x, off);
-    if(x->x_type2 == A_NULL)
-    {
-      if(x->x_type1 == A_FLOAT)
-        outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at1));
-      else if(x->x_type1 == A_SYMBOL)
-        outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at1));
-      else if(x->x_type1 == A_POINTER)
-        outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at1->a_w.w_gpointer);
-    }
-    else
-      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at1);
-  }
-}
-
-static void prepend_kernel_inlet_select(t_prepend_kernel *x, t_floatarg fin_sel_01)
-{
-  x->x_inlet_select = (int)fin_sel_01;
-}
-
-static void prepend_kernel_bang(t_prepend_kernel *x)
-{
-  if(!x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac2 = 0;
-    x->x_type2 = A_NULL;
-    x->x_sym2 = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    x->x_ac1 = 0;
-    x->x_type1 = A_NULL;
-    prepend_kernel_out(x);
-  }
-}
-
-static void prepend_kernel_float(t_prepend_kernel *x, t_float f)
-{
-  if(!x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac2 = 1;
-    x->x_type2 = A_FLOAT;
-    SETFLOAT(x->x_at2, f);
-    x->x_sym2 = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    x->x_ac1 = 1;
-    x->x_type1 = A_FLOAT;
-    SETFLOAT(x->x_at1, f);
-    prepend_kernel_out(x);
-  }
-}
-
-static void prepend_kernel_symbol(t_prepend_kernel *x, t_symbol *s)
-{
-  if(!x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac2 = 1;
-    x->x_type2 = A_SYMBOL;
-    SETSYMBOL(x->x_at2, s);
-    x->x_sym2 = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    x->x_ac1 = 1;
-    x->x_type1 = A_SYMBOL;
-    SETSYMBOL(x->x_at12, s);
-    prepend_kernel_out(x);
-  }
-}
-
-static void prepend_kernel_pointer(t_prepend_kernel *x, t_gpointer *gp)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    x->x_ac2 = 1;
-    x->x_type2 = A_POINTER;
-    SETPOINTER(x->x_at2, gp);
-    x->x_sym2 = &s_list;
-  }
-  else /* if 1st inlet */
-  {
-    x->x_ac1 = 1;
-    x->x_type1 = A_POINTER;
-    SETPOINTER(x->x_at12, gp);
-    prepend_kernel_out(x);
-  }
-}
-
-static void prepend_kernel_list(t_prepend_kernel *x, t_symbol *s, int ac, t_atom *av)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    if(ac > x->x_size2)
-    {
-      x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom));
-      x->x_size2 = 2*ac;
-    }
-    x->x_ac2 = ac;
-    x->x_type2 = A_GIMME;
-    x->x_sym2 = &s_list;
-    prepend_kernel_atcopy(av, x->x_at2, ac);
-  }
-  else /* if 1st inlet */
-  {
-    if((x->x_ac1+ac) > x->x_size12)
-    {
-      x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_ac1+ac)*sizeof(t_atom));
-      x->x_size12 = 2*(x->x_ac1+ac);
-    }
-    x->x_ac1 = ac;
-    x->x_type1 = A_GIMME;
-    prepend_kernel_atcopy(av, x->x_at12, ac);
-    x->x_sym1 = &s_list;
-    prepend_kernel_out(x);
-  }
-}
-
-static void prepend_kernel_anything(t_prepend_kernel *x, t_symbol *s, int ac, t_atom *av)
-{
-  if(x->x_inlet_select) /* if 2nd inlet */
-  {
-    if((ac+1) > x->x_size2)
-    {
-      x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom));
-      x->x_size2 = 2*ac;
-    }
-    SETSYMBOL(x->x_at2, s);
-    x->x_ac2 = ac;
-    x->x_type2 = A_COMMA;
-    x->x_sym2 = s;
-    prepend_kernel_atcopy(av, x->x_at2, ac);
-  }
-  else /* if 1st inlet */
-  {
-    if((x->x_ac1+ac) > x->x_size12)
-    {
-      x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), (2*x->x_ac1+ac)*sizeof(t_atom));
-      x->x_size12 = (2*x->x_ac1+ac);
-    }
-    x->x_ac1 = ac;
-    x->x_type1 = A_COMMA;
-    prepend_kernel_atcopy(av, x->x_at12, ac);
-    x->x_sym1 = s;
-    prepend_kernel_out(x);
-  }
-}
-
-static void prepend_kernel_free(t_prepend_kernel *x)
-{
-  if(x->x_at1)
-    freebytes(x->x_at1, x->x_size1 * sizeof(t_atom));
-}
-
-static void *prepend_kernel_new(void)
-{
-  t_prepend_kernel *x = (t_prepend_kernel *)pd_new(prepend_kernel_class);
-  t_glist *glist = (t_glist *)canvas_getcurrent();
-  t_canvas *canvas=glist_getcanvas(glist);
-  int ac=0;
-  t_atom *av;
-  
-  x->x_type2 = A_NULL;
-  x->x_sym2 = &s_list;
-  x->x_ac2 = 0;
-  
-  canvas_setcurrent(canvas);
-  canvas_getargs(&ac, &av);
-  canvas_unsetcurrent(canvas);
-  
-  x->x_type1 = A_NULL;
-  if(!ac)
-  {
-    x->x_type1 = A_NULL;
-    x->x_sym1 = &s_bang;
-    x->x_size1 = 10;
-    x->x_ac1 = 0;
-    x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom));
-  }
-  else if(ac == 1)
-  {
-    if(IS_A_SYMBOL(av,0))
-    {
-      x->x_type1 = A_COMMA;
-      x->x_sym1 = atom_getsymbol(av);
-      x->x_size1 = 10;
-      x->x_ac1 = 0;
-      x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom));
-    }
-    else
-    {
-      if(IS_A_FLOAT(av,0))
-      {
-        x->x_type1 = A_FLOAT;
-        x->x_sym1 = &s_float;
-      }
-      else if(IS_A_POINTER(av,0))
-      {
-        x->x_type1 = A_POINTER;
-        x->x_sym1 = &s_pointer;
-      }
-      x->x_size1 = 11;
-      x->x_ac1 = 1;
-      x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom));
-      x->x_at1[0] = *av;
-    }
-  }
-  else /* ac > 1 */
-  {
-    if(IS_A_SYMBOL(av,0))
-    {
-      x->x_type1 = A_COMMA;/*for anything*/
-      x->x_sym1 = atom_getsymbol(av++);
-      ac--;
-    }
-    else
-    {
-      x->x_type1 = A_GIMME;
-      x->x_sym1 = &s_list;
-    }
-    x->x_size1 = ac + 10;
-    x->x_ac1 = ac;
-    x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom));
-    prepend_kernel_atcopy(av, x->x_at1, ac);
-  }
-  
-  x->x_inlet_select = 1;
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void prepend_kernel_setup(void)
-{
-  char str[2];
-  
-  str[0] = 1;
-  str[1] = 0;
-  prepend_kernel_class = class_new(gensym("prepend_kernel"),
-    (t_newmethod)prepend_kernel_new, (t_method)prepend_kernel_free,
-    sizeof(t_prepend_kernel), 0, 0);
-  class_addbang(prepend_kernel_class, (t_method)prepend_kernel_bang);
-  class_addpointer(prepend_kernel_class, prepend_kernel_pointer);
-  class_addfloat(prepend_kernel_class, (t_method)prepend_kernel_float);
-  class_addsymbol(prepend_kernel_class, prepend_kernel_symbol);
-  class_addlist(prepend_kernel_class, prepend_kernel_list);
-  class_addmethod(prepend_kernel_class, (t_method)prepend_kernel_inlet_select, gensym(str), A_FLOAT, 0);
-  class_addanything(prepend_kernel_class, prepend_kernel_anything);
-  class_sethelpsymbol(prepend_kernel_class, gensym("iemhelp/help-merge_any"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2004 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+
+/* ------------------------ prepend_kernel ---------------------------- */
+static t_class *prepend_kernel_class;
+
+typedef struct _prepend_kernel
+{
+  t_object    x_obj;
+  int         x_inlet_select;
+  int         x_size12;
+  int         x_size2;
+  int         x_ac1;
+  int         x_ac2;
+  t_atom      *x_at12;
+  t_atom      *x_at2;
+  t_symbol    *x_sym1;
+  t_symbol    *x_sym2;
+  t_atomtype  x_type1;
+  t_atomtype  x_type2;
+} t_prepend_kernel;
+
+static void prepend_kernel_atcopy(t_atom *src, t_atom *dst, int n)
+{
+  while(n--)
+    *dst++ = *src++;
+}
+
+static void prepend_kernel_merge(t_prepend_kernel *x, int off)
+{
+  if((x->x_ac1+x->x_ac2) > x->x_size1)
+  {
+    x->x_at1 = (t_atom *)resizebytes(x->x_at1, x->x_size1*sizeof(t_atom), 2*(x->x_ac1+x->x_ac2)*sizeof(t_atom));
+    x->x_size1 = 2*(x->x_ac1+x->x_ac2);
+  }
+  if(off)
+    SETSYMBOL(x->x_at1 + x->x_ac1, x->x_sym2);
+  prepend_kernel_atcopy(x->x_at2, x->x_at1 + x->x_ac1 + off, x->x_ac2);
+}
+
+static void prepend_kernel_out(t_prepend_kernel *x)
+{
+  int off=0;
+  
+  if(x->x_type1 == A_GIMME)
+  {
+    if(x->x_type2 == A_COMMA)
+      off = 1;
+    else
+      off = 0;
+    prepend_kernel_merge(x, off);
+    outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at1);
+  }
+  else if(x->x_type1 == A_COMMA)
+  {
+    if(x->x_type2 == A_COMMA)
+      off = 1;
+    else
+      off = 0;
+    prepend_kernel_merge(x, off);
+    outlet_anything(x->x_obj.ob_outlet, x->x_sym1, x->x_ac1+x->x_ac2+off, x->x_at1);
+  }
+  else if(x->x_type1 == A_NULL)/*depends on 2.part*/
+  {
+    prepend_kernel_merge(x, 0);
+    if(x->x_type2 == A_GIMME)
+      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac2, x->x_at1);
+    else if(x->x_type2 == A_COMMA)
+      outlet_anything(x->x_obj.ob_outlet, x->x_sym2, x->x_ac2, x->x_at1);
+    else if(x->x_type2 == A_FLOAT)
+      outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at1));
+    else if(x->x_type2 == A_SYMBOL)
+      outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at1));
+    else if(x->x_type2 == A_NULL)
+      outlet_bang(x->x_obj.ob_outlet);
+    else if(x->x_type2 == A_POINTER)
+      outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at1->a_w.w_gpointer);
+  }
+  else
+  {
+    if(x->x_type2 == A_COMMA)
+      off = 1;
+    else
+      off = 0;
+    prepend_kernel_merge(x, off);
+    if(x->x_type2 == A_NULL)
+    {
+      if(x->x_type1 == A_FLOAT)
+        outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at1));
+      else if(x->x_type1 == A_SYMBOL)
+        outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at1));
+      else if(x->x_type1 == A_POINTER)
+        outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at1->a_w.w_gpointer);
+    }
+    else
+      outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at1);
+  }
+}
+
+static void prepend_kernel_inlet_select(t_prepend_kernel *x, t_floatarg fin_sel_01)
+{
+  x->x_inlet_select = (int)fin_sel_01;
+}
+
+static void prepend_kernel_bang(t_prepend_kernel *x)
+{
+  if(!x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac2 = 0;
+    x->x_type2 = A_NULL;
+    x->x_sym2 = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    x->x_ac1 = 0;
+    x->x_type1 = A_NULL;
+    prepend_kernel_out(x);
+  }
+}
+
+static void prepend_kernel_float(t_prepend_kernel *x, t_float f)
+{
+  if(!x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac2 = 1;
+    x->x_type2 = A_FLOAT;
+    SETFLOAT(x->x_at2, f);
+    x->x_sym2 = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    x->x_ac1 = 1;
+    x->x_type1 = A_FLOAT;
+    SETFLOAT(x->x_at1, f);
+    prepend_kernel_out(x);
+  }
+}
+
+static void prepend_kernel_symbol(t_prepend_kernel *x, t_symbol *s)
+{
+  if(!x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac2 = 1;
+    x->x_type2 = A_SYMBOL;
+    SETSYMBOL(x->x_at2, s);
+    x->x_sym2 = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    x->x_ac1 = 1;
+    x->x_type1 = A_SYMBOL;
+    SETSYMBOL(x->x_at12, s);
+    prepend_kernel_out(x);
+  }
+}
+
+static void prepend_kernel_pointer(t_prepend_kernel *x, t_gpointer *gp)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    x->x_ac2 = 1;
+    x->x_type2 = A_POINTER;
+    SETPOINTER(x->x_at2, gp);
+    x->x_sym2 = &s_list;
+  }
+  else /* if 1st inlet */
+  {
+    x->x_ac1 = 1;
+    x->x_type1 = A_POINTER;
+    SETPOINTER(x->x_at12, gp);
+    prepend_kernel_out(x);
+  }
+}
+
+static void prepend_kernel_list(t_prepend_kernel *x, t_symbol *s, int ac, t_atom *av)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    if(ac > x->x_size2)
+    {
+      x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom));
+      x->x_size2 = 2*ac;
+    }
+    x->x_ac2 = ac;
+    x->x_type2 = A_GIMME;
+    x->x_sym2 = &s_list;
+    prepend_kernel_atcopy(av, x->x_at2, ac);
+  }
+  else /* if 1st inlet */
+  {
+    if((x->x_ac1+ac) > x->x_size12)
+    {
+      x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_ac1+ac)*sizeof(t_atom));
+      x->x_size12 = 2*(x->x_ac1+ac);
+    }
+    x->x_ac1 = ac;
+    x->x_type1 = A_GIMME;
+    prepend_kernel_atcopy(av, x->x_at12, ac);
+    x->x_sym1 = &s_list;
+    prepend_kernel_out(x);
+  }
+}
+
+static void prepend_kernel_anything(t_prepend_kernel *x, t_symbol *s, int ac, t_atom *av)
+{
+  if(x->x_inlet_select) /* if 2nd inlet */
+  {
+    if((ac+1) > x->x_size2)
+    {
+      x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom));
+      x->x_size2 = 2*ac;
+    }
+    SETSYMBOL(x->x_at2, s);
+    x->x_ac2 = ac;
+    x->x_type2 = A_COMMA;
+    x->x_sym2 = s;
+    prepend_kernel_atcopy(av, x->x_at2, ac);
+  }
+  else /* if 1st inlet */
+  {
+    if((x->x_ac1+ac) > x->x_size12)
+    {
+      x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), (2*x->x_ac1+ac)*sizeof(t_atom));
+      x->x_size12 = (2*x->x_ac1+ac);
+    }
+    x->x_ac1 = ac;
+    x->x_type1 = A_COMMA;
+    prepend_kernel_atcopy(av, x->x_at12, ac);
+    x->x_sym1 = s;
+    prepend_kernel_out(x);
+  }
+}
+
+static void prepend_kernel_free(t_prepend_kernel *x)
+{
+  if(x->x_at1)
+    freebytes(x->x_at1, x->x_size1 * sizeof(t_atom));
+}
+
+static void *prepend_kernel_new(void)
+{
+  t_prepend_kernel *x = (t_prepend_kernel *)pd_new(prepend_kernel_class);
+  t_glist *glist = (t_glist *)canvas_getcurrent();
+  t_canvas *canvas=glist_getcanvas(glist);
+  int ac=0;
+  t_atom *av;
+  
+  x->x_type2 = A_NULL;
+  x->x_sym2 = &s_list;
+  x->x_ac2 = 0;
+  
+  canvas_setcurrent(canvas);
+  canvas_getargs(&ac, &av);
+  canvas_unsetcurrent(canvas);
+  
+  x->x_type1 = A_NULL;
+  if(!ac)
+  {
+    x->x_type1 = A_NULL;
+    x->x_sym1 = &s_bang;
+    x->x_size1 = 10;
+    x->x_ac1 = 0;
+    x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom));
+  }
+  else if(ac == 1)
+  {
+    if(IS_A_SYMBOL(av,0))
+    {
+      x->x_type1 = A_COMMA;
+      x->x_sym1 = atom_getsymbol(av);
+      x->x_size1 = 10;
+      x->x_ac1 = 0;
+      x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom));
+    }
+    else
+    {
+      if(IS_A_FLOAT(av,0))
+      {
+        x->x_type1 = A_FLOAT;
+        x->x_sym1 = &s_float;
+      }
+      else if(IS_A_POINTER(av,0))
+      {
+        x->x_type1 = A_POINTER;
+        x->x_sym1 = &s_pointer;
+      }
+      x->x_size1 = 11;
+      x->x_ac1 = 1;
+      x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom));
+      x->x_at1[0] = *av;
+    }
+  }
+  else /* ac > 1 */
+  {
+    if(IS_A_SYMBOL(av,0))
+    {
+      x->x_type1 = A_COMMA;/*for anything*/
+      x->x_sym1 = atom_getsymbol(av++);
+      ac--;
+    }
+    else
+    {
+      x->x_type1 = A_GIMME;
+      x->x_sym1 = &s_list;
+    }
+    x->x_size1 = ac + 10;
+    x->x_ac1 = ac;
+    x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom));
+    prepend_kernel_atcopy(av, x->x_at1, ac);
+  }
+  
+  x->x_inlet_select = 1;
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void prepend_kernel_setup(void)
+{
+  char str[2];
+  
+  str[0] = 1;
+  str[1] = 0;
+  prepend_kernel_class = class_new(gensym("prepend_kernel"),
+    (t_newmethod)prepend_kernel_new, (t_method)prepend_kernel_free,
+    sizeof(t_prepend_kernel), 0, 0);
+  class_addbang(prepend_kernel_class, (t_method)prepend_kernel_bang);
+  class_addpointer(prepend_kernel_class, prepend_kernel_pointer);
+  class_addfloat(prepend_kernel_class, (t_method)prepend_kernel_float);
+  class_addsymbol(prepend_kernel_class, prepend_kernel_symbol);
+  class_addlist(prepend_kernel_class, prepend_kernel_list);
+  class_addmethod(prepend_kernel_class, (t_method)prepend_kernel_inlet_select, gensym(str), A_FLOAT, 0);
+  class_addanything(prepend_kernel_class, prepend_kernel_anything);
+  class_sethelpsymbol(prepend_kernel_class, gensym("iemhelp/help-merge_any"));
+}
diff --git a/src/iemlib2/protect_against_open.c b/src/iemlib2/protect_against_open.c
index 5203df1..2de0a19 100644
--- a/src/iemlib2/protect_against_open.c
+++ b/src/iemlib2/protect_against_open.c
@@ -1,103 +1,103 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include "g_canvas.h"
-#include "g_all_guis.h"
-#include <string.h>
-
-#ifdef NT
-#include <io.h>
-#else
-#include <unistd.h>
-#endif
-
-/* ---------------------- protect_against_open ----------------------- */
-/* -- if you putting this object into a subpatch or an abstraction, -- */
-/* ------------ you cannot open again this subpatch ------------------ */
-
-t_widgetbehavior protect_against_open_widgetbehavior;
-static t_class *protect_against_open_class;
-
-typedef struct _protect_against_open
-{
-  t_object x_obj;
-  t_symbol *x_sym;
-  t_pd     *x_owner;
-  void     *x_clock;
-} t_protect_against_open;
-
-/* ------------------------ cnv widgetbehaviour----------------------------- */
-
-static void protect_against_open_tick(t_protect_against_open *x)
-{
-  t_symbol *sym = gensym("vis");
-  t_atom at[1];
-
-  SETFLOAT(at, 0.0);
-  typedmess(x->x_sym->s_thing, sym, 1, at);
-  clock_unset(x->x_clock);
-}
-
-static void protect_against_open_vis(t_gobj *z, t_glist *glist, int vis)
-{
-  t_protect_against_open *x = (t_protect_against_open *)z;
-
-  if(vis)
-    clock_delay(x->x_clock, 5);
-}
-
-static void *protect_against_open_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_protect_against_open *x = (t_protect_against_open *)pd_new(protect_against_open_class);
-  t_glist *glist = (t_glist *)canvas_getcurrent();
-  t_canvas *this_canvas = glist_getcanvas(glist);
-  t_symbol *s_unique;
-  char str[100];
-
-  x->x_owner = (t_pd *)glist;
-  s_unique = canvas_realizedollar(glist_getcanvas(glist), gensym("$0"));
-  strcpy(str, s_unique->s_name);
-  strcat(str, "-quabla");
-  x->x_sym = gensym(str);
-  if(*x->x_sym->s_name)
-    pd_bind(x->x_owner, x->x_sym);
-  x->x_clock = clock_new(x, (t_method)protect_against_open_tick);
-  return(x);
-}
-
-static void protect_against_open_ff(t_protect_against_open *x)
-{
-  if(*x->x_sym->s_name)
-    pd_unbind(x->x_owner, x->x_sym);
-  clock_free(x->x_clock);
-}
-
-void protect_against_open_setup(void)
-{
-  protect_against_open_class = class_new(gensym("protect_against_open"), (t_newmethod)protect_against_open_new,
-        (t_method)protect_against_open_ff, sizeof(t_protect_against_open), 0, A_GIMME, 0);
-
-  protect_against_open_widgetbehavior.w_getrectfn = NULL;
-  protect_against_open_widgetbehavior.w_displacefn = NULL;
-  protect_against_open_widgetbehavior.w_selectfn = NULL;
-  protect_against_open_widgetbehavior.w_activatefn = NULL;
-  protect_against_open_widgetbehavior.w_deletefn = NULL;
-  protect_against_open_widgetbehavior.w_visfn = protect_against_open_vis;
-  protect_against_open_widgetbehavior.w_clickfn = NULL;
-#if defined(PD_MAJOR_VERSION) && (PD_MINOR_VERSION >= 37)
-
-#else
-  protect_against_open_widgetbehavior.w_propertiesfn = NULL;
-  protect_against_open_widgetbehavior.w_savefn =    NULL;
-#endif
-  class_setwidget(protect_against_open_class, &protect_against_open_widgetbehavior);
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include "g_canvas.h"
+#include "g_all_guis.h"
+#include <string.h>
+
+#ifdef NT
+#include <io.h>
+#else
+#include <unistd.h>
+#endif
+
+/* ---------------------- protect_against_open ----------------------- */
+/* -- if you putting this object into a subpatch or an abstraction, -- */
+/* ------------ you cannot open again this subpatch ------------------ */
+
+t_widgetbehavior protect_against_open_widgetbehavior;
+static t_class *protect_against_open_class;
+
+typedef struct _protect_against_open
+{
+  t_object x_obj;
+  t_symbol *x_sym;
+  t_pd     *x_owner;
+  void     *x_clock;
+} t_protect_against_open;
+
+/* ------------------------ cnv widgetbehaviour----------------------------- */
+
+static void protect_against_open_tick(t_protect_against_open *x)
+{
+  t_symbol *sym = gensym("vis");
+  t_atom at[1];
+
+  SETFLOAT(at, 0.0);
+  typedmess(x->x_sym->s_thing, sym, 1, at);
+  clock_unset(x->x_clock);
+}
+
+static void protect_against_open_vis(t_gobj *z, t_glist *glist, int vis)
+{
+  t_protect_against_open *x = (t_protect_against_open *)z;
+
+  if(vis)
+    clock_delay(x->x_clock, 5);
+}
+
+static void *protect_against_open_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_protect_against_open *x = (t_protect_against_open *)pd_new(protect_against_open_class);
+  t_glist *glist = (t_glist *)canvas_getcurrent();
+  t_canvas *this_canvas = glist_getcanvas(glist);
+  t_symbol *s_unique;
+  char str[100];
+
+  x->x_owner = (t_pd *)glist;
+  s_unique = canvas_realizedollar(glist_getcanvas(glist), gensym("$0"));
+  strcpy(str, s_unique->s_name);
+  strcat(str, "-quabla");
+  x->x_sym = gensym(str);
+  if(*x->x_sym->s_name)
+    pd_bind(x->x_owner, x->x_sym);
+  x->x_clock = clock_new(x, (t_method)protect_against_open_tick);
+  return(x);
+}
+
+static void protect_against_open_ff(t_protect_against_open *x)
+{
+  if(*x->x_sym->s_name)
+    pd_unbind(x->x_owner, x->x_sym);
+  clock_free(x->x_clock);
+}
+
+void protect_against_open_setup(void)
+{
+  protect_against_open_class = class_new(gensym("protect_against_open"), (t_newmethod)protect_against_open_new,
+        (t_method)protect_against_open_ff, sizeof(t_protect_against_open), 0, A_GIMME, 0);
+
+  protect_against_open_widgetbehavior.w_getrectfn = NULL;
+  protect_against_open_widgetbehavior.w_displacefn = NULL;
+  protect_against_open_widgetbehavior.w_selectfn = NULL;
+  protect_against_open_widgetbehavior.w_activatefn = NULL;
+  protect_against_open_widgetbehavior.w_deletefn = NULL;
+  protect_against_open_widgetbehavior.w_visfn = protect_against_open_vis;
+  protect_against_open_widgetbehavior.w_clickfn = NULL;
+#if defined(PD_MAJOR_VERSION) && (PD_MINOR_VERSION >= 37)
+
+#else
+  protect_against_open_widgetbehavior.w_propertiesfn = NULL;
+  protect_against_open_widgetbehavior.w_savefn =    NULL;
+#endif
+  class_setwidget(protect_against_open_class, &protect_against_open_widgetbehavior);
+}
diff --git a/src/iemlib2/round_zero.c b/src/iemlib2/round_zero.c
index cc2c0c8..3c581ff 100644
--- a/src/iemlib2/round_zero.c
+++ b/src/iemlib2/round_zero.c
@@ -1,68 +1,68 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdio.h>
-#include <string.h>
-
-
-/* ------------------------ round_zero ---------------------------- */
-/* ------ small float numbers of an anything message within ------- */
-/* ---- plus minus initial argument will be truncated to zero ----- */
-
-static t_class *round_zero_class;
-
-typedef struct _round_zero
-{
-  t_object  x_obj;
-  t_float   x_bound;
-} t_round_zero;
-
-static void round_zero_anything(t_round_zero *x, t_symbol *s, int ac, t_atom *av)
-{
-  int i;
-  t_float f, bound=x->x_bound;
-  
-  for(i=0; i<ac; i++)
-  {
-    if(IS_A_FLOAT(av, i))
-    {
-      f = atom_getfloatarg(i, ac, av);
-      if((f <= bound)&&(f >= -bound))
-      {
-        f = 0.0f;
-        SETFLOAT(av+i, f);
-      }
-    }
-  }
-  outlet_anything(x->x_obj.ob_outlet, s, ac, av);
-}
-
-static void *round_zero_new(t_floatarg bound)
-{
-  t_round_zero *x = (t_round_zero *)pd_new(round_zero_class);
-  
-    if(bound < 0.0f)
-      x->x_bound = -bound;
-    else
-      x->x_bound = bound;
-    outlet_new(&x->x_obj, &s_list);
-    return (x);
-}
-
-void round_zero_setup(void)
-{
-  round_zero_class = class_new(gensym("round_zero"), (t_newmethod)round_zero_new,
-    0, sizeof(t_round_zero), 0, A_DEFFLOAT, 0);
-  class_addanything(round_zero_class, round_zero_anything);
-  class_sethelpsymbol(round_zero_class, gensym("iemhelp/help-round_zero"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdio.h>
+#include <string.h>
+
+
+/* ------------------------ round_zero ---------------------------- */
+/* ------ small float numbers of an anything message within ------- */
+/* ---- plus minus initial argument will be truncated to zero ----- */
+
+static t_class *round_zero_class;
+
+typedef struct _round_zero
+{
+  t_object  x_obj;
+  t_float   x_bound;
+} t_round_zero;
+
+static void round_zero_anything(t_round_zero *x, t_symbol *s, int ac, t_atom *av)
+{
+  int i;
+  t_float f, bound=x->x_bound;
+  
+  for(i=0; i<ac; i++)
+  {
+    if(IS_A_FLOAT(av, i))
+    {
+      f = atom_getfloatarg(i, ac, av);
+      if((f <= bound)&&(f >= -bound))
+      {
+        f = 0.0f;
+        SETFLOAT(av+i, f);
+      }
+    }
+  }
+  outlet_anything(x->x_obj.ob_outlet, s, ac, av);
+}
+
+static void *round_zero_new(t_floatarg bound)
+{
+  t_round_zero *x = (t_round_zero *)pd_new(round_zero_class);
+  
+    if(bound < 0.0f)
+      x->x_bound = -bound;
+    else
+      x->x_bound = bound;
+    outlet_new(&x->x_obj, &s_list);
+    return (x);
+}
+
+void round_zero_setup(void)
+{
+  round_zero_class = class_new(gensym("round_zero"), (t_newmethod)round_zero_new,
+    0, sizeof(t_round_zero), 0, A_DEFFLOAT, 0);
+  class_addanything(round_zero_class, round_zero_anything);
+  class_sethelpsymbol(round_zero_class, gensym("iemhelp/help-round_zero"));
+}
diff --git a/src/iemlib2/sigLFO_noise.c b/src/iemlib2/sigLFO_noise.c
index fdafd0c..eafe614 100644
--- a/src/iemlib2/sigLFO_noise.c
+++ b/src/iemlib2/sigLFO_noise.c
@@ -1,128 +1,128 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* -------------------- LFO_noise~ --------------------- */
-/* ---- outputs a 2 point interpolated white noise ----- */
-/* -- with lower cutoff frequency than 0.5 samplerate -- */
-
-static t_class *sigLFO_noise_class;
-
-typedef struct _sigLFO_noise
-{
-  t_object     x_obj;
-  double       x_range;
-  double       x_rcp_range;
-  unsigned int x_state;
-  float        x_fact;
-  float        x_incr;
-  float        x_y1;
-  float        x_y2;
-  float        x_phase;
-} t_sigLFO_noise;
-
-static int sigLFO_noise_makeseed(void)
-{
-  static unsigned int sigLFO_noise_nextseed = 1489853723;
-  
-  sigLFO_noise_nextseed = sigLFO_noise_nextseed * 435898247 + 938284287;
-  return(sigLFO_noise_nextseed & 0x7fffffff);
-}
-
-static float sigLFO_noise_new_rand(t_sigLFO_noise *x)
-{
-  unsigned int state = x->x_state;
-  double new_val, range = x->x_range;
-  
-  x->x_state = state = state * 472940017 + 832416023;
-  new_val = range * ((double)state) * (1./4294967296.);
-  if(new_val >= range)
-    new_val = range-1;
-  new_val -= 32767.0;
-  return(new_val*(1.0/32767.0));
-}
-
-static void *sigLFO_noise_new(t_float freq)
-{
-  t_sigLFO_noise *x = (t_sigLFO_noise *)pd_new(sigLFO_noise_class);
-  
-  x->x_range = 65535.0;
-  x->x_rcp_range =  (double)x->x_range * (1.0/4294967296.0);
-  x->x_state = sigLFO_noise_makeseed();
-  x->x_fact = 2. / 44100.0;
-  x->x_incr = freq * x->x_fact;
-  if(x->x_incr < 0.0)
-    x->x_incr = 0.0;
-  else if(x->x_incr > 0.1)
-    x->x_incr = 0.1;
-  x->x_y1 = sigLFO_noise_new_rand(x);
-  x->x_y2 = sigLFO_noise_new_rand(x);
-  x->x_phase = 0.0;
-  outlet_new(&x->x_obj, gensym("signal"));
-  return (x);
-}
-
-static t_int *sigLFO_noise_perform(t_int *w)
-{
-  t_float *out = (t_float *)(w[1]);
-  t_sigLFO_noise *x = (t_sigLFO_noise *)(w[2]);
-  int n = (int)(w[3]);
-  float phase = x->x_phase;
-  float x_y1 = x->x_y1;
-  float x_y2 = x->x_y2;
-  float incr = x->x_incr;
-  
-  while(n--)
-  {
-    if(phase > 1.0)
-    {
-      x_y1 = x_y2;
-      x_y2 = sigLFO_noise_new_rand(x);
-      phase -= 1.0;
-    }
-    *out++ = (x_y2 - x_y1) * phase + x_y1;
-    phase += incr;
-  }
-  x->x_phase = phase;
-  x->x_y1 = x_y1;
-  x->x_y2 = x_y2;
-  return (w+4);
-}
-
-static void sigLFO_noise_float(t_sigLFO_noise *x, t_float freq)
-{
-  x->x_incr = freq * x->x_fact;
-  if(x->x_incr < 0.0)
-    x->x_incr = 0.0;
-  else if(x->x_incr > 0.1)
-    x->x_incr = 0.1;
-}
-
-static void sigLFO_noise_dsp(t_sigLFO_noise *x, t_signal **sp)
-{
-  x->x_fact = 2. / sp[0]->s_sr;
-  dsp_add(sigLFO_noise_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
-}
-
-void sigLFO_noise_setup(void)
-{
-  sigLFO_noise_class = class_new(gensym("LFO_noise~"),
-    (t_newmethod)sigLFO_noise_new, 0,
-    sizeof(t_sigLFO_noise), 0, A_DEFFLOAT, 0);
-  class_addmethod(sigLFO_noise_class, (t_method)sigLFO_noise_dsp,
-    gensym("dsp"), 0);
-  class_addfloat(sigLFO_noise_class, (t_method)sigLFO_noise_float);
-  class_sethelpsymbol(sigLFO_noise_class, gensym("iemhelp/help-LFO_noise~"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* -------------------- LFO_noise~ --------------------- */
+/* ---- outputs a 2 point interpolated white noise ----- */
+/* -- with lower cutoff frequency than 0.5 samplerate -- */
+
+static t_class *sigLFO_noise_class;
+
+typedef struct _sigLFO_noise
+{
+  t_object     x_obj;
+  double       x_range;
+  double       x_rcp_range;
+  unsigned int x_state;
+  float        x_fact;
+  float        x_incr;
+  float        x_y1;
+  float        x_y2;
+  float        x_phase;
+} t_sigLFO_noise;
+
+static int sigLFO_noise_makeseed(void)
+{
+  static unsigned int sigLFO_noise_nextseed = 1489853723;
+  
+  sigLFO_noise_nextseed = sigLFO_noise_nextseed * 435898247 + 938284287;
+  return(sigLFO_noise_nextseed & 0x7fffffff);
+}
+
+static float sigLFO_noise_new_rand(t_sigLFO_noise *x)
+{
+  unsigned int state = x->x_state;
+  double new_val, range = x->x_range;
+  
+  x->x_state = state = state * 472940017 + 832416023;
+  new_val = range * ((double)state) * (1./4294967296.);
+  if(new_val >= range)
+    new_val = range-1;
+  new_val -= 32767.0;
+  return(new_val*(1.0/32767.0));
+}
+
+static void *sigLFO_noise_new(t_float freq)
+{
+  t_sigLFO_noise *x = (t_sigLFO_noise *)pd_new(sigLFO_noise_class);
+  
+  x->x_range = 65535.0;
+  x->x_rcp_range =  (double)x->x_range * (1.0/4294967296.0);
+  x->x_state = sigLFO_noise_makeseed();
+  x->x_fact = 2. / 44100.0;
+  x->x_incr = freq * x->x_fact;
+  if(x->x_incr < 0.0)
+    x->x_incr = 0.0;
+  else if(x->x_incr > 0.1)
+    x->x_incr = 0.1;
+  x->x_y1 = sigLFO_noise_new_rand(x);
+  x->x_y2 = sigLFO_noise_new_rand(x);
+  x->x_phase = 0.0;
+  outlet_new(&x->x_obj, gensym("signal"));
+  return (x);
+}
+
+static t_int *sigLFO_noise_perform(t_int *w)
+{
+  t_float *out = (t_float *)(w[1]);
+  t_sigLFO_noise *x = (t_sigLFO_noise *)(w[2]);
+  int n = (int)(w[3]);
+  float phase = x->x_phase;
+  float x_y1 = x->x_y1;
+  float x_y2 = x->x_y2;
+  float incr = x->x_incr;
+  
+  while(n--)
+  {
+    if(phase > 1.0)
+    {
+      x_y1 = x_y2;
+      x_y2 = sigLFO_noise_new_rand(x);
+      phase -= 1.0;
+    }
+    *out++ = (x_y2 - x_y1) * phase + x_y1;
+    phase += incr;
+  }
+  x->x_phase = phase;
+  x->x_y1 = x_y1;
+  x->x_y2 = x_y2;
+  return (w+4);
+}
+
+static void sigLFO_noise_float(t_sigLFO_noise *x, t_float freq)
+{
+  x->x_incr = freq * x->x_fact;
+  if(x->x_incr < 0.0)
+    x->x_incr = 0.0;
+  else if(x->x_incr > 0.1)
+    x->x_incr = 0.1;
+}
+
+static void sigLFO_noise_dsp(t_sigLFO_noise *x, t_signal **sp)
+{
+  x->x_fact = 2. / sp[0]->s_sr;
+  dsp_add(sigLFO_noise_perform, 3, sp[0]->s_vec, x, sp[0]->s_n);
+}
+
+void sigLFO_noise_setup(void)
+{
+  sigLFO_noise_class = class_new(gensym("LFO_noise~"),
+    (t_newmethod)sigLFO_noise_new, 0,
+    sizeof(t_sigLFO_noise), 0, A_DEFFLOAT, 0);
+  class_addmethod(sigLFO_noise_class, (t_method)sigLFO_noise_dsp,
+    gensym("dsp"), 0);
+  class_addfloat(sigLFO_noise_class, (t_method)sigLFO_noise_float);
+  class_sethelpsymbol(sigLFO_noise_class, gensym("iemhelp/help-LFO_noise~"));
+}
diff --git a/src/iemlib2/sigfade.c b/src/iemlib2/sigfade.c
index 5821e1f..01af035 100644
--- a/src/iemlib2/sigfade.c
+++ b/src/iemlib2/sigfade.c
@@ -1,184 +1,184 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-
-/* ------------------------- fade~ ----------------------------- */
-/* --- signal lookup tabel object with input range of 0 to 1 --- */
-/* ---- converts a linear signal ramp to the half of a :  ------ */
-/* -- sine-wave, hanning-wave, squareroot-wave or mixes of it -- */
-
-float *iem_fade_table_lin=(float *)0L;
-float *iem_fade_table_linsqrt=(float *)0L;
-float *iem_fade_table_sqrt=(float *)0L;
-float *iem_fade_table_sin=(float *)0L;
-float *iem_fade_table_sinhann=(float *)0L;
-float *iem_fade_table_hann=(float *)0L;
-
-static t_class *sigfade_class;
-
-typedef struct _sigfade
-{
-  t_object x_obj;
-  float *x_table;
-  float x_f;
-} t_sigfade;
-
-static void sigfade_set(t_sigfade *x, t_symbol *s)
-{
-  if(!strcmp(s->s_name, "_lin"))
-    x->x_table = iem_fade_table_lin;
-  else if(!strcmp(s->s_name, "_linsqrt"))
-    x->x_table = iem_fade_table_linsqrt;
-  else if(!strcmp(s->s_name, "_sqrt"))
-    x->x_table = iem_fade_table_sqrt;
-  else if(!strcmp(s->s_name, "_sin"))
-    x->x_table = iem_fade_table_sin;
-  else if(!strcmp(s->s_name, "_sinhann"))
-    x->x_table = iem_fade_table_sinhann;
-  else if(!strcmp(s->s_name, "_hann"))
-    x->x_table = iem_fade_table_hann;
-}
-
-static void *sigfade_new(t_symbol *s)
-{
-  t_sigfade *x = (t_sigfade *)pd_new(sigfade_class);
-  outlet_new(&x->x_obj, gensym("signal"));
-  x->x_f = 0;
-  x->x_table = iem_fade_table_lin;
-  sigfade_set(x, s);
-  return (x);
-}
-
-static t_int *sigfade_perform(t_int *w)
-{
-  t_float *in = (t_float *)(w[1]);
-  t_float *out = (t_float *)(w[2]);
-  t_sigfade *x = (t_sigfade *)(w[3]);
-  int n = (int)(w[4]);
-  float *tab = x->x_table, *addr, f1, f2, frac;
-  double dphase;
-  int normhipart;
-  union tabfudge tf;
-  
-  tf.tf_d = UNITBIT32;
-  normhipart = tf.tf_i[HIOFFSET];
-  
-#if 0     /* this is the readable version of the code. */
-  while (n--)
-  {
-    dphase = (double)(*in++ * (float)(COSTABSIZE) * 0.99999) + UNITBIT32;
-    tf.tf_d = dphase;
-    addr = tab + (tf.tf_i[HIOFFSET] & (COSTABSIZE-1));
-    tf.tf_i[HIOFFSET] = normhipart;
-    frac = tf.tf_d - UNITBIT32;
-    f1 = addr[0];
-    f2 = addr[1];
-    *out++ = f1 + frac * (f2 - f1);
-  }
-#endif
-#if 1     /* this is the same, unwrapped by hand. */
-  dphase = (double)(*in++ * (float)(COSTABSIZE) * 0.99999) + UNITBIT32;
-  tf.tf_d = dphase;
-  addr = tab + (tf.tf_i[HIOFFSET] & (COSTABSIZE-1));
-  tf.tf_i[HIOFFSET] = normhipart;
-  while (--n)
-  {
-    dphase = (double)(*in++ * (float)(COSTABSIZE) * 0.99999) + UNITBIT32;
-    frac = tf.tf_d - UNITBIT32;
-    tf.tf_d = dphase;
-    f1 = addr[0];
-    f2 = addr[1];
-    addr = tab + (tf.tf_i[HIOFFSET] & (COSTABSIZE-1));
-    *out++ = f1 + frac * (f2 - f1);
-    tf.tf_i[HIOFFSET] = normhipart;
-  }
-  frac = tf.tf_d - UNITBIT32;
-  f1 = addr[0];
-  f2 = addr[1];
-  *out++ = f1 + frac * (f2 - f1);
-#endif
-  return (w+5);
-}
-
-static void sigfade_dsp(t_sigfade *x, t_signal **sp)
-{
-  dsp_add(sigfade_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
-}
-
-static void sigfade_maketable(void)
-{
-  int i;
-  float *fp, phase, fff,phsinc = 0.5*3.141592653 / ((float)COSTABSIZE*0.99999);
-  union tabfudge tf;
-  
-  if(!iem_fade_table_sin)
-  {
-    iem_fade_table_sin = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
-    for(i=COSTABSIZE+1, fp=iem_fade_table_sin, phase=0; i--; fp++, phase+=phsinc)
-      *fp = sin(phase);
-  }
-  if(!iem_fade_table_sinhann)
-  {
-    iem_fade_table_sinhann = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
-    for(i=COSTABSIZE+1, fp=iem_fade_table_sinhann, phase=0; i--; fp++, phase+=phsinc)
-    {
-      fff = sin(phase);
-      *fp = fff*sqrt(fff);
-    }
-  }
-  if(!iem_fade_table_hann)
-  {
-    iem_fade_table_hann = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
-    for(i=COSTABSIZE+1, fp=iem_fade_table_hann, phase=0; i--; fp++, phase+=phsinc)
-    {
-      fff = sin(phase);
-      *fp = fff*fff;
-    }
-  }
-  phsinc = 1.0 / ((float)COSTABSIZE*0.99999);
-  if(!iem_fade_table_lin)
-  {
-    iem_fade_table_lin = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
-    for(i=COSTABSIZE+1, fp=iem_fade_table_lin, phase=0; i--; fp++, phase+=phsinc)
-      *fp = phase;
-  }
-  if(!iem_fade_table_linsqrt)
-  {
-    iem_fade_table_linsqrt = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
-    for(i=COSTABSIZE+1, fp=iem_fade_table_linsqrt, phase=0; i--; fp++, phase+=phsinc)
-      *fp = pow(phase, 0.75);
-  }
-  if(!iem_fade_table_sqrt)
-  {
-    iem_fade_table_sqrt = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
-    for(i=COSTABSIZE+1, fp=iem_fade_table_sqrt, phase=0; i--; fp++, phase+=phsinc)
-      *fp = sqrt(phase);
-  }
-  tf.tf_d = UNITBIT32 + 0.5;
-  if((unsigned)tf.tf_i[LOWOFFSET] != 0x80000000)
-    bug("fade~: unexpected machine alignment");
-}
-
-void sigfade_setup(void)
-{
-  sigfade_class = class_new(gensym("fade~"), (t_newmethod)sigfade_new, 0,
-    sizeof(t_sigfade), 0, A_DEFSYM, 0);
-  CLASS_MAINSIGNALIN(sigfade_class, t_sigfade, x_f);
-  class_addmethod(sigfade_class, (t_method)sigfade_dsp, gensym("dsp"), 0);
-  class_addmethod(sigfade_class, (t_method)sigfade_set, gensym("set"), A_DEFSYM, 0);
-  class_sethelpsymbol(sigfade_class, gensym("iemhelp/help-fade~"));
-  sigfade_maketable();
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <math.h>
+
+/* ------------------------- fade~ ----------------------------- */
+/* --- signal lookup tabel object with input range of 0 to 1 --- */
+/* ---- converts a linear signal ramp to the half of a :  ------ */
+/* -- sine-wave, hanning-wave, squareroot-wave or mixes of it -- */
+
+float *iem_fade_table_lin=(float *)0L;
+float *iem_fade_table_linsqrt=(float *)0L;
+float *iem_fade_table_sqrt=(float *)0L;
+float *iem_fade_table_sin=(float *)0L;
+float *iem_fade_table_sinhann=(float *)0L;
+float *iem_fade_table_hann=(float *)0L;
+
+static t_class *sigfade_class;
+
+typedef struct _sigfade
+{
+  t_object x_obj;
+  float *x_table;
+  float x_f;
+} t_sigfade;
+
+static void sigfade_set(t_sigfade *x, t_symbol *s)
+{
+  if(!strcmp(s->s_name, "_lin"))
+    x->x_table = iem_fade_table_lin;
+  else if(!strcmp(s->s_name, "_linsqrt"))
+    x->x_table = iem_fade_table_linsqrt;
+  else if(!strcmp(s->s_name, "_sqrt"))
+    x->x_table = iem_fade_table_sqrt;
+  else if(!strcmp(s->s_name, "_sin"))
+    x->x_table = iem_fade_table_sin;
+  else if(!strcmp(s->s_name, "_sinhann"))
+    x->x_table = iem_fade_table_sinhann;
+  else if(!strcmp(s->s_name, "_hann"))
+    x->x_table = iem_fade_table_hann;
+}
+
+static void *sigfade_new(t_symbol *s)
+{
+  t_sigfade *x = (t_sigfade *)pd_new(sigfade_class);
+  outlet_new(&x->x_obj, gensym("signal"));
+  x->x_f = 0;
+  x->x_table = iem_fade_table_lin;
+  sigfade_set(x, s);
+  return (x);
+}
+
+static t_int *sigfade_perform(t_int *w)
+{
+  t_float *in = (t_float *)(w[1]);
+  t_float *out = (t_float *)(w[2]);
+  t_sigfade *x = (t_sigfade *)(w[3]);
+  int n = (int)(w[4]);
+  float *tab = x->x_table, *addr, f1, f2, frac;
+  double dphase;
+  int normhipart;
+  union tabfudge tf;
+  
+  tf.tf_d = UNITBIT32;
+  normhipart = tf.tf_i[HIOFFSET];
+  
+#if 0     /* this is the readable version of the code. */
+  while (n--)
+  {
+    dphase = (double)(*in++ * (float)(COSTABSIZE) * 0.99999) + UNITBIT32;
+    tf.tf_d = dphase;
+    addr = tab + (tf.tf_i[HIOFFSET] & (COSTABSIZE-1));
+    tf.tf_i[HIOFFSET] = normhipart;
+    frac = tf.tf_d - UNITBIT32;
+    f1 = addr[0];
+    f2 = addr[1];
+    *out++ = f1 + frac * (f2 - f1);
+  }
+#endif
+#if 1     /* this is the same, unwrapped by hand. */
+  dphase = (double)(*in++ * (float)(COSTABSIZE) * 0.99999) + UNITBIT32;
+  tf.tf_d = dphase;
+  addr = tab + (tf.tf_i[HIOFFSET] & (COSTABSIZE-1));
+  tf.tf_i[HIOFFSET] = normhipart;
+  while (--n)
+  {
+    dphase = (double)(*in++ * (float)(COSTABSIZE) * 0.99999) + UNITBIT32;
+    frac = tf.tf_d - UNITBIT32;
+    tf.tf_d = dphase;
+    f1 = addr[0];
+    f2 = addr[1];
+    addr = tab + (tf.tf_i[HIOFFSET] & (COSTABSIZE-1));
+    *out++ = f1 + frac * (f2 - f1);
+    tf.tf_i[HIOFFSET] = normhipart;
+  }
+  frac = tf.tf_d - UNITBIT32;
+  f1 = addr[0];
+  f2 = addr[1];
+  *out++ = f1 + frac * (f2 - f1);
+#endif
+  return (w+5);
+}
+
+static void sigfade_dsp(t_sigfade *x, t_signal **sp)
+{
+  dsp_add(sigfade_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+}
+
+static void sigfade_maketable(void)
+{
+  int i;
+  float *fp, phase, fff,phsinc = 0.5*3.141592653 / ((float)COSTABSIZE*0.99999);
+  union tabfudge tf;
+  
+  if(!iem_fade_table_sin)
+  {
+    iem_fade_table_sin = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
+    for(i=COSTABSIZE+1, fp=iem_fade_table_sin, phase=0; i--; fp++, phase+=phsinc)
+      *fp = sin(phase);
+  }
+  if(!iem_fade_table_sinhann)
+  {
+    iem_fade_table_sinhann = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
+    for(i=COSTABSIZE+1, fp=iem_fade_table_sinhann, phase=0; i--; fp++, phase+=phsinc)
+    {
+      fff = sin(phase);
+      *fp = fff*sqrt(fff);
+    }
+  }
+  if(!iem_fade_table_hann)
+  {
+    iem_fade_table_hann = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
+    for(i=COSTABSIZE+1, fp=iem_fade_table_hann, phase=0; i--; fp++, phase+=phsinc)
+    {
+      fff = sin(phase);
+      *fp = fff*fff;
+    }
+  }
+  phsinc = 1.0 / ((float)COSTABSIZE*0.99999);
+  if(!iem_fade_table_lin)
+  {
+    iem_fade_table_lin = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
+    for(i=COSTABSIZE+1, fp=iem_fade_table_lin, phase=0; i--; fp++, phase+=phsinc)
+      *fp = phase;
+  }
+  if(!iem_fade_table_linsqrt)
+  {
+    iem_fade_table_linsqrt = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
+    for(i=COSTABSIZE+1, fp=iem_fade_table_linsqrt, phase=0; i--; fp++, phase+=phsinc)
+      *fp = pow(phase, 0.75);
+  }
+  if(!iem_fade_table_sqrt)
+  {
+    iem_fade_table_sqrt = (float *)getbytes(sizeof(float) * (COSTABSIZE+1));
+    for(i=COSTABSIZE+1, fp=iem_fade_table_sqrt, phase=0; i--; fp++, phase+=phsinc)
+      *fp = sqrt(phase);
+  }
+  tf.tf_d = UNITBIT32 + 0.5;
+  if((unsigned)tf.tf_i[LOWOFFSET] != 0x80000000)
+    bug("fade~: unexpected machine alignment");
+}
+
+void sigfade_setup(void)
+{
+  sigfade_class = class_new(gensym("fade~"), (t_newmethod)sigfade_new, 0,
+    sizeof(t_sigfade), 0, A_DEFSYM, 0);
+  CLASS_MAINSIGNALIN(sigfade_class, t_sigfade, x_f);
+  class_addmethod(sigfade_class, (t_method)sigfade_dsp, gensym("dsp"), 0);
+  class_addmethod(sigfade_class, (t_method)sigfade_set, gensym("set"), A_DEFSYM, 0);
+  class_sethelpsymbol(sigfade_class, gensym("iemhelp/help-fade~"));
+  sigfade_maketable();
+}
diff --git a/src/iemlib2/sigiem_blocksize.c b/src/iemlib2/sigiem_blocksize.c
index 0cab61e..280a360 100644
--- a/src/iemlib2/sigiem_blocksize.c
+++ b/src/iemlib2/sigiem_blocksize.c
@@ -1,60 +1,60 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-
-/* ------------------- iem_blocksize~ -------------------- */
-/* -- outputs the current signal-blocksize of a window --- */
-
-static t_class *sigiem_blocksize_class;
-
-typedef struct _sigiem_blocksize
-{
-  t_object  x_obj;
-  t_float   x_blocksize;
-  t_clock   *x_clock;
-  t_float   x_f;
-} t_sigiem_blocksize;
-
-static void sigiem_blocksize_out(t_sigiem_blocksize *x)
-{
-  outlet_float(x->x_obj.ob_outlet, x->x_blocksize);
-}
-
-static void sigiem_blocksize_free(t_sigiem_blocksize *x)
-{
-  clock_free(x->x_clock);
-}
-
-static void *sigiem_blocksize_new(t_symbol *s)
-{
-  t_sigiem_blocksize *x = (t_sigiem_blocksize *)pd_new(sigiem_blocksize_class);
-  x->x_clock = clock_new(x, (t_method)sigiem_blocksize_out);
-  outlet_new(&x->x_obj, &s_float);
-  x->x_blocksize = 64.0f;
-  x->x_f = 0.0f;
-  return (x);
-}
-
-static void sigiem_blocksize_dsp(t_sigiem_blocksize *x, t_signal **sp)
-{
-  x->x_blocksize = (t_float)(sp[0]->s_n);
-  clock_delay(x->x_clock, 0.0f);
-}
-
-void sigiem_blocksize_setup(void)
-{
-  sigiem_blocksize_class = class_new(gensym("iem_blocksize~"), (t_newmethod)sigiem_blocksize_new,
-    (t_method)sigiem_blocksize_free, sizeof(t_sigiem_blocksize), 0, 0);
-  CLASS_MAINSIGNALIN(sigiem_blocksize_class, t_sigiem_blocksize, x_f);
-  class_addmethod(sigiem_blocksize_class, (t_method)sigiem_blocksize_dsp, gensym("dsp"), 0);
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+
+/* ------------------- iem_blocksize~ -------------------- */
+/* -- outputs the current signal-blocksize of a window --- */
+
+static t_class *sigiem_blocksize_class;
+
+typedef struct _sigiem_blocksize
+{
+  t_object  x_obj;
+  t_float   x_blocksize;
+  t_clock   *x_clock;
+  t_float   x_f;
+} t_sigiem_blocksize;
+
+static void sigiem_blocksize_out(t_sigiem_blocksize *x)
+{
+  outlet_float(x->x_obj.ob_outlet, x->x_blocksize);
+}
+
+static void sigiem_blocksize_free(t_sigiem_blocksize *x)
+{
+  clock_free(x->x_clock);
+}
+
+static void *sigiem_blocksize_new(t_symbol *s)
+{
+  t_sigiem_blocksize *x = (t_sigiem_blocksize *)pd_new(sigiem_blocksize_class);
+  x->x_clock = clock_new(x, (t_method)sigiem_blocksize_out);
+  outlet_new(&x->x_obj, &s_float);
+  x->x_blocksize = 64.0f;
+  x->x_f = 0.0f;
+  return (x);
+}
+
+static void sigiem_blocksize_dsp(t_sigiem_blocksize *x, t_signal **sp)
+{
+  x->x_blocksize = (t_float)(sp[0]->s_n);
+  clock_delay(x->x_clock, 0.0f);
+}
+
+void sigiem_blocksize_setup(void)
+{
+  sigiem_blocksize_class = class_new(gensym("iem_blocksize~"), (t_newmethod)sigiem_blocksize_new,
+    (t_method)sigiem_blocksize_free, sizeof(t_sigiem_blocksize), 0, 0);
+  CLASS_MAINSIGNALIN(sigiem_blocksize_class, t_sigiem_blocksize, x_f);
+  class_addmethod(sigiem_blocksize_class, (t_method)sigiem_blocksize_dsp, gensym("dsp"), 0);
+}
diff --git a/src/iemlib2/sigiem_samplerate.c b/src/iemlib2/sigiem_samplerate.c
index 36c5cf1..952af7f 100644
--- a/src/iemlib2/sigiem_samplerate.c
+++ b/src/iemlib2/sigiem_samplerate.c
@@ -1,60 +1,60 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-
-/* --------------- iem_samplerate~ ----------------- */
-/* -- outputs the current samplerate of a window --- */
-
-static t_class *sigiem_samplerate_class;
-
-typedef struct _sigiem_samplerate
-{
-  t_object  x_obj;
-  t_float   x_samplerate;
-  t_clock   *x_clock;
-  t_float   x_f;
-} t_sigiem_samplerate;
-
-static void sigiem_samplerate_out(t_sigiem_samplerate *x)
-{
-  outlet_float(x->x_obj.ob_outlet, x->x_samplerate);
-}
-
-static void sigiem_samplerate_free(t_sigiem_samplerate *x)
-{
-  clock_free(x->x_clock);
-}
-
-static void *sigiem_samplerate_new(t_symbol *s)
-{
-  t_sigiem_samplerate *x = (t_sigiem_samplerate *)pd_new(sigiem_samplerate_class);
-  x->x_clock = clock_new(x, (t_method)sigiem_samplerate_out);
-  outlet_new(&x->x_obj, &s_float);
-  x->x_samplerate = 44100.0f;
-  x->x_f = 0.0f;
-  return (x);
-}
-
-static void sigiem_samplerate_dsp(t_sigiem_samplerate *x, t_signal **sp)
-{
-  x->x_samplerate = (t_float)(sp[0]->s_sr);
-  clock_delay(x->x_clock, 0.0f);
-}
-
-void sigiem_samplerate_setup(void)
-{
-  sigiem_samplerate_class = class_new(gensym("iem_samplerate~"), (t_newmethod)sigiem_samplerate_new,
-    (t_method)sigiem_samplerate_free, sizeof(t_sigiem_samplerate), 0, 0);
-  CLASS_MAINSIGNALIN(sigiem_samplerate_class, t_sigiem_samplerate, x_f);
-  class_addmethod(sigiem_samplerate_class, (t_method)sigiem_samplerate_dsp, gensym("dsp"), 0);
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+
+/* --------------- iem_samplerate~ ----------------- */
+/* -- outputs the current samplerate of a window --- */
+
+static t_class *sigiem_samplerate_class;
+
+typedef struct _sigiem_samplerate
+{
+  t_object  x_obj;
+  t_float   x_samplerate;
+  t_clock   *x_clock;
+  t_float   x_f;
+} t_sigiem_samplerate;
+
+static void sigiem_samplerate_out(t_sigiem_samplerate *x)
+{
+  outlet_float(x->x_obj.ob_outlet, x->x_samplerate);
+}
+
+static void sigiem_samplerate_free(t_sigiem_samplerate *x)
+{
+  clock_free(x->x_clock);
+}
+
+static void *sigiem_samplerate_new(t_symbol *s)
+{
+  t_sigiem_samplerate *x = (t_sigiem_samplerate *)pd_new(sigiem_samplerate_class);
+  x->x_clock = clock_new(x, (t_method)sigiem_samplerate_out);
+  outlet_new(&x->x_obj, &s_float);
+  x->x_samplerate = 44100.0f;
+  x->x_f = 0.0f;
+  return (x);
+}
+
+static void sigiem_samplerate_dsp(t_sigiem_samplerate *x, t_signal **sp)
+{
+  x->x_samplerate = (t_float)(sp[0]->s_sr);
+  clock_delay(x->x_clock, 0.0f);
+}
+
+void sigiem_samplerate_setup(void)
+{
+  sigiem_samplerate_class = class_new(gensym("iem_samplerate~"), (t_newmethod)sigiem_samplerate_new,
+    (t_method)sigiem_samplerate_free, sizeof(t_sigiem_samplerate), 0, 0);
+  CLASS_MAINSIGNALIN(sigiem_samplerate_class, t_sigiem_samplerate, x_f);
+  class_addmethod(sigiem_samplerate_class, (t_method)sigiem_samplerate_dsp, gensym("dsp"), 0);
+}
diff --git a/src/iemlib2/sigm2f.c b/src/iemlib2/sigm2f.c
index 8ff2e9b..eb410c6 100644
--- a/src/iemlib2/sigm2f.c
+++ b/src/iemlib2/sigm2f.c
@@ -1,125 +1,125 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* ----------- m2f~ ----------- */
-/* --------- obsolete --------- */
-
-#define M2FTABSIZE 2048
-
-float *iem_m2f_table=(float *)0L;
-
-static t_class *sigm2f_class;
-
-typedef struct _sigm2f
-{
-  t_object x_obj;
-  float x_msi;
-} t_sigm2f;
-
-static void *sigm2f_new(void)
-{
-  t_sigm2f *x = (t_sigm2f *)pd_new(sigm2f_class);
-  outlet_new(&x->x_obj, gensym("signal"));
-  x->x_msi = 0;
-  return (x);
-}
-
-static t_int *sigm2f_perform(t_int *w)
-{
-  t_float *in = (t_float *)(w[1]);
-  t_float *out = (t_float *)(w[2]);
-  t_sigm2f *x = (t_sigm2f *)(w[3]);
-  int n = (int)(w[4]);
-  float *tab = iem_m2f_table, *addr, f1, f2, frac, iinn;
-  double dphase;
-  int normhipart;
-  union tabfudge tf;
-  
-  tf.tf_d = UNITBIT32;
-  normhipart = tf.tf_i[HIOFFSET];
-  
-#if 0       /* this is the readable version of the code. */
-  while (n--)
-  {
-    iinn = (*in++)*10.0+670.0;
-    dphase = (double)iinn + UNITBIT32;
-    tf.tf_d = dphase;
-    addr = tab + (tf.tf_i[HIOFFSET] & (M2FTABSIZE-1));
-    tf.tf_i[HIOFFSET] = normhipart;
-    frac = tf.tf_d - UNITBIT32;
-    f1 = addr[0];
-    f2 = addr[1];
-    *out++ = f1 + frac * (f2 - f1);
-  }
-#endif
-#if 1       /* this is the same, unwrapped by hand. */
-  iinn = (*in++)*10.0+670.0;
-  dphase = (double)iinn + UNITBIT32;
-  tf.tf_d = dphase;
-  addr = tab + (tf.tf_i[HIOFFSET] & (M2FTABSIZE-1));
-  tf.tf_i[HIOFFSET] = normhipart;
-  while (--n)
-  {
-    iinn = (*in++)*10.0+670.0;
-    dphase = (double)iinn + UNITBIT32;
-    frac = tf.tf_d - UNITBIT32;
-    tf.tf_d = dphase;
-    f1 = addr[0];
-    f2 = addr[1];
-    addr = tab + (tf.tf_i[HIOFFSET] & (M2FTABSIZE-1));
-    *out++ = f1 + frac * (f2 - f1);
-    tf.tf_i[HIOFFSET] = normhipart;
-  }
-  frac = tf.tf_d - UNITBIT32;
-  f1 = addr[0];
-  f2 = addr[1];
-  *out++ = f1 + frac * (f2 - f1);
-#endif
-  return (w+5);
-}
-
-static void sigm2f_dsp(t_sigm2f *x, t_signal **sp)
-{
-  dsp_add(sigm2f_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
-}
-
-static void sigm2f_maketable(void)
-{
-  union tabfudge tf;
-  
-  if(!iem_m2f_table)
-  {
-    int i;
-    float *fp, midi, refexp=440.0*exp(-5.75*log(2.0));
-    
-    iem_m2f_table = (float *)getbytes(sizeof(float) * (M2FTABSIZE+1));
-    for(i=0, fp=iem_m2f_table, midi=-67.0; i<=M2FTABSIZE; i++, fp++, midi+=0.1)
-      *fp = refexp * exp(0.057762265047 * midi);
-  }
-  tf.tf_d = UNITBIT32 + 0.5;
-  if((unsigned)tf.tf_i[LOWOFFSET] != 0x80000000)
-    bug("m2f~: unexpected machine alignment");
-}
-
-void sigm2f_setup(void)
-{
-  sigm2f_class = class_new(gensym("m2f~"), (t_newmethod)sigm2f_new, 0,
-    sizeof(t_sigm2f), 0, 0);
-  CLASS_MAINSIGNALIN(sigm2f_class, t_sigm2f, x_msi);
-  class_addmethod(sigm2f_class, (t_method)sigm2f_dsp, gensym("dsp"), 0);
-  sigm2f_maketable();
-  class_sethelpsymbol(sigm2f_class, gensym("iemhelp/help-m2f~"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* ----------- m2f~ ----------- */
+/* --------- obsolete --------- */
+
+#define M2FTABSIZE 2048
+
+float *iem_m2f_table=(float *)0L;
+
+static t_class *sigm2f_class;
+
+typedef struct _sigm2f
+{
+  t_object x_obj;
+  float x_msi;
+} t_sigm2f;
+
+static void *sigm2f_new(void)
+{
+  t_sigm2f *x = (t_sigm2f *)pd_new(sigm2f_class);
+  outlet_new(&x->x_obj, gensym("signal"));
+  x->x_msi = 0;
+  return (x);
+}
+
+static t_int *sigm2f_perform(t_int *w)
+{
+  t_float *in = (t_float *)(w[1]);
+  t_float *out = (t_float *)(w[2]);
+  t_sigm2f *x = (t_sigm2f *)(w[3]);
+  int n = (int)(w[4]);
+  float *tab = iem_m2f_table, *addr, f1, f2, frac, iinn;
+  double dphase;
+  int normhipart;
+  union tabfudge tf;
+  
+  tf.tf_d = UNITBIT32;
+  normhipart = tf.tf_i[HIOFFSET];
+  
+#if 0       /* this is the readable version of the code. */
+  while (n--)
+  {
+    iinn = (*in++)*10.0+670.0;
+    dphase = (double)iinn + UNITBIT32;
+    tf.tf_d = dphase;
+    addr = tab + (tf.tf_i[HIOFFSET] & (M2FTABSIZE-1));
+    tf.tf_i[HIOFFSET] = normhipart;
+    frac = tf.tf_d - UNITBIT32;
+    f1 = addr[0];
+    f2 = addr[1];
+    *out++ = f1 + frac * (f2 - f1);
+  }
+#endif
+#if 1       /* this is the same, unwrapped by hand. */
+  iinn = (*in++)*10.0+670.0;
+  dphase = (double)iinn + UNITBIT32;
+  tf.tf_d = dphase;
+  addr = tab + (tf.tf_i[HIOFFSET] & (M2FTABSIZE-1));
+  tf.tf_i[HIOFFSET] = normhipart;
+  while (--n)
+  {
+    iinn = (*in++)*10.0+670.0;
+    dphase = (double)iinn + UNITBIT32;
+    frac = tf.tf_d - UNITBIT32;
+    tf.tf_d = dphase;
+    f1 = addr[0];
+    f2 = addr[1];
+    addr = tab + (tf.tf_i[HIOFFSET] & (M2FTABSIZE-1));
+    *out++ = f1 + frac * (f2 - f1);
+    tf.tf_i[HIOFFSET] = normhipart;
+  }
+  frac = tf.tf_d - UNITBIT32;
+  f1 = addr[0];
+  f2 = addr[1];
+  *out++ = f1 + frac * (f2 - f1);
+#endif
+  return (w+5);
+}
+
+static void sigm2f_dsp(t_sigm2f *x, t_signal **sp)
+{
+  dsp_add(sigm2f_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n);
+}
+
+static void sigm2f_maketable(void)
+{
+  union tabfudge tf;
+  
+  if(!iem_m2f_table)
+  {
+    int i;
+    float *fp, midi, refexp=440.0*exp(-5.75*log(2.0));
+    
+    iem_m2f_table = (float *)getbytes(sizeof(float) * (M2FTABSIZE+1));
+    for(i=0, fp=iem_m2f_table, midi=-67.0; i<=M2FTABSIZE; i++, fp++, midi+=0.1)
+      *fp = refexp * exp(0.057762265047 * midi);
+  }
+  tf.tf_d = UNITBIT32 + 0.5;
+  if((unsigned)tf.tf_i[LOWOFFSET] != 0x80000000)
+    bug("m2f~: unexpected machine alignment");
+}
+
+void sigm2f_setup(void)
+{
+  sigm2f_class = class_new(gensym("m2f~"), (t_newmethod)sigm2f_new, 0,
+    sizeof(t_sigm2f), 0, 0);
+  CLASS_MAINSIGNALIN(sigm2f_class, t_sigm2f, x_msi);
+  class_addmethod(sigm2f_class, (t_method)sigm2f_dsp, gensym("dsp"), 0);
+  sigm2f_maketable();
+  class_sethelpsymbol(sigm2f_class, gensym("iemhelp/help-m2f~"));
+}
diff --git a/src/iemlib2/speedlim.c b/src/iemlib2/speedlim.c
index 7b91860..40ad092 100644
--- a/src/iemlib2/speedlim.c
+++ b/src/iemlib2/speedlim.c
@@ -1,107 +1,107 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* ----------------------- speedlim -------------------------- */
-/* -- reduces the flow of float-messages to one message per -- */
-/* ----------------- initial argument time in ms ------------- */
-
-static t_class *speedlim_class;
-
-typedef struct _speedlim
-{
-  t_object  x_obj;
-  t_clock   *x_clock;
-  float     x_delay;
-  int       x_output_is_locked;
-  int       x_there_was_n_event;
-  float     x_curval;
-  float     x_lastout;
-} t_speedlim;
-
-static void speedlim_stop(t_speedlim *x)
-{
-  x->x_output_is_locked = 0;
-  x->x_there_was_n_event = 0;
-  clock_unset(x->x_clock);
-}
-
-static void speedlim_tick(t_speedlim *x)
-{
-  if(x->x_there_was_n_event)
-  {
-    x->x_output_is_locked = 1;
-    x->x_there_was_n_event = 0;
-    outlet_float(x->x_obj.ob_outlet, x->x_curval);
-    clock_delay(x->x_clock, x->x_delay);
-  }
-  else
-  {
-    x->x_output_is_locked = 0;
-    x->x_there_was_n_event = 0;
-  }
-}
-
-static void speedlim_float(t_speedlim *x, t_float val)
-{
-  x->x_curval = val;
-  if(!x->x_output_is_locked)
-  {
-    x->x_output_is_locked = 1;
-    x->x_there_was_n_event = 0;
-    outlet_float(x->x_obj.ob_outlet, x->x_curval);
-    clock_delay(x->x_clock, x->x_delay);
-  }
-  else
-    x->x_there_was_n_event = 1;
-}
-
-static void speedlim_ft1(t_speedlim *x, t_float delay)
-{
-  if(delay < 0.0)
-    delay = 0.0;
-  x->x_delay = delay;
-}
-
-static void speedlim_free(t_speedlim *x)
-{
-  clock_free(x->x_clock);
-}
-
-static void *speedlim_new(t_float delay)
-{
-  t_speedlim *x = (t_speedlim *)pd_new(speedlim_class);
-  
-  if(delay < 0.0)
-    delay = 0.0;
-  x->x_delay = delay;
-  x->x_curval = 0.0f;
-  x->x_output_is_locked = 0;
-  x->x_there_was_n_event = 0;
-  x->x_clock = clock_new(x, (t_method)speedlim_tick);
-  outlet_new(&x->x_obj, &s_float);
-  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
-  return (x);
-}
-
-void speedlim_setup(void)
-{
-  speedlim_class = class_new(gensym("speedlim"), (t_newmethod)speedlim_new,
-    (t_method)speedlim_free, sizeof(t_speedlim), 0, A_DEFFLOAT, 0);
-  class_addmethod(speedlim_class, (t_method)speedlim_stop, gensym("stop"), 0);
-  class_addfloat(speedlim_class, (t_method)speedlim_float);
-  class_addmethod(speedlim_class, (t_method)speedlim_ft1, gensym("ft1"), A_FLOAT, 0);
-  class_sethelpsymbol(speedlim_class, gensym("iemhelp/help-speedlim"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* ----------------------- speedlim -------------------------- */
+/* -- reduces the flow of float-messages to one message per -- */
+/* ----------------- initial argument time in ms ------------- */
+
+static t_class *speedlim_class;
+
+typedef struct _speedlim
+{
+  t_object  x_obj;
+  t_clock   *x_clock;
+  float     x_delay;
+  int       x_output_is_locked;
+  int       x_there_was_n_event;
+  float     x_curval;
+  float     x_lastout;
+} t_speedlim;
+
+static void speedlim_stop(t_speedlim *x)
+{
+  x->x_output_is_locked = 0;
+  x->x_there_was_n_event = 0;
+  clock_unset(x->x_clock);
+}
+
+static void speedlim_tick(t_speedlim *x)
+{
+  if(x->x_there_was_n_event)
+  {
+    x->x_output_is_locked = 1;
+    x->x_there_was_n_event = 0;
+    outlet_float(x->x_obj.ob_outlet, x->x_curval);
+    clock_delay(x->x_clock, x->x_delay);
+  }
+  else
+  {
+    x->x_output_is_locked = 0;
+    x->x_there_was_n_event = 0;
+  }
+}
+
+static void speedlim_float(t_speedlim *x, t_float val)
+{
+  x->x_curval = val;
+  if(!x->x_output_is_locked)
+  {
+    x->x_output_is_locked = 1;
+    x->x_there_was_n_event = 0;
+    outlet_float(x->x_obj.ob_outlet, x->x_curval);
+    clock_delay(x->x_clock, x->x_delay);
+  }
+  else
+    x->x_there_was_n_event = 1;
+}
+
+static void speedlim_ft1(t_speedlim *x, t_float delay)
+{
+  if(delay < 0.0)
+    delay = 0.0;
+  x->x_delay = delay;
+}
+
+static void speedlim_free(t_speedlim *x)
+{
+  clock_free(x->x_clock);
+}
+
+static void *speedlim_new(t_float delay)
+{
+  t_speedlim *x = (t_speedlim *)pd_new(speedlim_class);
+  
+  if(delay < 0.0)
+    delay = 0.0;
+  x->x_delay = delay;
+  x->x_curval = 0.0f;
+  x->x_output_is_locked = 0;
+  x->x_there_was_n_event = 0;
+  x->x_clock = clock_new(x, (t_method)speedlim_tick);
+  outlet_new(&x->x_obj, &s_float);
+  inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1"));
+  return (x);
+}
+
+void speedlim_setup(void)
+{
+  speedlim_class = class_new(gensym("speedlim"), (t_newmethod)speedlim_new,
+    (t_method)speedlim_free, sizeof(t_speedlim), 0, A_DEFFLOAT, 0);
+  class_addmethod(speedlim_class, (t_method)speedlim_stop, gensym("stop"), 0);
+  class_addfloat(speedlim_class, (t_method)speedlim_float);
+  class_addmethod(speedlim_class, (t_method)speedlim_ft1, gensym("ft1"), A_FLOAT, 0);
+  class_sethelpsymbol(speedlim_class, gensym("iemhelp/help-speedlim"));
+}
diff --git a/src/iemlib2/splitfilename.c b/src/iemlib2/splitfilename.c
index fc69518..20330e5 100644
--- a/src/iemlib2/splitfilename.c
+++ b/src/iemlib2/splitfilename.c
@@ -1,153 +1,153 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* ----------------------- splitfilename -------------------------- */
-/* -- splits a symbol into 2 parts (path + file) at the position -- */
-/* -- of the first separator-character beginnig from the right ---- */
-/* ---------- eliminating the separator-character ----------------- */
-
-static t_class *splitfilename_class;
-
-typedef struct _splitfilename
-{
-	t_object x_obj;
-	char     x_sep[2];
-	void     *x_outpath;
-	void     *x_outfile;
-} t_splitfilename;
-
-static void splitfilename_separator(t_splitfilename *x, t_symbol *s, int ac, t_atom *av)
-{
-	if(ac > 0)
-	{
-		if(IS_A_SYMBOL(av, 0))
-		{
-			if(strlen(av->a_w.w_symbol->s_name) == 1)
-				x->x_sep[0] = av->a_w.w_symbol->s_name[0];
-			else if(!strcmp(av->a_w.w_symbol->s_name, "backslash"))
-				x->x_sep[0] = '\\';
-			else if(!strcmp(av->a_w.w_symbol->s_name, "slash"))
-				x->x_sep[0] = '/';
-			else if(!strcmp(av->a_w.w_symbol->s_name, "blank"))
-				x->x_sep[0] = ' ';
-			else if(!strcmp(av->a_w.w_symbol->s_name, "space"))
-				x->x_sep[0] = ' ';
-			else if(!strcmp(av->a_w.w_symbol->s_name, "dollar"))
-				x->x_sep[0] = '$';
-			else if(!strcmp(av->a_w.w_symbol->s_name, "comma"))
-				x->x_sep[0] = ',';
-			else if(!strcmp(av->a_w.w_symbol->s_name, "semi"))
-				x->x_sep[0] = ';';
-			else if(!strcmp(av->a_w.w_symbol->s_name, "leftbrace"))
-				x->x_sep[0] = '{';
-			else if(!strcmp(av->a_w.w_symbol->s_name, "rightbrace"))
-				x->x_sep[0] = '}';
-			else
-				x->x_sep[0] = '/';
-		}
-		else if(IS_A_FLOAT(av, 0))
-		{
-			int i;
-			float f=fabs(av->a_w.w_float);
-			
-			while(f >= 10.0)
-				f *= 0.1;
-			i = (int)f;
-			x->x_sep[0] = (char)i + '0';
-		}
-	}
-	else
-		x->x_sep[0] = 0;
-}
-
-static void splitfilename_symbol(t_splitfilename *x, t_symbol *s)
-{
-	int len = strlen(s->s_name);
-	
-	if(len)
-	{
-		if(x->x_sep[0] != 0)
-		{
-			char *str_path = (char *)getbytes(len*sizeof(char));
-			char *str_file = (char *)getbytes(len*sizeof(char));
-			char *cpp, *cpf;
-			
-			strcpy(str_path, s->s_name);
-			strcpy(str_file, s->s_name);
-			cpp = strrchr(str_path, x->x_sep[0]);
-			cpf = strrchr(str_file, x->x_sep[0]);
-			if(!cpp) /* JMZ: 20050701 */
-			{
-				outlet_symbol(x->x_outfile, gensym(str_file));
-				outlet_symbol(x->x_outpath, &s_);			  
-			} 
-			else if (!cpf) /* JMZ: 20050701 */
-			{
-				outlet_symbol(x->x_outfile, &s_);
-				outlet_symbol(x->x_outpath, gensym(str_path));
-			}
-			else if((cpp - str_path) < 0) /* JMZ:removed typecast (char*) to (int); this is not portable */
-			  {
-				outlet_symbol(x->x_outfile, gensym(str_file));
-				outlet_symbol(x->x_outpath, &s_);
-			  }
-			else if((cpp - str_path) >= len) /* JMZ: removed typecast (char*) to (int) */
-			    {
-				outlet_symbol(x->x_outfile, &s_);
-				outlet_symbol(x->x_outpath, gensym(str_path));
-			  }
-			  else
-			  {
-				*cpp = 0;
-				cpf++;
-				outlet_symbol(x->x_outfile, gensym(cpf));
-				outlet_symbol(x->x_outpath, gensym(str_path));
-			  }
-			freebytes(str_file, len*sizeof(char));
-			freebytes(str_path, len*sizeof(char));
-		}
-		else
-		{
-			outlet_symbol(x->x_outfile, &s_);
-			outlet_symbol(x->x_outpath, s);
-		}
-	}
-}
-
-static void *splitfilename_new(t_symbol *s, int ac, t_atom *av)
-{
-	t_splitfilename *x = (t_splitfilename *)pd_new(splitfilename_class);
-	
-	x->x_sep[0] = 0;
-	x->x_sep[1] = 0;
-	if(ac == 0)
-		x->x_sep[0] = '/';
-	else
-		splitfilename_separator(x, s, ac, av);
-	x->x_outpath = outlet_new(&x->x_obj, &s_symbol);
-	x->x_outfile = outlet_new(&x->x_obj, &s_symbol);
-	return (x);
-}
-
-void splitfilename_setup(void)
-{
-	splitfilename_class = class_new(gensym("splitfilename"), (t_newmethod)splitfilename_new,
-		0, sizeof(t_splitfilename), 0, A_GIMME, 0);
-	class_addsymbol(splitfilename_class, splitfilename_symbol);
-	class_addmethod(splitfilename_class, (t_method)splitfilename_separator, gensym("separator"), A_GIMME, 0);
-	class_addmethod(splitfilename_class, (t_method)splitfilename_separator, gensym("sep"), A_GIMME, 0);
-	class_sethelpsymbol(splitfilename_class, gensym("iemhelp/help-splitfilename"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* ----------------------- splitfilename -------------------------- */
+/* -- splits a symbol into 2 parts (path + file) at the position -- */
+/* -- of the first separator-character beginnig from the right ---- */
+/* ---------- eliminating the separator-character ----------------- */
+
+static t_class *splitfilename_class;
+
+typedef struct _splitfilename
+{
+	t_object x_obj;
+	char     x_sep[2];
+	void     *x_outpath;
+	void     *x_outfile;
+} t_splitfilename;
+
+static void splitfilename_separator(t_splitfilename *x, t_symbol *s, int ac, t_atom *av)
+{
+	if(ac > 0)
+	{
+		if(IS_A_SYMBOL(av, 0))
+		{
+			if(strlen(av->a_w.w_symbol->s_name) == 1)
+				x->x_sep[0] = av->a_w.w_symbol->s_name[0];
+			else if(!strcmp(av->a_w.w_symbol->s_name, "backslash"))
+				x->x_sep[0] = '\\';
+			else if(!strcmp(av->a_w.w_symbol->s_name, "slash"))
+				x->x_sep[0] = '/';
+			else if(!strcmp(av->a_w.w_symbol->s_name, "blank"))
+				x->x_sep[0] = ' ';
+			else if(!strcmp(av->a_w.w_symbol->s_name, "space"))
+				x->x_sep[0] = ' ';
+			else if(!strcmp(av->a_w.w_symbol->s_name, "dollar"))
+				x->x_sep[0] = '$';
+			else if(!strcmp(av->a_w.w_symbol->s_name, "comma"))
+				x->x_sep[0] = ',';
+			else if(!strcmp(av->a_w.w_symbol->s_name, "semi"))
+				x->x_sep[0] = ';';
+			else if(!strcmp(av->a_w.w_symbol->s_name, "leftbrace"))
+				x->x_sep[0] = '{';
+			else if(!strcmp(av->a_w.w_symbol->s_name, "rightbrace"))
+				x->x_sep[0] = '}';
+			else
+				x->x_sep[0] = '/';
+		}
+		else if(IS_A_FLOAT(av, 0))
+		{
+			int i;
+			float f=fabs(av->a_w.w_float);
+			
+			while(f >= 10.0)
+				f *= 0.1;
+			i = (int)f;
+			x->x_sep[0] = (char)i + '0';
+		}
+	}
+	else
+		x->x_sep[0] = 0;
+}
+
+static void splitfilename_symbol(t_splitfilename *x, t_symbol *s)
+{
+	int len = strlen(s->s_name);
+	
+	if(len)
+	{
+		if(x->x_sep[0] != 0)
+		{
+			char *str_path = (char *)getbytes(len*sizeof(char));
+			char *str_file = (char *)getbytes(len*sizeof(char));
+			char *cpp, *cpf;
+			
+			strcpy(str_path, s->s_name);
+			strcpy(str_file, s->s_name);
+			cpp = strrchr(str_path, x->x_sep[0]);
+			cpf = strrchr(str_file, x->x_sep[0]);
+			if(!cpp) /* JMZ: 20050701 */
+			{
+				outlet_symbol(x->x_outfile, gensym(str_file));
+				outlet_symbol(x->x_outpath, &s_);			  
+			} 
+			else if (!cpf) /* JMZ: 20050701 */
+			{
+				outlet_symbol(x->x_outfile, &s_);
+				outlet_symbol(x->x_outpath, gensym(str_path));
+			}
+			else if((cpp - str_path) < 0) /* JMZ:removed typecast (char*) to (int); this is not portable */
+			  {
+				outlet_symbol(x->x_outfile, gensym(str_file));
+				outlet_symbol(x->x_outpath, &s_);
+			  }
+			else if((cpp - str_path) >= len) /* JMZ: removed typecast (char*) to (int) */
+			    {
+				outlet_symbol(x->x_outfile, &s_);
+				outlet_symbol(x->x_outpath, gensym(str_path));
+			  }
+			  else
+			  {
+				*cpp = 0;
+				cpf++;
+				outlet_symbol(x->x_outfile, gensym(cpf));
+				outlet_symbol(x->x_outpath, gensym(str_path));
+			  }
+			freebytes(str_file, len*sizeof(char));
+			freebytes(str_path, len*sizeof(char));
+		}
+		else
+		{
+			outlet_symbol(x->x_outfile, &s_);
+			outlet_symbol(x->x_outpath, s);
+		}
+	}
+}
+
+static void *splitfilename_new(t_symbol *s, int ac, t_atom *av)
+{
+	t_splitfilename *x = (t_splitfilename *)pd_new(splitfilename_class);
+	
+	x->x_sep[0] = 0;
+	x->x_sep[1] = 0;
+	if(ac == 0)
+		x->x_sep[0] = '/';
+	else
+		splitfilename_separator(x, s, ac, av);
+	x->x_outpath = outlet_new(&x->x_obj, &s_symbol);
+	x->x_outfile = outlet_new(&x->x_obj, &s_symbol);
+	return (x);
+}
+
+void splitfilename_setup(void)
+{
+	splitfilename_class = class_new(gensym("splitfilename"), (t_newmethod)splitfilename_new,
+		0, sizeof(t_splitfilename), 0, A_GIMME, 0);
+	class_addsymbol(splitfilename_class, splitfilename_symbol);
+	class_addmethod(splitfilename_class, (t_method)splitfilename_separator, gensym("separator"), A_GIMME, 0);
+	class_addmethod(splitfilename_class, (t_method)splitfilename_separator, gensym("sep"), A_GIMME, 0);
+	class_sethelpsymbol(splitfilename_class, gensym("iemhelp/help-splitfilename"));
+}
diff --git a/src/iemlib2/stripfilename.c b/src/iemlib2/stripfilename.c
index 97d9b8b..086bf1e 100644
--- a/src/iemlib2/stripfilename.c
+++ b/src/iemlib2/stripfilename.c
@@ -1,81 +1,81 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* -------------------------- stripfilename ----------------------- */
-/* -- strips the first n or last n characters, depending on sign -- */
-/* ------- of the initial argument (set message argument) --------- */
-
-static t_class *stripfilename_class;
-
-typedef struct _stripfilename
-{
-  t_object x_obj;
-  int      x_nr_char;
-} t_stripfilename;
-
-static void stripfilename_symbol(t_stripfilename *x, t_symbol *s)
-{
-  if(x->x_nr_char < 0)
-  {
-    int len = strlen(s->s_name);
-    char *str=(char *)getbytes((len+2)*sizeof(char));
-    int i=len + x->x_nr_char;
-    
-    strcpy(str, s->s_name);
-    if(i < 0)
-      i = 0;
-    str[i] = 0;
-    outlet_symbol(x->x_obj.ob_outlet, gensym(str));
-    freebytes(str, (len+2)*sizeof(char));
-  }
-  else if(x->x_nr_char > 0)
-  {
-    int len = strlen(s->s_name);
-    char *str=(char *)getbytes((len+2)*sizeof(char));
-    int i=x->x_nr_char;
-    
-    strcpy(str, s->s_name);
-    if(i > len)
-      i = len;
-    outlet_symbol(x->x_obj.ob_outlet, gensym(str+i));
-    freebytes(str, (len+2)*sizeof(char));
-  }
-  else
-    outlet_symbol(x->x_obj.ob_outlet, s);
-}
-
-static void stripfilename_set(t_stripfilename *x, t_floatarg nr_char)
-{
-  x->x_nr_char = (int)nr_char;
-}
-
-static void *stripfilename_new(t_floatarg nr_char)
-{
-  t_stripfilename *x = (t_stripfilename *)pd_new(stripfilename_class);
-  
-  stripfilename_set(x, nr_char);
-  outlet_new(&x->x_obj, &s_symbol);
-  return (x);
-}
-
-void stripfilename_setup(void)
-{
-  stripfilename_class = class_new(gensym("stripfilename"), (t_newmethod)stripfilename_new,
-    0, sizeof(t_stripfilename), 0, A_DEFFLOAT, 0);
-  class_addsymbol(stripfilename_class, stripfilename_symbol);
-  class_addmethod(stripfilename_class, (t_method)stripfilename_set, gensym("set"), A_FLOAT, 0);
-  class_sethelpsymbol(stripfilename_class, gensym("iemhelp/help-stripfilename"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* -------------------------- stripfilename ----------------------- */
+/* -- strips the first n or last n characters, depending on sign -- */
+/* ------- of the initial argument (set message argument) --------- */
+
+static t_class *stripfilename_class;
+
+typedef struct _stripfilename
+{
+  t_object x_obj;
+  int      x_nr_char;
+} t_stripfilename;
+
+static void stripfilename_symbol(t_stripfilename *x, t_symbol *s)
+{
+  if(x->x_nr_char < 0)
+  {
+    int len = strlen(s->s_name);
+    char *str=(char *)getbytes((len+2)*sizeof(char));
+    int i=len + x->x_nr_char;
+    
+    strcpy(str, s->s_name);
+    if(i < 0)
+      i = 0;
+    str[i] = 0;
+    outlet_symbol(x->x_obj.ob_outlet, gensym(str));
+    freebytes(str, (len+2)*sizeof(char));
+  }
+  else if(x->x_nr_char > 0)
+  {
+    int len = strlen(s->s_name);
+    char *str=(char *)getbytes((len+2)*sizeof(char));
+    int i=x->x_nr_char;
+    
+    strcpy(str, s->s_name);
+    if(i > len)
+      i = len;
+    outlet_symbol(x->x_obj.ob_outlet, gensym(str+i));
+    freebytes(str, (len+2)*sizeof(char));
+  }
+  else
+    outlet_symbol(x->x_obj.ob_outlet, s);
+}
+
+static void stripfilename_set(t_stripfilename *x, t_floatarg nr_char)
+{
+  x->x_nr_char = (int)nr_char;
+}
+
+static void *stripfilename_new(t_floatarg nr_char)
+{
+  t_stripfilename *x = (t_stripfilename *)pd_new(stripfilename_class);
+  
+  stripfilename_set(x, nr_char);
+  outlet_new(&x->x_obj, &s_symbol);
+  return (x);
+}
+
+void stripfilename_setup(void)
+{
+  stripfilename_class = class_new(gensym("stripfilename"), (t_newmethod)stripfilename_new,
+    0, sizeof(t_stripfilename), 0, A_DEFFLOAT, 0);
+  class_addsymbol(stripfilename_class, stripfilename_symbol);
+  class_addmethod(stripfilename_class, (t_method)stripfilename_set, gensym("set"), A_FLOAT, 0);
+  class_sethelpsymbol(stripfilename_class, gensym("iemhelp/help-stripfilename"));
+}
diff --git a/src/iemlib2/toggle_mess.c b/src/iemlib2/toggle_mess.c
index feb1b79..1fc5bff 100644
--- a/src/iemlib2/toggle_mess.c
+++ b/src/iemlib2/toggle_mess.c
@@ -1,121 +1,121 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* ------------------------ toggle_mess ---------------------------- */
-/* -- inital arguments building a set of messages, any incomming --- */
-/* -- increments the internal counter and outputs the n-th initial --*/
-/* -- message. -- */
-
-static t_class *toggle_mess_class;
-
-typedef struct _toggle_mess
-{
-  t_object   x_obj;
-  int        x_index;
-  int        x_ac;
-  t_atom     *x_at;
-  void       *x_out_mid_sym;
-  void       *x_out_rght_flt;
-  t_symbol   *x_set;
-} t_toggle_mess;
-
-static void toggle_mess_bang(t_toggle_mess *x)
-{
-  int i = x->x_index;
-
-  outlet_float(x->x_out_rght_flt, (float)i);
-  if(IS_A_FLOAT(x->x_at, i))
-    outlet_float(x->x_out_mid_sym, atom_getfloat(&x->x_at[i]));
-  else
-    outlet_anything(x->x_out_mid_sym, atom_getsymbol(&x->x_at[i]), 0, x->x_at);
-  outlet_anything(x->x_obj.ob_outlet, x->x_set, 1, &x->x_at[i]);
-}
-
-static void toggle_mess_float(t_toggle_mess *x, t_float f)
-{
-  x->x_index++;
-  if(x->x_index >= x->x_ac)
-    x->x_index = 0;
-  toggle_mess_bang(x);
-}
-
-static void toggle_mess_set(t_toggle_mess *x, t_symbol *s, int ac, t_atom *av)
-{
-  if((ac >= 1) && (IS_A_FLOAT(av, 0)))
-  {
-    int x_index = (int)atom_getint(av);
-
-    if(x_index < 0)
-      x_index = 0;
-    else if(x_index >= x->x_ac)
-      x_index = x->x_ac;
-    x->x_index = x_index;
-    outlet_anything(x->x_obj.ob_outlet, x->x_set, 1, &x->x_at[x_index]);
-  }
-  else
-    toggle_mess_float(x, 0);
-}
-
-static void toggle_mess_symbol(t_toggle_mess *x, t_symbol *s)
-{
-  toggle_mess_float(x, 0);
-}
-
-static void toggle_mess_anything(t_toggle_mess *x, t_symbol *s, int ac, t_atom *av)
-{
-  toggle_mess_float(x, 0);
-}
-
-static void toggle_mess_free(t_toggle_mess *x)
-{
-  freebytes(x->x_at, x->x_ac * sizeof(t_atom));
-}
-
-static void *toggle_mess_new(t_symbol *s, int ac, t_atom *av)
-{
-  t_toggle_mess *x = (t_toggle_mess *)pd_new(toggle_mess_class);
-  int i;
-
-  if(!ac)
-  {
-    post("toggle_mess-ERROR: must have at least one argument!");
-    x->x_at = (t_atom *)0;
-    return(0);
-  }
-  x->x_ac = ac;
-  x->x_at = (t_atom *)getbytes(ac * sizeof(t_atom));
-  for(i=0; i<ac; i++)
-    x->x_at[i] = *av++;
-  x->x_index = 0;
-  x->x_set = gensym("set");
-  outlet_new(&x->x_obj, &s_list);
-  x->x_out_mid_sym = outlet_new(&x->x_obj, &s_list);
-  x->x_out_rght_flt = outlet_new(&x->x_obj, &s_float);
-  return(x);
-}
-
-void toggle_mess_setup(void)
-{
-  toggle_mess_class = class_new(gensym("toggle_mess"), (t_newmethod)toggle_mess_new,
-    (t_method)toggle_mess_free, sizeof(t_toggle_mess), 0, A_GIMME, 0);
-  class_addcreator((t_newmethod)toggle_mess_new, gensym("tm"), A_GIMME, 0);
-  class_addbang(toggle_mess_class, (t_method)toggle_mess_bang);
-  class_addmethod(toggle_mess_class, (t_method)toggle_mess_set, gensym("set"), A_GIMME, 0);
-  class_addfloat(toggle_mess_class, (t_method)toggle_mess_float);
-  class_addsymbol(toggle_mess_class, toggle_mess_symbol);
-  class_addanything(toggle_mess_class, toggle_mess_anything);
-  class_sethelpsymbol(toggle_mess_class, gensym("iemhelp/help-toggle_mess"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* ------------------------ toggle_mess ---------------------------- */
+/* -- inital arguments building a set of messages, any incomming --- */
+/* -- increments the internal counter and outputs the n-th initial --*/
+/* -- message. -- */
+
+static t_class *toggle_mess_class;
+
+typedef struct _toggle_mess
+{
+  t_object   x_obj;
+  int        x_index;
+  int        x_ac;
+  t_atom     *x_at;
+  void       *x_out_mid_sym;
+  void       *x_out_rght_flt;
+  t_symbol   *x_set;
+} t_toggle_mess;
+
+static void toggle_mess_bang(t_toggle_mess *x)
+{
+  int i = x->x_index;
+
+  outlet_float(x->x_out_rght_flt, (float)i);
+  if(IS_A_FLOAT(x->x_at, i))
+    outlet_float(x->x_out_mid_sym, atom_getfloat(&x->x_at[i]));
+  else
+    outlet_anything(x->x_out_mid_sym, atom_getsymbol(&x->x_at[i]), 0, x->x_at);
+  outlet_anything(x->x_obj.ob_outlet, x->x_set, 1, &x->x_at[i]);
+}
+
+static void toggle_mess_float(t_toggle_mess *x, t_float f)
+{
+  x->x_index++;
+  if(x->x_index >= x->x_ac)
+    x->x_index = 0;
+  toggle_mess_bang(x);
+}
+
+static void toggle_mess_set(t_toggle_mess *x, t_symbol *s, int ac, t_atom *av)
+{
+  if((ac >= 1) && (IS_A_FLOAT(av, 0)))
+  {
+    int x_index = (int)atom_getint(av);
+
+    if(x_index < 0)
+      x_index = 0;
+    else if(x_index >= x->x_ac)
+      x_index = x->x_ac;
+    x->x_index = x_index;
+    outlet_anything(x->x_obj.ob_outlet, x->x_set, 1, &x->x_at[x_index]);
+  }
+  else
+    toggle_mess_float(x, 0);
+}
+
+static void toggle_mess_symbol(t_toggle_mess *x, t_symbol *s)
+{
+  toggle_mess_float(x, 0);
+}
+
+static void toggle_mess_anything(t_toggle_mess *x, t_symbol *s, int ac, t_atom *av)
+{
+  toggle_mess_float(x, 0);
+}
+
+static void toggle_mess_free(t_toggle_mess *x)
+{
+  freebytes(x->x_at, x->x_ac * sizeof(t_atom));
+}
+
+static void *toggle_mess_new(t_symbol *s, int ac, t_atom *av)
+{
+  t_toggle_mess *x = (t_toggle_mess *)pd_new(toggle_mess_class);
+  int i;
+
+  if(!ac)
+  {
+    post("toggle_mess-ERROR: must have at least one argument!");
+    x->x_at = (t_atom *)0;
+    return(0);
+  }
+  x->x_ac = ac;
+  x->x_at = (t_atom *)getbytes(ac * sizeof(t_atom));
+  for(i=0; i<ac; i++)
+    x->x_at[i] = *av++;
+  x->x_index = 0;
+  x->x_set = gensym("set");
+  outlet_new(&x->x_obj, &s_list);
+  x->x_out_mid_sym = outlet_new(&x->x_obj, &s_list);
+  x->x_out_rght_flt = outlet_new(&x->x_obj, &s_float);
+  return(x);
+}
+
+void toggle_mess_setup(void)
+{
+  toggle_mess_class = class_new(gensym("toggle_mess"), (t_newmethod)toggle_mess_new,
+    (t_method)toggle_mess_free, sizeof(t_toggle_mess), 0, A_GIMME, 0);
+  class_addcreator((t_newmethod)toggle_mess_new, gensym("tm"), A_GIMME, 0);
+  class_addbang(toggle_mess_class, (t_method)toggle_mess_bang);
+  class_addmethod(toggle_mess_class, (t_method)toggle_mess_set, gensym("set"), A_GIMME, 0);
+  class_addfloat(toggle_mess_class, (t_method)toggle_mess_float);
+  class_addsymbol(toggle_mess_class, toggle_mess_symbol);
+  class_addanything(toggle_mess_class, toggle_mess_anything);
+  class_sethelpsymbol(toggle_mess_class, gensym("iemhelp/help-toggle_mess"));
+}
diff --git a/src/iemlib2/transf_fader.c b/src/iemlib2/transf_fader.c
index 33e8666..7f9c679 100644
--- a/src/iemlib2/transf_fader.c
+++ b/src/iemlib2/transf_fader.c
@@ -1,154 +1,154 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdio.h>
-#include <string.h>
-
-
-/* ------------------------ transf_fader ----------------------- */
-/* -- this loopkup tabel objekt makes a 2-point interpolation -- */
-/* --------- between the pairs of determinating points --------- */
-
-typedef struct _transf_fader
-{
-  t_object  x_obj;
-  int       x_size;
-  int       x_message;
-  float     *x_array;
-} t_transf_fader;
-
-static t_class *transf_fader_class;
-
-static void transf_fader_pairs(t_transf_fader *x, t_symbol *s, int argc, t_atom *argv)
-{
-  if(argc >= 4)
-  {
-    int i, j, k, ac=argc/2;
-    int n=1000;
-    int i_prev=0;
-    int first=1;
-    int i_delta;
-    float val_delta;
-    float delta;
-    float val_prev=0.0f;
-    float val=0.0f;
-    float *vec=x->x_array;
-    float fad_in, fad_out;
-
-    for(j=0; j<n; j++)
-    {
-      vec[j] = -123456.0f;
-    }
-
-    for(j=0; j<ac; j++)
-    {
-      fad_in = atom_getfloat(argv++);
-      while(fad_in < 0.0f)
-        fad_in = 0.0f;
-      while(fad_in > 1000.0f)
-        fad_in = 1000.0f;
-
-      fad_out = atom_getfloat(argv++);
-      while(fad_out < -123455.0f)
-        fad_out = -123455.0f;
-
-      i = (int)fad_in;
-      vec[i] = fad_out;
-    }
-
-    for(j=0; j<n; j++)
-    {
-      if(vec[j] > -123456.0f)
-      {
-        if(first)
-        {
-          first = 0;
-          i_prev = j;
-          val_prev = vec[j];
-        }
-        else
-        {
-          i = j;
-          val = vec[j];
-          i_delta = i - i_prev;
-          val_delta = val - val_prev;
-          if(i_delta > 1)
-          {
-            delta = val_delta / (float)i_delta;
-            for(k=i_prev+1; k<i; k++)
-            {
-              vec[k] = val_prev + delta*(float)(k - i_prev);
-            }
-          }
-          i_prev = i;
-          val_prev = val;
-        }
-      }
-    }
-  }
-  else
-  {
-    if(x->x_message)
-      post("transf_fader-ERROR: less than 2 pairs make no sense");
-  }
-}
-
-static void transf_fader_float(t_transf_fader *x, t_floatarg fad_in)
-{
-  float fad_out;
-  float *vec=x->x_array;
-  float fract;
-  int i;
-
-  while(fad_in < 0.0f)
-    fad_in = 0.0f;
-  while(fad_in > 999.0f)
-    fad_in = 999.0f;
-
-  i = (int)fad_in;
-  fract = fad_in - (float)i;
-  fad_out = vec[i] + fract*(vec[i+1] - vec[i]);
-  if(fad_out > -123455.0f)
-    outlet_float(x->x_obj.ob_outlet, fad_out);
-}
-
-static void transf_fader_free(t_transf_fader *x)
-{
-  freebytes(x->x_array, x->x_size * sizeof(float));
-}
-
-static void *transf_fader_new(t_symbol *s, int argc, t_atom *argv)
-{
-  t_transf_fader *x = (t_transf_fader *)pd_new(transf_fader_class);
-  int i, n;
-
-  x->x_size = 1001;
-  x->x_message = 0;
-  x->x_array = (float *)getbytes(x->x_size * sizeof(float));
-  n = x->x_size;
-  for(i=0; i<n; i++)
-    x->x_array[i] = -123456.0f;
-  transf_fader_pairs(x, gensym("pairs"), argc, argv);
-  x->x_message = 1;
-  outlet_new(&x->x_obj, &s_float);
-  return (x);
-}
-
-void transf_fader_setup(void)
-{
-  transf_fader_class = class_new(gensym("transf_fader"), (t_newmethod)transf_fader_new, (t_method)transf_fader_free,
-           sizeof(t_transf_fader), 0, A_GIMME, 0);
-  class_addfloat(transf_fader_class, (t_method)transf_fader_float);
-  class_addmethod(transf_fader_class, (t_method)transf_fader_pairs, gensym("pairs"), A_GIMME, 0);
-  class_sethelpsymbol(transf_fader_class, gensym("iemhelp/help-transf_fader"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdio.h>
+#include <string.h>
+
+
+/* ------------------------ transf_fader ----------------------- */
+/* -- this loopkup tabel objekt makes a 2-point interpolation -- */
+/* --------- between the pairs of determinating points --------- */
+
+typedef struct _transf_fader
+{
+  t_object  x_obj;
+  int       x_size;
+  int       x_message;
+  float     *x_array;
+} t_transf_fader;
+
+static t_class *transf_fader_class;
+
+static void transf_fader_pairs(t_transf_fader *x, t_symbol *s, int argc, t_atom *argv)
+{
+  if(argc >= 4)
+  {
+    int i, j, k, ac=argc/2;
+    int n=1000;
+    int i_prev=0;
+    int first=1;
+    int i_delta;
+    float val_delta;
+    float delta;
+    float val_prev=0.0f;
+    float val=0.0f;
+    float *vec=x->x_array;
+    float fad_in, fad_out;
+
+    for(j=0; j<n; j++)
+    {
+      vec[j] = -123456.0f;
+    }
+
+    for(j=0; j<ac; j++)
+    {
+      fad_in = atom_getfloat(argv++);
+      while(fad_in < 0.0f)
+        fad_in = 0.0f;
+      while(fad_in > 1000.0f)
+        fad_in = 1000.0f;
+
+      fad_out = atom_getfloat(argv++);
+      while(fad_out < -123455.0f)
+        fad_out = -123455.0f;
+
+      i = (int)fad_in;
+      vec[i] = fad_out;
+    }
+
+    for(j=0; j<n; j++)
+    {
+      if(vec[j] > -123456.0f)
+      {
+        if(first)
+        {
+          first = 0;
+          i_prev = j;
+          val_prev = vec[j];
+        }
+        else
+        {
+          i = j;
+          val = vec[j];
+          i_delta = i - i_prev;
+          val_delta = val - val_prev;
+          if(i_delta > 1)
+          {
+            delta = val_delta / (float)i_delta;
+            for(k=i_prev+1; k<i; k++)
+            {
+              vec[k] = val_prev + delta*(float)(k - i_prev);
+            }
+          }
+          i_prev = i;
+          val_prev = val;
+        }
+      }
+    }
+  }
+  else
+  {
+    if(x->x_message)
+      post("transf_fader-ERROR: less than 2 pairs make no sense");
+  }
+}
+
+static void transf_fader_float(t_transf_fader *x, t_floatarg fad_in)
+{
+  float fad_out;
+  float *vec=x->x_array;
+  float fract;
+  int i;
+
+  while(fad_in < 0.0f)
+    fad_in = 0.0f;
+  while(fad_in > 999.0f)
+    fad_in = 999.0f;
+
+  i = (int)fad_in;
+  fract = fad_in - (float)i;
+  fad_out = vec[i] + fract*(vec[i+1] - vec[i]);
+  if(fad_out > -123455.0f)
+    outlet_float(x->x_obj.ob_outlet, fad_out);
+}
+
+static void transf_fader_free(t_transf_fader *x)
+{
+  freebytes(x->x_array, x->x_size * sizeof(float));
+}
+
+static void *transf_fader_new(t_symbol *s, int argc, t_atom *argv)
+{
+  t_transf_fader *x = (t_transf_fader *)pd_new(transf_fader_class);
+  int i, n;
+
+  x->x_size = 1001;
+  x->x_message = 0;
+  x->x_array = (float *)getbytes(x->x_size * sizeof(float));
+  n = x->x_size;
+  for(i=0; i<n; i++)
+    x->x_array[i] = -123456.0f;
+  transf_fader_pairs(x, gensym("pairs"), argc, argv);
+  x->x_message = 1;
+  outlet_new(&x->x_obj, &s_float);
+  return (x);
+}
+
+void transf_fader_setup(void)
+{
+  transf_fader_class = class_new(gensym("transf_fader"), (t_newmethod)transf_fader_new, (t_method)transf_fader_free,
+           sizeof(t_transf_fader), 0, A_GIMME, 0);
+  class_addfloat(transf_fader_class, (t_method)transf_fader_float);
+  class_addmethod(transf_fader_class, (t_method)transf_fader_pairs, gensym("pairs"), A_GIMME, 0);
+  class_sethelpsymbol(transf_fader_class, gensym("iemhelp/help-transf_fader"));
+}
diff --git a/src/iemlib2/unsymbol.c b/src/iemlib2/unsymbol.c
index fdf51dd..79026aa 100644
--- a/src/iemlib2/unsymbol.c
+++ b/src/iemlib2/unsymbol.c
@@ -1,48 +1,48 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* ----------- unsymbol ------------------------- */
-/* -- converts a symbol to an anything message -- */
-
-static t_class *unsymbol_class;
-
-typedef struct _unsymbol
-{
-  t_object x_obj;
-  t_atom   x_at;
-} t_unsymbol;
-
-static void unsymbol_symbol(t_unsymbol *x, t_symbol *s)
-{
-  outlet_anything(x->x_obj.ob_outlet, s, 0, &(x->x_at));
-}
-
-static void *unsymbol_new(void)
-{
-  t_unsymbol *x = (t_unsymbol *)pd_new(unsymbol_class);
-  
-  outlet_new(&x->x_obj, &s_list);
-  return (x);
-}
-
-void unsymbol_setup(void)
-{
-  unsymbol_class = class_new(gensym("unsymbol"), (t_newmethod)unsymbol_new,
-    0, sizeof(t_unsymbol), 0, 0);
-  class_addcreator((t_newmethod)unsymbol_new, gensym("unsym"), 0);
-  class_addsymbol(unsymbol_class, unsymbol_symbol);
-  class_sethelpsymbol(unsymbol_class, gensym("iemhelp/help-unsymbol"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* ----------- unsymbol ------------------------- */
+/* -- converts a symbol to an anything message -- */
+
+static t_class *unsymbol_class;
+
+typedef struct _unsymbol
+{
+  t_object x_obj;
+  t_atom   x_at;
+} t_unsymbol;
+
+static void unsymbol_symbol(t_unsymbol *x, t_symbol *s)
+{
+  outlet_anything(x->x_obj.ob_outlet, s, 0, &(x->x_at));
+}
+
+static void *unsymbol_new(void)
+{
+  t_unsymbol *x = (t_unsymbol *)pd_new(unsymbol_class);
+  
+  outlet_new(&x->x_obj, &s_list);
+  return (x);
+}
+
+void unsymbol_setup(void)
+{
+  unsymbol_class = class_new(gensym("unsymbol"), (t_newmethod)unsymbol_new,
+    0, sizeof(t_unsymbol), 0, 0);
+  class_addcreator((t_newmethod)unsymbol_new, gensym("unsym"), 0);
+  class_addsymbol(unsymbol_class, unsymbol_symbol);
+  class_sethelpsymbol(unsymbol_class, gensym("iemhelp/help-unsymbol"));
+}
diff --git a/src/iemlib2/wrap.c b/src/iemlib2/wrap.c
index 69feefc..9688480 100644
--- a/src/iemlib2/wrap.c
+++ b/src/iemlib2/wrap.c
@@ -1,67 +1,67 @@
-/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
-* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
-
-iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
-
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-#include "m_pd.h"
-#include "iemlib.h"
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-
-/* ------------------------ wrap ----------------- */
-/* -- leave the fractal part of a float message -- */
-
-typedef struct _wrap
-{
-  t_object  x_obj;
-  float     x_f;
-} t_wrap;
-
-static t_class *wrap_class;
-
-static void wrap_bang(t_wrap *x)
-{
-  outlet_float(x->x_obj.ob_outlet, x->x_f);
-}
-
-static void wrap_float(t_wrap *x, t_float f)
-{
-  int i=(int)f;
-  
-  if(f > 0.0)
-    x->x_f = f - (float)i;
-  else
-    x->x_f = f - (float)(i - 1);
-  wrap_bang(x);
-}
-
-static void wrap_list(t_wrap *x, t_symbol *s, int argc, t_atom *argv)
-{
-  if((argc > 0) && (IS_A_FLOAT(argv, 0)))
-    wrap_float(x, atom_getfloat(argv));
-}
-
-static void *wrap_new(void)
-{
-  t_wrap *x = (t_wrap *)pd_new(wrap_class);
-  
-  outlet_new(&x->x_obj, &s_float);
-  x->x_f = 0.0;
-  return (x);
-}
-
-void wrap_setup(void)
-{
-  wrap_class = class_new(gensym("wrap"), (t_newmethod)wrap_new, 0,
-    sizeof(t_wrap), 0, 0);
-  class_addbang(wrap_class, (t_method)wrap_bang);
-  class_addfloat(wrap_class, (t_method)wrap_float);
-  class_addlist(wrap_class, (t_method)wrap_list);
-  class_sethelpsymbol(wrap_class, gensym("iemhelp/help-wrap"));
-}
+/* For information on usage and redistribution, and for a DISCLAIMER OF ALL
+* WARRANTIES, see the file, "LICENSE.txt," in this distribution.
+
+iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2005 */
+
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+#include "m_pd.h"
+#include "iemlib.h"
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+
+/* ------------------------ wrap ----------------- */
+/* -- leave the fractal part of a float message -- */
+
+typedef struct _wrap
+{
+  t_object  x_obj;
+  float     x_f;
+} t_wrap;
+
+static t_class *wrap_class;
+
+static void wrap_bang(t_wrap *x)
+{
+  outlet_float(x->x_obj.ob_outlet, x->x_f);
+}
+
+static void wrap_float(t_wrap *x, t_float f)
+{
+  int i=(int)f;
+  
+  if(f > 0.0)
+    x->x_f = f - (float)i;
+  else
+    x->x_f = f - (float)(i - 1);
+  wrap_bang(x);
+}
+
+static void wrap_list(t_wrap *x, t_symbol *s, int argc, t_atom *argv)
+{
+  if((argc > 0) && (IS_A_FLOAT(argv, 0)))
+    wrap_float(x, atom_getfloat(argv));
+}
+
+static void *wrap_new(void)
+{
+  t_wrap *x = (t_wrap *)pd_new(wrap_class);
+  
+  outlet_new(&x->x_obj, &s_float);
+  x->x_f = 0.0;
+  return (x);
+}
+
+void wrap_setup(void)
+{
+  wrap_class = class_new(gensym("wrap"), (t_newmethod)wrap_new, 0,
+    sizeof(t_wrap), 0, 0);
+  class_addbang(wrap_class, (t_method)wrap_bang);
+  class_addfloat(wrap_class, (t_method)wrap_float);
+  class_addlist(wrap_class, (t_method)wrap_list);
+  class_sethelpsymbol(wrap_class, gensym("iemhelp/help-wrap"));
+}
-- 
cgit v1.2.1