aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Jurish <mukau@users.sourceforge.net>2007-10-19 13:32:56 +0000
committerBryan Jurish <mukau@users.sourceforge.net>2007-10-19 13:32:56 +0000
commit36628a5c9a9610af6e3d7475d777fadee6eae496 (patch)
treec31ff48114f22c81da1d2b8aeebf5a9c3d2a7187
parentc2c10b7a3b5f35b165f010c1f0c399aff90b1f5e (diff)
+ fixed any2string/string2any asymmetry for default case eos_char<0
svn path=/trunk/externals/moocow/pdstring/; revision=8841
-rw-r--r--Changes7
-rw-r--r--configure.in2
-rw-r--r--src/string2any.c6
3 files changed, 12 insertions, 3 deletions
diff --git a/Changes b/Changes
index 152925c..b354bed 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,12 @@
Change log for PD external 'pdstring'
+v0.06
+ + fixed asymmetricity bug (thanks to iohannes for the report)
+
+v0.05
+ + improved NUL parsing, add in- and outlets
+ + use static binbufs to avoid segfaults (a la mrpeach's [str])
+
v0.03 Thu, 02 Feb 2006 12:57:43 +0100
+ automake-ified
diff --git a/configure.in b/configure.in
index 581f7f8..5f6ae4f 100644
--- a/configure.in
+++ b/configure.in
@@ -4,7 +4,7 @@ AC_PREREQ(2.5)
dnl Some handy macros
define([THE_PACKAGE_NAME], [pdstring])
-define([THE_PACKAGE_VERSION], [0.05])
+define([THE_PACKAGE_VERSION], [0.06])
define([THE_PACKAGE_AUTHOR], [moocow@ling.uni-potsdam.de])
AC_INIT(THE_PACKAGE_NAME, THE_PACKAGE_VERSION, THE_PACKAGE_AUTHOR)
diff --git a/src/string2any.c b/src/string2any.c
index a2b90dc..a79dc0e 100644
--- a/src/string2any.c
+++ b/src/string2any.c
@@ -87,7 +87,7 @@ typedef struct _string2any
static void string2any_atoms(t_string2any *x, int argc, t_atom *argv)
{
char *s;
- int x_argc, a_argc=argc;
+ int x_argc, a_argc=0;
t_atom *x_argv;
/*-- allocate --*/
@@ -98,8 +98,10 @@ static void string2any_atoms(t_string2any *x, int argc, t_atom *argv)
}
/*-- get text --*/
- for (s=x->x_text; argc > 0; argc--, argv++, s++) {
+ for (s=x->x_text; argc > 0; argc--, a_argc++, argv++, s++) {
*s = atom_getfloat(argv);
+ S2ADEBUG(post("string2any[%p]: a_argc=%d,*s=%d", x, a_argc, *s));
+ if ((x->x_eos<0 && !*s) || (*s==x->x_eos)) { break; } /*-- hack: look for eos char --*/
}
*s = 0;
S2ADEBUG(post("string2any[%p]: text: \"%s\", strlen=%d, argc=%d", x, x->x_text, strlen(x->x_text), a_argc));