[PD-cvs] SF.net SVN: pure-data:[10607] trunk/externals/moocow
mukau at users.sourceforge.net
mukau at users.sourceforge.net
Fri Jan 23 23:24:43 CET 2009
Revision: 10607
http://pure-data.svn.sourceforge.net/pure-data/?rev=10607&view=rev
Author: mukau
Date: 2009-01-23 22:24:42 +0000 (Fri, 23 Jan 2009)
Log Message:
-----------
+ did basic renaming 'string' -> 'bytes'
Modified Paths:
--------------
trunk/externals/moocow/pdstring+wchar/configure
trunk/externals/moocow/pdstring+wchar/configure.ac
trunk/externals/moocow/pdstring+wchar/src/Makefile.am
trunk/externals/moocow/pdstring+wchar/src/Makefile.in
trunk/externals/moocow/pdstring+wchar/src/config.h.in
trunk/externals/moocow/pdstring+wchar/src/pdstring-help.pd
trunk/externals/moocow/pdstring+wchar/src/pdstring.c
trunk/externals/moocow/pdstring+wchar/src/unsigned.pd
Added Paths:
-----------
trunk/externals/moocow/pdstring+wchar/src/any2bytes-help.pd
trunk/externals/moocow/pdstring+wchar/src/any2bytes.c
trunk/externals/moocow/pdstring+wchar/src/bytes2any-help.pd
trunk/externals/moocow/pdstring+wchar/src/bytes2any.c
Removed Paths:
-------------
trunk/externals/moocow/pdstring+wchar/src/any2string-help.pd
trunk/externals/moocow/pdstring+wchar/src/any2string.c
trunk/externals/moocow/pdstring+wchar/src/any2string_static.c
trunk/externals/moocow/pdstring+wchar/src/string2any-help.pd
trunk/externals/moocow/pdstring+wchar/src/string2any.c
Modified: trunk/externals/moocow/pdstring+wchar/configure
===================================================================
--- trunk/externals/moocow/pdstring+wchar/configure 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/configure 2009-01-23 22:24:42 UTC (rev 10607)
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for pdstring 0.07.
+# Generated by GNU Autoconf 2.61 for pdstring 0.08.
#
# Report bugs to <moocow at ling.uni-potsdam.de>.
#
@@ -574,8 +574,8 @@
# Identity of this package.
PACKAGE_NAME='pdstring'
PACKAGE_TARNAME='pdstring'
-PACKAGE_VERSION='0.07'
-PACKAGE_STRING='pdstring 0.07'
+PACKAGE_VERSION='0.08'
+PACKAGE_STRING='pdstring 0.08'
PACKAGE_BUGREPORT='moocow at ling.uni-potsdam.de'
ac_default_prefix=/usr/local
@@ -1181,7 +1181,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures pdstring 0.07 to adapt to many kinds of systems.
+\`configure' configures pdstring 0.08 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1247,7 +1247,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of pdstring 0.07:";;
+ short | recursive ) echo "Configuration of pdstring 0.08:";;
esac
cat <<\_ACEOF
@@ -1341,7 +1341,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-pdstring configure 0.07
+pdstring configure 0.08
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1355,7 +1355,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by pdstring $as_me 0.07, which was
+It was created by pdstring $as_me 0.08, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2030,7 +2030,7 @@
# Define the identity of the package.
PACKAGE=pdstring
- VERSION=0.07
+ VERSION=0.08
cat >>confdefs.h <<_ACEOF
@@ -3543,7 +3543,7 @@
##------- PD externals: hack EXEEXT?
PD_LIB_EXTERNALS="pdstring"
-PD_OBJ_EXTERNALS="any2string string2any"
+PD_OBJ_EXTERNALS="any2bytes bytes2any"
# Check whether --enable-object-externals was given.
if test "${enable_object_externals+set}" = set; then
@@ -3687,12 +3687,12 @@
DEBUG="yes"
cat >>confdefs.h <<\_ACEOF
-#define ANY2STRING_DEBUG 1
+#define ANY2BYTES_DEBUG 1
_ACEOF
cat >>confdefs.h <<\_ACEOF
-#define STRING2ANY_DEBUG 1
+#define BYTES2ANY_DEBUG 1
_ACEOF
else
@@ -4198,7 +4198,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by pdstring $as_me 0.07, which was
+This file was extended by pdstring $as_me 0.08, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -4251,7 +4251,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-pdstring config.status 0.07
+pdstring config.status 0.08
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
Modified: trunk/externals/moocow/pdstring+wchar/configure.ac
===================================================================
--- trunk/externals/moocow/pdstring+wchar/configure.ac 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/configure.ac 2009-01-23 22:24:42 UTC (rev 10607)
@@ -4,7 +4,7 @@
dnl Some handy macros
define([THE_PACKAGE_NAME], [pdstring])
-define([THE_PACKAGE_VERSION], [0.07])
+define([THE_PACKAGE_VERSION], [0.08])
define([THE_PACKAGE_AUTHOR], [moocow at ling.uni-potsdam.de])
AC_INIT(THE_PACKAGE_NAME, THE_PACKAGE_VERSION, THE_PACKAGE_AUTHOR)
@@ -88,7 +88,7 @@
##------- PD externals: hack EXEEXT?
PD_LIB_EXTERNALS="pdstring"
-PD_OBJ_EXTERNALS="any2string string2any"
+PD_OBJ_EXTERNALS="any2bytes bytes2any"
AC_ARG_ENABLE(object-externals,
AC_HELP_STRING([--enable-object-externals], [Whether to build single-object externals (default=no)]),
@@ -162,10 +162,10 @@
if test "$enable_debug" = "yes" ; then
AC_MSG_RESULT(yes)
DEBUG="yes"
- AC_DEFINE(ANY2STRING_DEBUG,1,
- [Define this to include debugging code for the 'string2any' external.])
- AC_DEFINE(STRING2ANY_DEBUG,1,
- [Define this to include debugging code for the 'any2string' external.])
+ AC_DEFINE(ANY2BYTES_DEBUG,1,
+ [Define this to include debugging code for the 'bytes2any' external.])
+ AC_DEFINE(BYTES2ANY_DEBUG,1,
+ [Define this to include debugging code for the 'any2bytes' external.])
else
AC_MSG_RESULT(no)
DEBUG="no"
Modified: trunk/externals/moocow/pdstring+wchar/src/Makefile.am
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/Makefile.am 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/Makefile.am 2009-01-23 22:24:42 UTC (rev 10607)
@@ -32,8 +32,8 @@
## --- possible externals
EXTRA_PROGRAMS = \
pdstring \
- any2string \
- string2any
+ any2bytes \
+ bytes2any
## --- patches
pdexterns_DATA =
@@ -41,8 +41,8 @@
## --- documentation
pddoc_DATA = \
pdstring-help.pd \
- any2string-help.pd \
- string2any-help.pd
+ any2bytes-help.pd \
+ bytes2any-help.pd
#-----------------------------------------------------------------------
@@ -51,9 +51,9 @@
pdstring_SOURCES = pdstring.c mooPdUtils.h
-any2string_SOURCES = any2string.c mooPdUtils.h
+any2bytes_SOURCES = any2bytes.c mooPdUtils.h
-string2any_SOURCES = string2any.c mooPdUtils.h
+bytes2any_SOURCES = bytes2any.c mooPdUtils.h
#-----------------------------------------------------------------------
# external compilation : flags
@@ -74,9 +74,9 @@
pdstring_LDFLAGS = $(LFLAGS)
-string2any_LDFLAGS = $(LFLAGS)
+bytes2any_LDFLAGS = $(LFLAGS)
-any2string_LDFLAGS = $(LFLAGS)
+any2bytes_LDFLAGS = $(LFLAGS)
#-----------------------------------------------------------------------
# Variables: cleanup
Modified: trunk/externals/moocow/pdstring+wchar/src/Makefile.in
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/Makefile.in 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/Makefile.in 2009-01-23 22:24:42 UTC (rev 10607)
@@ -50,8 +50,8 @@
PRE_UNINSTALL = :
POST_UNINSTALL = :
pdexterns_PROGRAMS = @PD_OBJECT_EXTERNALS@
-EXTRA_PROGRAMS = pdstring$(EXEEXT) any2string$(EXEEXT) \
- string2any$(EXEEXT)
+EXTRA_PROGRAMS = pdstring$(EXEEXT) any2bytes$(EXEEXT) \
+ bytes2any$(EXEEXT)
subdir = src
SUBDIRS =
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
@@ -67,15 +67,15 @@
"$(DESTDIR)$(pdexternsdir)"
pdexternsPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(pdexterns_PROGRAMS)
-am_any2string_OBJECTS = any2string.$(OBJEXT)
-any2string_OBJECTS = $(am_any2string_OBJECTS)
-any2string_LDADD = $(LDADD)
+am_any2bytes_OBJECTS = any2bytes.$(OBJEXT)
+any2bytes_OBJECTS = $(am_any2bytes_OBJECTS)
+any2bytes_LDADD = $(LDADD)
+am_bytes2any_OBJECTS = bytes2any.$(OBJEXT)
+bytes2any_OBJECTS = $(am_bytes2any_OBJECTS)
+bytes2any_LDADD = $(LDADD)
am_pdstring_OBJECTS = pdstring.$(OBJEXT)
pdstring_OBJECTS = $(am_pdstring_OBJECTS)
pdstring_LDADD = $(LDADD)
-am_string2any_OBJECTS = string2any.$(OBJEXT)
-string2any_OBJECTS = $(am_string2any_OBJECTS)
-string2any_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
am__depfiles_maybe = depfiles
@@ -83,10 +83,10 @@
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-SOURCES = $(any2string_SOURCES) $(pdstring_SOURCES) \
- $(string2any_SOURCES)
-DIST_SOURCES = $(any2string_SOURCES) $(pdstring_SOURCES) \
- $(string2any_SOURCES)
+SOURCES = $(any2bytes_SOURCES) $(bytes2any_SOURCES) \
+ $(pdstring_SOURCES)
+DIST_SOURCES = $(any2bytes_SOURCES) $(bytes2any_SOURCES) \
+ $(pdstring_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-exec-recursive install-info-recursive \
@@ -207,24 +207,24 @@
pdexterns_DATA =
pddoc_DATA = \
pdstring-help.pd \
- any2string-help.pd \
- string2any-help.pd
+ any2bytes-help.pd \
+ bytes2any-help.pd
#-----------------------------------------------------------------------
# sources
#-----------------------------------------------------------------------
pdstring_SOURCES = pdstring.c mooPdUtils.h
-any2string_SOURCES = any2string.c mooPdUtils.h
-string2any_SOURCES = string2any.c mooPdUtils.h
+any2bytes_SOURCES = any2bytes.c mooPdUtils.h
+bytes2any_SOURCES = bytes2any.c mooPdUtils.h
#GLIB_IFLAGS = @GLIB_IFLAGS@
#GLIB_LFLAGS = @GLIB_LFLAGS@
AM_CPPFLAGS = $(IFLAGS) $(GLIB_IFLAGS) $(DFLAGS)
AM_CFLAGS = $(OFLAGS) $(WFLAGS) $(AFLAGS)
pdstring_LDFLAGS = $(LFLAGS)
-string2any_LDFLAGS = $(LFLAGS)
-any2string_LDFLAGS = $(LFLAGS)
+bytes2any_LDFLAGS = $(LFLAGS)
+any2bytes_LDFLAGS = $(LFLAGS)
#-----------------------------------------------------------------------
# Variables: cleanup
@@ -332,15 +332,15 @@
clean-pdexternsPROGRAMS:
-test -z "$(pdexterns_PROGRAMS)" || rm -f $(pdexterns_PROGRAMS)
-any2string$(EXEEXT): $(any2string_OBJECTS) $(any2string_DEPENDENCIES)
- @rm -f any2string$(EXEEXT)
- $(LINK) $(any2string_LDFLAGS) $(any2string_OBJECTS) $(any2string_LDADD) $(LIBS)
+any2bytes$(EXEEXT): $(any2bytes_OBJECTS) $(any2bytes_DEPENDENCIES)
+ @rm -f any2bytes$(EXEEXT)
+ $(LINK) $(any2bytes_LDFLAGS) $(any2bytes_OBJECTS) $(any2bytes_LDADD) $(LIBS)
+bytes2any$(EXEEXT): $(bytes2any_OBJECTS) $(bytes2any_DEPENDENCIES)
+ @rm -f bytes2any$(EXEEXT)
+ $(LINK) $(bytes2any_LDFLAGS) $(bytes2any_OBJECTS) $(bytes2any_LDADD) $(LIBS)
pdstring$(EXEEXT): $(pdstring_OBJECTS) $(pdstring_DEPENDENCIES)
@rm -f pdstring$(EXEEXT)
$(LINK) $(pdstring_LDFLAGS) $(pdstring_OBJECTS) $(pdstring_LDADD) $(LIBS)
-string2any$(EXEEXT): $(string2any_OBJECTS) $(string2any_DEPENDENCIES)
- @rm -f string2any$(EXEEXT)
- $(LINK) $(string2any_LDFLAGS) $(string2any_OBJECTS) $(string2any_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
@@ -348,9 +348,9 @@
distclean-compile:
-rm -f *.tab.c
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/any2string.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/any2bytes.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/bytes2any.Po at am__quote@
@AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/pdstring.Po at am__quote@
- at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/string2any.Po at am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
Copied: trunk/externals/moocow/pdstring+wchar/src/any2bytes-help.pd (from rev 10606, trunk/externals/moocow/pdstring+wchar/src/any2string-help.pd)
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/any2bytes-help.pd (rev 0)
+++ trunk/externals/moocow/pdstring+wchar/src/any2bytes-help.pd 2009-01-23 22:24:42 UTC (rev 10607)
@@ -0,0 +1,40 @@
+#N canvas 90 20 636 478 10;
+#X msg 109 197 0;
+#X msg 77 197 -1;
+#X text 19 47 INLETS:;
+#X text 31 61 1 - pd messages;
+#X text 247 49 OUTLETS:;
+#X floatatom 44 147 8 0 0 0 - - -;
+#X symbolatom 34 125 10 0 0 0 - - -;
+#X text 189 125 ... no special handling for symbols;
+#X text 188 103 anything can be converted to a list...;
+#X text 190 147 ... but "float" selector is silently dropped;
+#X msg 25 104 A B C;
+#X text 193 312 First argument: initial buffer size (length of object-local
+text buffer). This should get re-allocated when necessary. Specify
+0 (zero) to use the default value.;
+#X text 195 367 Second argument: initial EOS character. See above.
+;
+#X text 320 458 Bryan Jurish <moocow at ling.uni-potsdam.de>;
+#X text 19 439 SEE ALSO:;
+#X msg 139 197 42;
+#X text 184 194 The second inlet sets the terminating EOS ("end-of-string")
+character. This value gets implicitly appended to all output lists.
+Specify a negative value here to avoid implicit EOS characters entirely.
+For backwards compatibility \, the default EOS character is 0 (zero).
+;
+#X text 31 75 2 - EOS character (float);
+#X obj 100 438 pdstring;
+#X obj 25 314 any2bytes 128 -1;
+#X obj 25 400 print any2bytes-help;
+#X text 21 29 SYNTAX: any2bytes [INITIAL_BUFSIZE [EOS_CHAR]];
+#X text 263 63 1 - lists of byte-valued floats;
+#X text 49 5 any2bytes : convert pd messages to a list of byte values
+;
+#X connect 0 0 19 1;
+#X connect 1 0 19 1;
+#X connect 5 0 19 0;
+#X connect 6 0 19 0;
+#X connect 10 0 19 0;
+#X connect 15 0 19 1;
+#X connect 19 0 20 0;
Copied: trunk/externals/moocow/pdstring+wchar/src/any2bytes.c (from rev 10606, trunk/externals/moocow/pdstring+wchar/src/any2string.c)
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/any2bytes.c (rev 0)
+++ trunk/externals/moocow/pdstring+wchar/src/any2bytes.c 2009-01-23 22:24:42 UTC (rev 10607)
@@ -0,0 +1,239 @@
+/* -*- Mode: C -*- */
+/*=============================================================================*\
+ * File: any2bytes.c
+ * Author: Bryan Jurish <moocow at ling.uni-potsdam.de>
+ * Description: convert pd messages to strings (dynamic allocation)
+ *
+ * Copyright (c) 2004-2009 Bryan Jurish.
+ *
+ * For information on usage and redistribution, and for a DISCLAIMER OF ALL
+ * WARRANTIES, see the file "COPYING", in this distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *=============================================================================*/
+
+#include <string.h>
+#include <m_pd.h>
+#include "mooPdUtils.h"
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+/* black magic */
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+/*--------------------------------------------------------------------
+ * DEBUG
+ *--------------------------------------------------------------------*/
+/*#define ANY2BYTES_DEBUG 1*/
+
+#ifdef ANY2BYTES_DEBUG
+# define A2SDEBUG(x) x
+#else
+# define A2SDEBUG(x)
+#endif
+
+#define ANY2BYTES_DEFAULT_BUFLEN 256
+
+
+/*=====================================================================
+ * Structures and Types: any2bytes
+ *=====================================================================*/
+static t_class *any2bytes_class;
+
+typedef struct _any2bytes
+{
+ t_object x_obj;
+ int x_alloc;
+ int x_argc;
+ t_float x_eos; //-- EOS character to add (<0 for none)
+ char *x_text;
+ t_atom *x_argv;
+ t_binbuf *x_binbuf;
+ t_inlet *x_eos_in;
+ t_outlet *x_outlet;
+} t_any2bytes;
+
+
+/*=====================================================================
+ * Constants
+ *=====================================================================*/
+static char *any2bytes_banner = "any2bytes: pdstring version " PACKAGE_VERSION " by Bryan Jurish";
+
+/*=====================================================================
+ * Methods
+ *=====================================================================*/
+
+/*--------------------------------------------------------------------
+ * anything
+ */
+static void any2bytes_anything(t_any2bytes *x, t_symbol *sel, int argc, t_atom *argv)
+{
+ t_atom *ap;
+ unsigned char *s, *s_max;
+ int len;
+
+ A2SDEBUG(post("-------any2bytes_anything(%p,...)---------", x));
+
+ /*-- set up binbuf --*/
+ A2SDEBUG(post("any2bytes[%p]: binbuf_clear()", x));
+ binbuf_clear(x->x_binbuf);
+
+ /*-- binbuf_add(): selector --*/
+ if (sel != &s_float && sel != &s_list && sel != &s_) {
+ t_atom a;
+ A2SDEBUG(post("any2bytes[%p]: binbuf_add(): selector: '%s'", x, sel->s_name));
+ SETSYMBOL((&a), sel);
+ binbuf_add(x->x_binbuf, 1, &a);
+ }
+ A2SDEBUG(else { post("any2bytes[%p]: selector: '%s': IGNORED", x, sel->s_name); });
+
+ /*-- binbuf_add(): arg list --*/
+ A2SDEBUG(post("any2bytes[%p]: binbuf_add(): arg list", x));
+ binbuf_add(x->x_binbuf, argc, argv);
+ A2SDEBUG(post("any2bytes[%p]: binbuf_print: ", x));
+ A2SDEBUG(binbuf_print(x->x_binbuf));
+
+ A2SDEBUG(post("any2bytes[%p]: binbuf_gettext()", x));
+ binbuf_gettext(x->x_binbuf, &(x->x_text), &len);
+ A2SDEBUG(post("any2bytes[%p]: binbuf_gettext() = \"%s\" ; len=%d", x, x->x_text, len));
+ /*text[len] = 0;*/ /*-- ? avoid errors: "free(): invalid next size(fast): 0x..." */
+
+ /*-- get output atom-list length --*/
+ x->x_argc = len;
+ if (x->x_eos >= 0) { x->x_argc++; }
+ A2SDEBUG(post("any2bytes[%p]: argc=%d", x, x->x_argc));
+
+ /*-- (re-)allocate (maybe) --*/
+ if (x->x_alloc < x->x_argc) {
+ A2SDEBUG(post("any2bytes[%p]: reallocate(%d->%d)", x, x->x_alloc, x->x_argc));
+ freebytes(x->x_argv, x->x_alloc*sizeof(t_atom));
+ x->x_argv = (t_atom*)getbytes(x->x_argc * sizeof(t_atom));
+ x->x_alloc = x->x_argc;
+ }
+
+ /*-- atom buffer: binbuf text --*/
+ A2SDEBUG(post("any2bytes[%p]: atom buffer: for {...}", x));
+ ap = x->x_argv;
+ s_max = ((unsigned char *)x->x_text)+len;
+ for (s=((unsigned char *)x->x_text); s < s_max; s++, ap++) {
+ A2SDEBUG(post("any2bytes[%p]: atom buffer[%d]: SETFLOAT(a,%d='%c')", x, (ap-x->x_argv), *s, *s));
+ SETFLOAT(ap,*s);
+ }
+ A2SDEBUG(post("any2bytes: atom buffer: DONE"));
+
+ /*-- add EOS character (maybe) --*/
+ if (x->x_eos >= 0) { SETFLOAT(ap, ((int)x->x_eos)); }
+
+ A2SDEBUG(post("any2bytes: outlet_list(..., %d, ...)", x->x_argc));
+ outlet_list(x->x_outlet, &s_list, x->x_argc, x->x_argv);
+}
+
+
+/*--------------------------------------------------------------------
+ * new
+ */
+static void *any2bytes_new(MOO_UNUSED t_symbol *sel, int argc, t_atom *argv)
+{
+ t_any2bytes *x = (t_any2bytes *)pd_new(any2bytes_class);
+
+ //-- defaults
+ x->x_eos = 0;
+ x->x_alloc = ANY2BYTES_DEFAULT_BUFLEN;
+
+ //-- args: 0: bufsize
+ if (argc > 0) {
+ int bufsize = atom_getintarg(0, argc, argv);
+ if (bufsize > 0) { x->x_alloc = bufsize; }
+ }
+ //-- args: 1: eos
+ if (argc > 1) {
+ x->x_eos = atom_getfloatarg(1, argc, argv);
+ }
+
+ //-- allocate
+ x->x_text = getbytes(x->x_alloc*sizeof(char));
+ x->x_argc = 0;
+ x->x_argv = (t_atom *)getbytes(x->x_alloc*sizeof(t_atom));
+ x->x_binbuf = binbuf_new();
+
+ //-- inlets
+ x->x_eos_in = floatinlet_new(&x->x_obj, &x->x_eos);
+
+ //-- outlets
+ x->x_outlet = outlet_new(&x->x_obj, &s_list);
+
+ //-- report
+ A2SDEBUG(post("any2bytes_new(): x=%p, alloc=%d, eos=%d, text=%p, argv=%p, binbuf=%p", x, x->x_alloc, x->x_eos, x->x_text, x->x_argv, x->x_binbuf));
+
+ return (void *)x;
+}
+
+/*--------------------------------------------------------------------
+ * free
+ */
+static void any2bytes_free(t_any2bytes *x)
+{
+ if (x->x_text) {
+ freebytes(x->x_text, x->x_alloc*sizeof(char));
+ x->x_text = NULL;
+ }
+ if (x->x_argv) {
+ freebytes(x->x_argv, x->x_alloc*sizeof(t_atom));
+ x->x_argv = NULL;
+ }
+ binbuf_free(x->x_binbuf);
+ inlet_free(x->x_eos_in);
+ outlet_free(x->x_outlet);
+ return;
+}
+
+/*--------------------------------------------------------------------
+ * setup (guts)
+ */
+void any2bytes_setup_guts(void)
+{
+ //-- class
+ any2bytes_class = class_new(gensym("any2bytes"),
+ (t_newmethod)any2bytes_new,
+ (t_method)any2bytes_free,
+ sizeof(t_any2bytes),
+ CLASS_DEFAULT,
+ A_GIMME, //-- initial_bufsize, eos_char
+ 0);
+
+ //-- alias
+ class_addcreator((t_newmethod)any2bytes_new, gensym("any2string"), A_GIMME, 0);
+
+ //-- methods
+ class_addanything(any2bytes_class, (t_method)any2bytes_anything);
+
+ //-- help symbol
+ //class_sethelpsymbol(any2bytes_class, gensym("any2bytes-help.pd")); //-- breaks pd-extended help lookup
+}
+
+
+/*--------------------------------------------------------------------
+ * setup
+ */
+void any2bytes_setup(void)
+{
+ post(any2bytes_banner);
+ any2bytes_setup_guts();
+}
Deleted: trunk/externals/moocow/pdstring+wchar/src/any2string-help.pd
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/any2string-help.pd 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/any2string-help.pd 2009-01-23 22:24:42 UTC (rev 10607)
@@ -1,39 +0,0 @@
-#N canvas 90 20 636 478 10;
-#X obj 25 400 print any2string-help;
-#X obj 25 314 any2string 128 -1;
-#X msg 109 197 0;
-#X msg 77 197 -1;
-#X text 19 47 INLETS:;
-#X text 31 61 1 - pd messages;
-#X text 247 49 OUTLETS:;
-#X text 263 63 1 - lists of ASCII-valued floats;
-#X floatatom 44 147 8 0 0 0 - - -;
-#X symbolatom 34 125 10 0 0 0 - - -;
-#X text 189 125 ... no special handling for symbols;
-#X text 188 103 anything can be converted to a list...;
-#X text 190 147 ... but "float" selector is silently dropped;
-#X msg 25 104 A B C;
-#X text 193 312 First argument: initial buffer size (length of object-local
-text buffer). This should get re-allocated when necessary. Specify
-0 (zero) to use the default value.;
-#X text 195 367 Second argument: initial EOS character. See above.
-;
-#X text 320 458 Bryan Jurish <moocow at ling.uni-potsdam.de>;
-#X text 19 439 SEE ALSO:;
-#X msg 139 197 42;
-#X text 21 29 SYNTAX: any2string [INITIAL_BUFSIZE [EOS_CHAR]];
-#X text 184 194 The second inlet sets the terminating EOS ("end-of-string")
-character. This value gets implicitly appended to all output lists.
-Specify a negative value here to avoid implicit EOS characters entirely.
-For backwards compatibility \, the default EOS character is 0 (zero).
-;
-#X text 51 5 any2string : convert pd messages to a list of floats;
-#X text 31 75 2 - EOS character (float);
-#X obj 100 438 pdstring;
-#X connect 1 0 0 0;
-#X connect 2 0 1 1;
-#X connect 3 0 1 1;
-#X connect 8 0 1 0;
-#X connect 9 0 1 0;
-#X connect 13 0 1 0;
-#X connect 18 0 1 1;
Deleted: trunk/externals/moocow/pdstring+wchar/src/any2string.c
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/any2string.c 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/any2string.c 2009-01-23 22:24:42 UTC (rev 10607)
@@ -1,239 +0,0 @@
-/* -*- Mode: C -*- */
-/*=============================================================================*\
- * File: any2string.c
- * Author: Bryan Jurish <moocow at ling.uni-potsdam.de>
- * Description: convert pd messages to strings (dynamic allocation)
- *
- * Copyright (c) 2004 - 2009 Bryan Jurish.
- *
- * For information on usage and redistribution, and for a DISCLAIMER OF ALL
- * WARRANTIES, see the file "COPYING", in this distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *=============================================================================*/
-
-#include <string.h>
-#include <m_pd.h>
-#include "mooPdUtils.h"
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-/* black magic */
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-/*--------------------------------------------------------------------
- * DEBUG
- *--------------------------------------------------------------------*/
-/*#define ANY2STRING_DEBUG 1*/
-
-#ifdef ANY2STRING_DEBUG
-# define A2SDEBUG(x) x
-#else
-# define A2SDEBUG(x)
-#endif
-
-#define ANY2STRING_DEFAULT_BUFLEN 256
-
-
-/*=====================================================================
- * Structures and Types: any2string
- *=====================================================================*/
-static t_class *any2string_class;
-
-typedef struct _any2string
-{
- t_object x_obj;
- int x_alloc;
- int x_argc;
- t_float x_eos; //-- EOS character to add (<0 for none)
- char *x_text;
- t_atom *x_argv;
- t_binbuf *x_binbuf;
- t_inlet *x_eos_in;
- t_outlet *x_outlet;
-} t_any2string;
-
-
-/*=====================================================================
- * Constants
- *=====================================================================*/
-static char *any2string_banner = "any2string: pdstring version " PACKAGE_VERSION " by Bryan Jurish";
-
-/*=====================================================================
- * Methods
- *=====================================================================*/
-
-/*--------------------------------------------------------------------
- * anything
- */
-static void any2string_anything(t_any2string *x, t_symbol *sel, int argc, t_atom *argv)
-{
- t_atom *ap;
- unsigned char *s, *s_max;
- int len;
-
- A2SDEBUG(post("-------any2string_anything(%p,...)---------", x));
-
- /*-- set up binbuf --*/
- A2SDEBUG(post("any2string[%p]: binbuf_clear()", x));
- binbuf_clear(x->x_binbuf);
-
- /*-- binbuf_add(): selector --*/
- if (sel != &s_float && sel != &s_list && sel != &s_) {
- t_atom a;
- A2SDEBUG(post("any2string[%p]: binbuf_add(): selector: '%s'", x, sel->s_name));
- SETSYMBOL((&a), sel);
- binbuf_add(x->x_binbuf, 1, &a);
- }
- A2SDEBUG(else { post("any2string[%p]: selector: '%s': IGNORED", x, sel->s_name); });
-
- /*-- binbuf_add(): arg list --*/
- A2SDEBUG(post("any2string[%p]: binbuf_add(): arg list", x));
- binbuf_add(x->x_binbuf, argc, argv);
- A2SDEBUG(post("any2string[%p]: binbuf_print: ", x));
- A2SDEBUG(binbuf_print(x->x_binbuf));
-
- A2SDEBUG(post("any2string[%p]: binbuf_gettext()", x));
- binbuf_gettext(x->x_binbuf, &(x->x_text), &len);
- A2SDEBUG(post("any2string[%p]: binbuf_gettext() = \"%s\" ; len=%d", x, x->x_text, len));
- /*text[len] = 0;*/ /*-- ? avoid errors: "free(): invalid next size(fast): 0x..." */
-
- /*-- get output atom-list length --*/
- x->x_argc = len;
- if (x->x_eos >= 0) { x->x_argc++; }
- A2SDEBUG(post("any2string[%p]: argc=%d", x, x->x_argc));
-
- /*-- (re-)allocate (maybe) --*/
- if (x->x_alloc < x->x_argc) {
- A2SDEBUG(post("any2string[%p]: reallocate(%d->%d)", x, x->x_alloc, x->x_argc));
- freebytes(x->x_argv, x->x_alloc*sizeof(t_atom));
- x->x_argv = (t_atom*)getbytes(x->x_argc * sizeof(t_atom));
- x->x_alloc = x->x_argc;
- }
-
- /*-- atom buffer: binbuf text --*/
- A2SDEBUG(post("any2string[%p]: atom buffer: for {...}", x));
- ap = x->x_argv;
- s_max = ((unsigned char *)x->x_text)+len;
- for (s=((unsigned char *)x->x_text); s < s_max; s++, ap++) {
- A2SDEBUG(post("any2string[%p]: atom buffer[%d]: SETFLOAT(a,%d='%c')", x, (ap-x->x_argv), *s, *s));
- SETFLOAT(ap,*s);
- }
- A2SDEBUG(post("any2string: atom buffer: DONE"));
-
- /*-- add EOS character (maybe) --*/
- if (x->x_eos >= 0) { SETFLOAT(ap, ((int)x->x_eos)); }
-
- A2SDEBUG(post("any2string: outlet_list(..., %d, ...)", x->x_argc));
- outlet_list(x->x_outlet, &s_list, x->x_argc, x->x_argv);
-}
-
-
-/*--------------------------------------------------------------------
- * new
- */
-static void *any2string_new(MOO_UNUSED t_symbol *sel, int argc, t_atom *argv)
-{
- t_any2string *x = (t_any2string *)pd_new(any2string_class);
-
- //-- defaults
- x->x_eos = 0;
- x->x_alloc = ANY2STRING_DEFAULT_BUFLEN;
-
- //-- args: 0: bufsize
- if (argc > 0) {
- int bufsize = atom_getintarg(0, argc, argv);
- if (bufsize > 0) { x->x_alloc = bufsize; }
- }
- //-- args: 1: eos
- if (argc > 1) {
- x->x_eos = atom_getfloatarg(1, argc, argv);
- }
-
- //-- allocate
- x->x_text = getbytes(x->x_alloc*sizeof(char));
- x->x_argc = 0;
- x->x_argv = (t_atom *)getbytes(x->x_alloc*sizeof(t_atom));
- x->x_binbuf = binbuf_new();
-
- //-- inlets
- x->x_eos_in = floatinlet_new(&x->x_obj, &x->x_eos);
-
- //-- outlets
- x->x_outlet = outlet_new(&x->x_obj, &s_list);
-
- //-- report
- A2SDEBUG(post("any2string_new(): x=%p, alloc=%d, eos=%d, text=%p, argv=%p, binbuf=%p", x, x->x_alloc, x->x_eos, x->x_text, x->x_argv, x->x_binbuf));
-
- return (void *)x;
-}
-
-/*--------------------------------------------------------------------
- * free
- */
-static void any2string_free(t_any2string *x)
-{
- if (x->x_text) {
- freebytes(x->x_text, x->x_alloc*sizeof(char));
- x->x_text = NULL;
- }
- if (x->x_argv) {
- freebytes(x->x_argv, x->x_alloc*sizeof(t_atom));
- x->x_argv = NULL;
- }
- binbuf_free(x->x_binbuf);
- inlet_free(x->x_eos_in);
- outlet_free(x->x_outlet);
- return;
-}
-
-/*--------------------------------------------------------------------
- * setup (guts)
- */
-void any2string_setup_guts(void)
-{
- //-- class
- any2string_class = class_new(gensym("any2string"),
- (t_newmethod)any2string_new,
- (t_method)any2string_free,
- sizeof(t_any2string),
- CLASS_DEFAULT,
- A_GIMME, //-- initial_bufsize, eos_char
- 0);
-
- //-- alias
- class_addcreator((t_newmethod)any2string_new, gensym("any2bytes"), A_GIMME, 0);
-
- //-- methods
- class_addanything(any2string_class, (t_method)any2string_anything);
-
- //-- help symbol
- //class_sethelpsymbol(any2string_class, gensym("any2string-help.pd")); //-- breaks pd-extended help lookup
-}
-
-
-/*--------------------------------------------------------------------
- * setup
- */
-void any2string_setup(void)
-{
- post(any2string_banner);
- any2string_setup_guts();
-}
Deleted: trunk/externals/moocow/pdstring+wchar/src/any2string_static.c
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/any2string_static.c 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/any2string_static.c 2009-01-23 22:24:42 UTC (rev 10607)
@@ -1,246 +0,0 @@
-/* -*- Mode: C -*- */
-/*=============================================================================*\
- * File: any2string_static.c
- * Author: Bryan Jurish <moocow at ling.uni-potsdam.de>
- * Description: convert pd messages to strings (static buffer allocation)
- *
- * Copyright (c) 2004 - 2007 Bryan Jurish.
- *
- * For information on usage and redistribution, and for a DISCLAIMER OF ALL
- * WARRANTIES, see the file "COPYING", in this distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *=============================================================================*/
-
-#include <string.h>
-#include <stdio.h>
-
-#include <m_pd.h>
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-/* black magic */
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-/*--------------------------------------------------------------------
- * DEBUG
- *--------------------------------------------------------------------*/
-/*#define ANY2STRING_DEBUG 1*/
-/*#undef ANY2STRING_DEBUG*/
-
-#ifdef ANY2STRING_DEBUG
-# define A2SDEBUG(x) x
-#else
-# define A2SDEBUG(x)
-#endif
-
-#define ANY2STRING_DEFAULT_BUFLEN 512
-
-
-/*=====================================================================
- * Structures and Types: any2string
- *=====================================================================*/
-static t_class *any2string_class;
-
-typedef struct _any2string
-{
- t_object x_obj;
- int x_alloc; //-- buffer size (text, x_argv)
- int x_argc; //-- current number of atoms to outlet
- t_atom *x_argv; //-- float-list to outlet
- t_outlet *x_outlet; //-- outlet
-} t_any2string;
-
-
-/*=====================================================================
- * Utilities
- *=====================================================================*/
-
-/*--------------------------------------------------------------------
- * append_string
- */
-static void any2string_append_string(t_any2string *x, char *s, unsigned int maxlen, int doescape)
-{
- char *sp;
- char *ep = s+maxlen;
-
- for (sp=s; *sp && sp<ep && *sp && x->x_argc<x->x_alloc; sp++, x->x_argc++) {
- if (doescape && (*sp==';' || *sp==',' || *sp=='\\'
- || (*sp == '$' && sp<(ep-1) && sp[1] >= '0' && sp[1] <= '9')))
- {
- A2SDEBUG(post("any2string_append_string: ESCAPE: x_argv[%d] = '%c' = %d", x->x_argc, '\\', '\\'));
- x->x_argv[x->x_argc++].a_w.w_float = '\\';
- if (x->x_argc >= x->x_alloc) break;
- }
- A2SDEBUG(post("any2string_append_string: x_argv[%d] = '%c' = %d", x->x_argc, *sp, *sp));
- x->x_argv[x->x_argc].a_w.w_float = *sp;
- }
-}
-
-/*--------------------------------------------------------------------
- * append_atom
- */
-#define ANY2STRING_APPEND_BUFSIZE 30
-static void any2string_append_atom(t_any2string *x, t_atom *a)
-{
- char buf[ANY2STRING_APPEND_BUFSIZE];
- A2SDEBUG(post("~~ any2string_append_atom(%p,...) ~~", x));
-
- if (x->x_argc >= x->x_alloc) { return; }
-
- /*-- stringify a single atom (inspired by atom_string() from m_atom.c) --*/
- switch (a->a_type) {
- case A_SEMI: any2string_append_string(x, ";", 1, 0); break;
- case A_COMMA: any2string_append_string(x, ",", 1, 0); break;
- case A_POINTER: any2string_append_string(x, "(pointer)", 9, 0); break;
- case A_FLOAT:
- snprintf(buf, ANY2STRING_APPEND_BUFSIZE, "%g", a->a_w.w_float);
- any2string_append_string(x, buf, ANY2STRING_APPEND_BUFSIZE, 0);
- break;
- case A_SYMBOL:
- any2string_append_string(x, a->a_w.w_symbol->s_name, strlen(a->a_w.w_symbol->s_name), 1);
- break;
- case A_DOLLAR:
- snprintf(buf, ANY2STRING_APPEND_BUFSIZE, "$%d", a->a_w.w_index);
- any2string_append_string(x, buf, ANY2STRING_APPEND_BUFSIZE, 0);
- break;
- case A_DOLLSYM:
- any2string_append_string(x, a->a_w.w_symbol->s_name, strlen(a->a_w.w_symbol->s_name), 0);
- break;
- default:
- pd_error(x,"any2string_append_atom: unknown atom type '%d'", a->a_type);
- break;
- }
-
- if (x->x_argc < x->x_alloc) {
- A2SDEBUG(post("any2string_append_atom[%p]: x_argv[%d] = '%c' = %d", x, x->x_argc, ' ', ' '));
- x->x_argv[x->x_argc++].a_w.w_float = ' ';
- }
-}
-
-/*=====================================================================
- * Methods
- *=====================================================================*/
-
-/*--------------------------------------------------------------------
- * anything
- */
-static void any2string_anything(t_any2string *x, t_symbol *sel, int argc, t_atom *argv)
-{
- t_atom *argv_end = argv+argc;
- x->x_argc=0;
-
- A2SDEBUG(post("-------any2string_anything(%p,...) ---------", x));
-
- /*-- stringify selector (maybe) --*/
- if (sel != &s_float && sel != &s_list && sel != &s_) {
- t_atom a;
- SETSYMBOL(&a,sel);
- any2string_append_atom(x, &a);
- }
-
- /*-- stringify arg list --*/
- for ( ; argv<argv_end && x->x_argc<x->x_alloc; argv++) {
- any2string_append_atom(x, argv);
- }
-
- /*-- add terminating NUL (if we can) --*/
- A2SDEBUG(post("any2string[%p]: terminating NUL: x_argv[%d]=0", x, x->x_argc-1));
- if (x->x_argc >= x->x_alloc) {
- pd_error(x, "any2string: input length exceeds buffer size!");
- x->x_argc = x->x_alloc;
- x->x_argv[x->x_argc-1].a_w.w_float = '*'; //-- simulate atom_string() behavior
- } else if (x->x_argc > 0) {
- x->x_argv[x->x_argc-1].a_w.w_float = 0;
- }
-
- A2SDEBUG(post("any2string[%p]: outlet_list(..., %d, ...)", x, x->x_argc));
- outlet_list(x->x_outlet, &s_list, x->x_argc, x->x_argv);
-}
-
-
-/*--------------------------------------------------------------------
- * new
- */
-static void *any2string_new(t_floatarg bufsize)
-{
- t_any2string *x = (t_any2string *)pd_new(any2string_class);
- int i;
-
- //-- bufsize
- if (bufsize <= 0) {
- x->x_alloc = ANY2STRING_DEFAULT_BUFLEN;
- } else {
- x->x_alloc = bufsize;
- }
- A2SDEBUG(post("any2string_new: buf_req=%g, alloc=%d", bufsize, x->x_alloc));
-
- //-- defaults
- x->x_argc = 0;
- x->x_argv = (t_atom*)getbytes(x->x_alloc*sizeof(t_atom));
-
- //-- initialize (set a_type)
- for (i=0; i < x->x_alloc; i++) {
- SETFLOAT((x->x_argv+i),0);
- }
-
- //-- outlets
- x->x_outlet = outlet_new(&x->x_obj, &s_list);
- A2SDEBUG(post("any2string_new: x=%p, alloc=%d, argv=%p, nbytes=%d", x, x->x_alloc,x->x_argv,x->x_alloc*sizeof(t_atom)));
- return (void *)x;
-}
-
-/*--------------------------------------------------------------------
- * free
- */
-static void any2string_free(t_any2string *x)
-{
- A2SDEBUG(post("any2string_free(x=%p)", x));
- if (x->x_argv) {
- A2SDEBUG(post("any2string_free(x=%p): x_argv=%p (size=%d)", x, x->x_argv, x->x_alloc*sizeof(t_atom)));
- freebytes(x->x_argv, x->x_alloc*sizeof(t_atom));
- }
- A2SDEBUG(post("any2string_free(x=%p): x_outlet=%p", x, x->x_outlet));
- outlet_free(x->x_outlet);
- return;
-}
-
-/*--------------------------------------------------------------------
- * setup
- */
-void any2string_setup(void)
-{
- //-- class
- any2string_class = class_new(gensym("any2string"),
- (t_newmethod)any2string_new,
- (t_method)any2string_free,
- sizeof(t_any2string),
- CLASS_DEFAULT,
- A_DEFFLOAT,
- 0);
-
- //-- methods
- class_addanything(any2string_class,
- (t_method)any2string_anything);
-
-
- //-- help symbol
- class_sethelpsymbol(any2string_class, gensym("pdstring-help.pd"));
-}
Copied: trunk/externals/moocow/pdstring+wchar/src/bytes2any-help.pd (from rev 10606, trunk/externals/moocow/pdstring+wchar/src/string2any-help.pd)
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/bytes2any-help.pd (rev 0)
+++ trunk/externals/moocow/pdstring+wchar/src/bytes2any-help.pd 2009-01-23 22:24:42 UTC (rev 10607)
@@ -0,0 +1,47 @@
+#N canvas 179 42 612 604 10;
+#X text 13 52 INLETS:;
+#X text 309 54 OUTLETS:;
+#X text 325 68 1 - pd messages;
+#X text 325 82 2 - bang on done;
+#X obj 24 350 string2any 128 0;
+#X obj 24 529 print string2any-help;
+#X obj 131 454 print string2any-help-done;
+#X msg 24 113 97 32 98 32 99;
+#X msg 39 135 97 0 98 0 99;
+#X msg 99 206 0;
+#X msg 67 206 -1;
+#X msg 131 206 32;
+#X text 166 202 The second inlet sets the message-separating EOS ("end-of-string")
+character. If this character is encountered in an input list \, the
+list is "split" at that point \, and two separate messages are output
+at the leftmost outlet. You can specify a negative value here to avoid
+implicit input splitting entirely. For backwards compatibility \, the
+default EOS character is -1 \, which results in truncation of input
+messages whenever a 0 (zero) is encountered.;
+#X text 163 350 First argument: initial buffer size (length of object-local
+text buffer). This should get re-allocated when necessary. Specify
+0 (zero) to use the default value.;
+#X text 165 405 Second argument: initial EOS character. See above.
+;
+#X text 159 477 Right outlet gives a bang after the entire input list
+has been processed.;
+#X text 189 531 Parsed pd messages are sent to the left outlet.;
+#X text 306 580 Bryan Jurish <moocow at ling.uni-potsdam.de>;
+#X text 27 83 2 - EOS character (float);
+#X text 161 121 lists of floats are converted to pd messages.;
+#X msg 54 161 StringThing 97;
+#X text 168 161 ... selector is ignored ...;
+#X text 21 571 SEE ALSO:;
+#X obj 102 570 pdstring;
+#X text 27 68 1 - byte-valued float lists;
+#X text 59 7 bytes2any : convert lists of byte values to pd messages
+;
+#X text 13 30 SYNTAX: bytes2any [INITIAL_BUFSIZE [EOS_CHAR]];
+#X connect 4 0 5 0;
+#X connect 4 1 6 0;
+#X connect 7 0 4 0;
+#X connect 8 0 4 0;
+#X connect 9 0 4 1;
+#X connect 10 0 4 1;
+#X connect 11 0 4 1;
+#X connect 20 0 4 0;
Copied: trunk/externals/moocow/pdstring+wchar/src/bytes2any.c (from rev 10606, trunk/externals/moocow/pdstring+wchar/src/string2any.c)
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/bytes2any.c (rev 0)
+++ trunk/externals/moocow/pdstring+wchar/src/bytes2any.c 2009-01-23 22:24:42 UTC (rev 10607)
@@ -0,0 +1,249 @@
+/* -*- Mode: C -*- */
+/*=============================================================================*\
+ * File: bytes2any.c
+ * Author: Bryan Jurish <moocow at ling.uni-potsdam.de>
+ * Description: convert strings to pd messages
+ *
+ * Copyright (c) 2004-2009 Bryan Jurish.
+ *
+ * For information on usage and redistribution, and for a DISCLAIMER OF ALL
+ * WARRANTIES, see the file "COPYING", in this distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *=============================================================================*/
+
+#include <string.h>
+#include <m_pd.h>
+#include "mooPdUtils.h"
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+/* black magic */
+#ifdef NT
+#pragma warning( disable : 4244 )
+#pragma warning( disable : 4305 )
+#endif
+
+/*--------------------------------------------------------------------
+ * DEBUG
+ *--------------------------------------------------------------------*/
+/*#define BYTES2ANY_DEBUG 1*/
+/*#undef BYTES2ANY_DEBUG*/
+
+#ifdef BYTES2ANY_DEBUG
+# define S2ADEBUG(x) x
+#else
+# define S2ADEBUG(x)
+#endif
+
+#define BYTES2ANY_DEFAULT_BUFLEN 256
+
+
+/*=====================================================================
+ * Constants
+ *=====================================================================*/
+static char *bytes2any_banner = "bytes2any: pdstring version " PACKAGE_VERSION " by Bryan Jurish";
+
+/*=====================================================================
+ * Structures and Types: any2string
+ *=====================================================================*/
+
+static t_class *bytes2any_class;
+
+typedef struct _bytes2any
+{
+ t_object x_obj;
+ size_t x_size;
+ t_float x_eos; //-- eos character
+ char *x_text;
+ t_binbuf *x_binbuf;
+ t_inlet *x_eos_in;
+ t_outlet *x_outlet;
+ t_outlet *x_outlet_done;
+} t_bytes2any;
+
+
+/*=====================================================================
+ * Utilities
+ *=====================================================================*/
+
+/*--------------------------------------------------------------------
+ * bytes2any_atoms()
+ */
+static void bytes2any_atoms(t_bytes2any *x, int argc, t_atom *argv)
+{
+ char *s;
+ int x_argc, a_argc=0;
+ t_atom *x_argv;
+
+ /*-- allocate --*/
+ if ( ((int)x->x_size) <= (argc+1) ) {
+ freebytes(x->x_text, x->x_size*sizeof(char));
+ x->x_size = argc+1;
+ x->x_text = (char *)getbytes(x->x_size*sizeof(char));
+ }
+
+ /*-- get text --*/
+ for (s=x->x_text; argc > 0; argc--, a_argc++, argv++, s++) {
+ *s = atom_getfloat(argv);
+ S2ADEBUG(post("bytes2any[%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("bytes2any[%p]: text: \"%s\", strlen=%d, argc=%d", x, x->x_text, strlen(x->x_text), a_argc));
+
+ /*-- clear and fill binbuf --*/
+ binbuf_clear(x->x_binbuf);
+ binbuf_text(x->x_binbuf, x->x_text, a_argc); //-- handle NULs if binbuf will (but it won't) ?
+ S2ADEBUG(post("bytes2any[%p]: binbuf_print: ", x));
+ S2ADEBUG(binbuf_print(x->x_binbuf));
+
+ /*-- output --*/
+ x_argc = binbuf_getnatom(x->x_binbuf);
+ x_argv = binbuf_getvec(x->x_binbuf);
+ if (x_argc && x_argv->a_type == A_SYMBOL) {
+ outlet_anything(x->x_outlet,
+ x_argv->a_w.w_symbol,
+ x_argc-1,
+ x_argv+1);
+ }
+ else {
+ outlet_anything(x->x_outlet,
+ &s_list,
+ x_argc,
+ x_argv);
+ }
+}
+
+
+/*=====================================================================
+ * Methods
+ *=====================================================================*/
+
+/*--------------------------------------------------------------------
+ * anything
+ */
+static void bytes2any_anything(t_bytes2any *x, MOO_UNUSED t_symbol *sel, int argc, t_atom *argv)
+{
+ int i0=0, i;
+
+ /*-- scan & output --*/
+ if (x->x_eos >= 0) {
+ for (i=i0; i < argc; i++) {
+ if (((int)atom_getfloatarg(i,argc,argv))==((int)x->x_eos)) {
+ bytes2any_atoms(x, i-i0, argv+i0);
+ i0=i+1;
+ }
+ }
+ }
+
+ if (i0 < argc) {
+ bytes2any_atoms(x, argc-i0, argv+i0);
+ }
+
+ outlet_bang(x->x_outlet_done);
+}
+
+
+/*--------------------------------------------------------------------
+ * new
+ */
+static void *bytes2any_new(MOO_UNUSED t_symbol *sel, int argc, t_atom *argv)
+{
+ t_bytes2any *x = (t_bytes2any *)pd_new(bytes2any_class);
+
+ //-- defaults
+ x->x_binbuf = binbuf_new();
+ x->x_size = BYTES2ANY_DEFAULT_BUFLEN;
+ x->x_eos = -1;
+
+ //-- args: 0: bufsize
+ if (argc > 0) {
+ int initial_bufsize = atom_getintarg(0,argc,argv);
+ if (initial_bufsize > 0) x->x_size = initial_bufsize;
+ x->x_eos = -1; //-- backwards-compatibility hack: no default eos character if only bufsize is specified
+ }
+ //-- args: 1: separator
+ if (argc > 1) {
+ x->x_eos = atom_getfloatarg(1,argc,argv);
+ }
+
+ //-- allocate
+ x->x_text = (char *)getbytes(x->x_size*sizeof(char));
+
+ //-- inlets
+ x->x_eos_in = floatinlet_new(&x->x_obj, &x->x_eos);
+
+ //-- outlets
+ x->x_outlet = outlet_new(&x->x_obj, &s_list);
+ x->x_outlet_done = outlet_new(&x->x_obj, &s_bang);
+
+ //-- debug
+ S2ADEBUG(post("bytes2any_new: x=%p, size=%d, eos=%d, binbuf=%p, text=%p", x, x->x_size, x->x_eos, x->x_binbuf, x->x_text));
+
+ return (void *)x;
+}
+
+/*--------------------------------------------------------------------
+ * free
+ */
+static void bytes2any_free(t_bytes2any *x)
+{
+ if (x->x_text) {
+ freebytes(x->x_text, x->x_size*sizeof(char));
+ x->x_text = NULL;
+ }
+ binbuf_free(x->x_binbuf);
+ inlet_free(x->x_eos_in);
+ outlet_free(x->x_outlet_done);
+ outlet_free(x->x_outlet);
+ return;
+}
+
+/*--------------------------------------------------------------------
+ * setup: guts
+ */
+void bytes2any_setup_guts(void)
+{
+ //-- class
+ bytes2any_class = class_new(gensym("bytes2any"),
+ (t_newmethod)bytes2any_new,
+ (t_method)bytes2any_free,
+ sizeof(t_bytes2any),
+ CLASS_DEFAULT,
+ A_GIMME, //-- initial_bufsize, eos_char
+ 0);
+
+ //-- alias
+ class_addcreator((t_newmethod)bytes2any_new, gensym("bytes2any"), A_GIMME, 0);
+
+ //-- methods
+ class_addanything(bytes2any_class, (t_method)bytes2any_anything);
+
+
+ //-- help symbol
+ //class_sethelpsymbol(bytes2any_class, gensym("bytes2any-help.pd")); //-- breaks pd-extended help lookup
+}
+
+/*--------------------------------------------------------------------
+ * setup
+ */
+void bytes2any_setup(void)
+{
+ post(bytes2any_banner);
+ bytes2any_setup_guts();
+}
Modified: trunk/externals/moocow/pdstring+wchar/src/config.h.in
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/config.h.in 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/config.h.in 2009-01-23 22:24:42 UTC (rev 10607)
@@ -1,8 +1,11 @@
/* src/config.h.in. Generated from configure.ac by autoheader. */
-/* Define this to include debugging code for the 'string2any' external. */
-#undef ANY2STRING_DEBUG
+/* Define this to include debugging code for the 'bytes2any' external. */
+#undef ANY2BYTES_DEBUG
+/* Define this to include debugging code for the 'any2bytes' external. */
+#undef BYTES2ANY_DEBUG
+
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
@@ -33,8 +36,5 @@
/* User who configured this external */
#undef PDSTRING_USER
-/* Define this to include debugging code for the 'any2string' external. */
-#undef STRING2ANY_DEBUG
-
/* Version number of package */
#undef VERSION
Modified: trunk/externals/moocow/pdstring+wchar/src/pdstring-help.pd
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/pdstring-help.pd 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/pdstring-help.pd 2009-01-23 22:24:42 UTC (rev 10607)
@@ -4,8 +4,6 @@
#X symbolatom 46 59 10 0 0 0 - - -;
#X text 201 59 ... no special handling for symbols;
#X text 200 37 anything can be converted to a list...;
-#X obj 37 108 any2string;
-#X obj 37 230 string2any;
#X floatatom 54 178 4 0 0 0 - - -;
#X text 213 230 string2any converts ASCII lists to Pd messages...;
#X text 202 81 ... but "float" selector is silently dropped;
@@ -13,7 +11,6 @@
#X obj 162 144 f 0;
#X obj 134 153 + 1;
#X obj 161 165 t f f f;
-#X obj 133 198 string2any;
#X obj 154 243 pack s 0;
#X obj 162 119 until;
#X obj 133 218 symbol;
@@ -23,37 +20,40 @@
#X obj 162 54 t b b;
#X obj 154 266 route list;
#X obj 154 293 print charset;
+#X obj 133 198 bytes2any;
#X connect 0 0 2 0;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
-#X connect 2 1 3 0;
-#X connect 2 2 4 1;
-#X connect 3 0 6 0;
-#X connect 4 0 11 0;
-#X connect 5 0 0 0;
+#X connect 2 1 12 0;
+#X connect 2 2 3 1;
+#X connect 3 0 10 0;
+#X connect 4 0 0 0;
+#X connect 5 0 3 0;
#X connect 6 0 4 0;
-#X connect 7 0 5 0;
-#X connect 8 0 0 1;
-#X connect 9 0 10 0;
-#X connect 10 0 7 0;
-#X connect 10 1 8 0;
-#X connect 11 0 12 0;
-#X connect 11 1 12 0;
+#X connect 7 0 0 1;
+#X connect 8 0 9 0;
+#X connect 9 0 6 0;
+#X connect 9 1 7 0;
+#X connect 10 0 11 0;
+#X connect 10 1 11 0;
+#X connect 12 0 5 0;
#X restore 249 144 pd ascii-table;
#X msg 249 121 bang;
#X text 361 143 know your charset;
-#X obj 58 139 print any2string-out;
-#X obj 37 254 print string2any-out;
#X msg 37 38 A B C;
#X msg 55 199 list 49 50 51;
#X text 54 3 any2string \, string2any : ASCII conversions in [pdstring]
lib;
-#X connect 1 0 5 0;
-#X connect 2 0 5 0;
-#X connect 5 0 13 0;
-#X connect 5 0 6 0;
-#X connect 6 0 14 0;
-#X connect 7 0 6 0;
-#X connect 11 0 10 0;
-#X connect 15 0 5 0;
-#X connect 16 0 6 0;
+#X obj 37 108 any2bytes;
+#X obj 37 230 bytes2any;
+#X obj 58 139 print any2bytes-out;
+#X obj 37 254 print bytes2any-out;
+#X connect 1 0 14 0;
+#X connect 2 0 14 0;
+#X connect 5 0 15 0;
+#X connect 9 0 8 0;
+#X connect 11 0 14 0;
+#X connect 12 0 15 0;
+#X connect 14 0 15 0;
+#X connect 14 0 16 0;
+#X connect 15 0 17 0;
Modified: trunk/externals/moocow/pdstring+wchar/src/pdstring.c
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/pdstring.c 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/pdstring.c 2009-01-23 22:24:42 UTC (rev 10607)
@@ -55,13 +55,8 @@
* External declarations
*=====================================================================*/
#ifndef PDSTRING_OBJECT_EXTERNALS
-/*
-extern void any2string_setup_guts(void);
-extern void string2any_setup_guts(void);
-*/
-#include "any2string.c"
-#include "string2any.c"
-
+# include "any2bytes.c"
+# include "bytes2any.c"
#endif
/*--------------------------------------------------------------------
@@ -91,8 +86,8 @@
pdstring_help(NULL);
#ifndef PDSTRING_OBJECT_EXTERNALS
- any2string_setup_guts();
- string2any_setup_guts();
+ any2bytes_setup_guts();
+ bytes2any_setup_guts();
#endif
pdstring_class = class_new(gensym("pdstring"),
Deleted: trunk/externals/moocow/pdstring+wchar/src/string2any-help.pd
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/string2any-help.pd 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/string2any-help.pd 2009-01-23 22:24:42 UTC (rev 10607)
@@ -1,46 +0,0 @@
-#N canvas 121 48 612 604 10;
-#X text 59 7 string2any : convert lists of floats to pd messages;
-#X text 13 30 SYNTAX: string2any [INITIAL_BUFSIZE [EOS_CHAR]];
-#X text 13 52 INLETS:;
-#X text 27 68 1 - ASCII-valued float lists;
-#X text 309 54 OUTLETS:;
-#X text 325 68 1 - pd messages;
-#X text 325 82 2 - bang on done;
-#X obj 24 350 string2any 128 0;
-#X obj 24 529 print string2any-help;
-#X obj 131 454 print string2any-help-done;
-#X msg 24 113 97 32 98 32 99;
-#X msg 39 135 97 0 98 0 99;
-#X msg 99 206 0;
-#X msg 67 206 -1;
-#X msg 131 206 32;
-#X text 166 202 The second inlet sets the message-separating EOS ("end-of-string")
-character. If this character is encountered in an input list \, the
-list is "split" at that point \, and two separate messages are output
-at the leftmost outlet. You can specify a negative value here to avoid
-implicit input splitting entirely. For backwards compatibility \, the
-default EOS character is -1 \, which results in truncation of input
-messages whenever a 0 (zero) is encountered.;
-#X text 163 350 First argument: initial buffer size (length of object-local
-text buffer). This should get re-allocated when necessary. Specify
-0 (zero) to use the default value.;
-#X text 165 405 Second argument: initial EOS character. See above.
-;
-#X text 159 477 Right outlet gives a bang after the entire input list
-has been processed.;
-#X text 189 531 Parsed pd messages are sent to the left outlet.;
-#X text 306 580 Bryan Jurish <moocow at ling.uni-potsdam.de>;
-#X text 27 83 2 - EOS character (float);
-#X text 161 121 lists of floats are converted to pd messages.;
-#X msg 54 161 StringThing 97;
-#X text 168 161 ... selector is ignored ...;
-#X text 21 571 SEE ALSO:;
-#X obj 102 570 pdstring;
-#X connect 7 0 8 0;
-#X connect 7 1 9 0;
-#X connect 10 0 7 0;
-#X connect 11 0 7 0;
-#X connect 12 0 7 1;
-#X connect 13 0 7 1;
-#X connect 14 0 7 1;
-#X connect 23 0 7 0;
Deleted: trunk/externals/moocow/pdstring+wchar/src/string2any.c
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/string2any.c 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/string2any.c 2009-01-23 22:24:42 UTC (rev 10607)
@@ -1,249 +0,0 @@
-/* -*- Mode: C -*- */
-/*=============================================================================*\
- * File: string2any.c
- * Author: Bryan Jurish <moocow at ling.uni-potsdam.de>
- * Description: convert strings to pd messages
- *
- * Copyright (c) 2004-2008 Bryan Jurish.
- *
- * For information on usage and redistribution, and for a DISCLAIMER OF ALL
- * WARRANTIES, see the file "COPYING", in this distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *=============================================================================*/
-
-#include <string.h>
-#include <m_pd.h>
-#include "mooPdUtils.h"
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-/* black magic */
-#ifdef NT
-#pragma warning( disable : 4244 )
-#pragma warning( disable : 4305 )
-#endif
-
-/*--------------------------------------------------------------------
- * DEBUG
- *--------------------------------------------------------------------*/
-/*#define STRING2ANY_DEBUG 1*/
-/*#undef STRING2ANY_DEBUG*/
-
-#ifdef STRING2ANY_DEBUG
-# define S2ADEBUG(x) x
-#else
-# define S2ADEBUG(x)
-#endif
-
-#define STRING2ANY_DEFAULT_BUFLEN 256
-
-
-/*=====================================================================
- * Constants
- *=====================================================================*/
-static char *string2any_banner = "string2any: pdstring version " PACKAGE_VERSION " by Bryan Jurish";
-
-/*=====================================================================
- * Structures and Types: any2string
- *=====================================================================*/
-
-static t_class *string2any_class;
-
-typedef struct _string2any
-{
- t_object x_obj;
- size_t x_size;
- t_float x_eos; //-- eos character
- char *x_text;
- t_binbuf *x_binbuf;
- t_inlet *x_eos_in;
- t_outlet *x_outlet;
- t_outlet *x_outlet_done;
-} t_string2any;
-
-
-/*=====================================================================
- * Utilities
- *=====================================================================*/
-
-/*--------------------------------------------------------------------
- * string2any_atoms()
- */
-static void string2any_atoms(t_string2any *x, int argc, t_atom *argv)
-{
- char *s;
- int x_argc, a_argc=0;
- t_atom *x_argv;
-
- /*-- allocate --*/
- if ( ((int)x->x_size) <= (argc+1) ) {
- freebytes(x->x_text, x->x_size*sizeof(char));
- x->x_size = argc+1;
- x->x_text = (char *)getbytes(x->x_size*sizeof(char));
- }
-
- /*-- get text --*/
- 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));
-
- /*-- clear and fill binbuf --*/
- binbuf_clear(x->x_binbuf);
- binbuf_text(x->x_binbuf, x->x_text, a_argc); //-- handle NULs if binbuf will (but it won't) ?
- S2ADEBUG(post("string2any[%p]: binbuf_print: ", x));
- S2ADEBUG(binbuf_print(x->x_binbuf));
-
- /*-- output --*/
- x_argc = binbuf_getnatom(x->x_binbuf);
- x_argv = binbuf_getvec(x->x_binbuf);
- if (x_argc && x_argv->a_type == A_SYMBOL) {
- outlet_anything(x->x_outlet,
- x_argv->a_w.w_symbol,
- x_argc-1,
- x_argv+1);
- }
- else {
- outlet_anything(x->x_outlet,
- &s_list,
- x_argc,
- x_argv);
- }
-}
-
-
-/*=====================================================================
- * Methods
- *=====================================================================*/
-
-/*--------------------------------------------------------------------
- * anything
- */
-static void string2any_anything(t_string2any *x, MOO_UNUSED t_symbol *sel, int argc, t_atom *argv)
-{
- int i0=0, i;
-
- /*-- scan & output --*/
- if (x->x_eos >= 0) {
- for (i=i0; i < argc; i++) {
- if (((int)atom_getfloatarg(i,argc,argv))==((int)x->x_eos)) {
- string2any_atoms(x, i-i0, argv+i0);
- i0=i+1;
- }
- }
- }
-
- if (i0 < argc) {
- string2any_atoms(x, argc-i0, argv+i0);
- }
-
- outlet_bang(x->x_outlet_done);
-}
-
-
-/*--------------------------------------------------------------------
- * new
- */
-static void *string2any_new(MOO_UNUSED t_symbol *sel, int argc, t_atom *argv)
-{
- t_string2any *x = (t_string2any *)pd_new(string2any_class);
-
- //-- defaults
- x->x_binbuf = binbuf_new();
- x->x_size = STRING2ANY_DEFAULT_BUFLEN;
- x->x_eos = -1;
-
- //-- args: 0: bufsize
- if (argc > 0) {
- int initial_bufsize = atom_getintarg(0,argc,argv);
- if (initial_bufsize > 0) x->x_size = initial_bufsize;
- x->x_eos = -1; //-- backwards-compatibility hack: no default eos character if only bufsize is specified
- }
- //-- args: 1: separator
- if (argc > 1) {
- x->x_eos = atom_getfloatarg(1,argc,argv);
- }
-
- //-- allocate
- x->x_text = (char *)getbytes(x->x_size*sizeof(char));
-
- //-- inlets
- x->x_eos_in = floatinlet_new(&x->x_obj, &x->x_eos);
-
- //-- outlets
- x->x_outlet = outlet_new(&x->x_obj, &s_list);
- x->x_outlet_done = outlet_new(&x->x_obj, &s_bang);
-
- //-- debug
- S2ADEBUG(post("string2any_new: x=%p, size=%d, eos=%d, binbuf=%p, text=%p", x, x->x_size, x->x_eos, x->x_binbuf, x->x_text));
-
- return (void *)x;
-}
-
-/*--------------------------------------------------------------------
- * free
- */
-static void string2any_free(t_string2any *x)
-{
- if (x->x_text) {
- freebytes(x->x_text, x->x_size*sizeof(char));
- x->x_text = NULL;
- }
- binbuf_free(x->x_binbuf);
- inlet_free(x->x_eos_in);
- outlet_free(x->x_outlet_done);
- outlet_free(x->x_outlet);
- return;
-}
-
-/*--------------------------------------------------------------------
- * setup: guts
- */
-void string2any_setup_guts(void)
-{
- //-- class
- string2any_class = class_new(gensym("string2any"),
- (t_newmethod)string2any_new,
- (t_method)string2any_free,
- sizeof(t_string2any),
- CLASS_DEFAULT,
- A_GIMME, //-- initial_bufsize, eos_char
- 0);
-
- //-- alias
- class_addcreator((t_newmethod)string2any_new, gensym("bytes2any"), A_GIMME, 0);
-
- //-- methods
- class_addanything(string2any_class, (t_method)string2any_anything);
-
-
- //-- help symbol
- //class_sethelpsymbol(string2any_class, gensym("string2any-help.pd")); //-- breaks pd-extended help lookup
-}
-
-/*--------------------------------------------------------------------
- * setup
- */
-void string2any_setup(void)
-{
- post(string2any_banner);
- string2any_setup_guts();
-}
Modified: trunk/externals/moocow/pdstring+wchar/src/unsigned.pd
===================================================================
--- trunk/externals/moocow/pdstring+wchar/src/unsigned.pd 2009-01-23 21:50:38 UTC (rev 10606)
+++ trunk/externals/moocow/pdstring+wchar/src/unsigned.pd 2009-01-23 22:24:42 UTC (rev 10607)
@@ -1,27 +1,27 @@
#N canvas 206 54 450 300 10;
-#X floatatom 105 86 5 0 0 1 byte_value - -;
-#X obj 105 116 string2any;
-#X obj 119 146 print s2a;
-#X obj 105 176 any2string;
-#X floatatom 105 208 5 0 0 0 - - -;
-#X msg 105 48 -10;
-#X msg 143 48 246;
-#X floatatom 238 207 5 0 0 0 - - -;
-#X floatatom 240 82 5 0 0 1 byte_value - -;
-#X msg 240 49 -10;
-#X msg 278 49 246;
-#X obj 238 115 bytes2any;
-#X obj 238 175 any2bytes;
-#X obj 252 145 print s2b;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 1 0 3 0;
-#X connect 3 0 4 0;
-#X connect 5 0 0 0;
-#X connect 6 0 0 0;
-#X connect 8 0 11 0;
-#X connect 9 0 8 0;
-#X connect 10 0 8 0;
-#X connect 11 0 12 0;
-#X connect 11 0 13 0;
-#X connect 12 0 7 0;
+#X floatatom 253 98 5 0 0 1 byte_value - -;
+#X obj 267 158 print s2a;
+#X floatatom 253 220 5 0 0 0 - - -;
+#X msg 253 60 -10;
+#X msg 291 60 246;
+#X floatatom 86 219 5 0 0 0 - - -;
+#X floatatom 88 94 5 0 0 1 byte_value - -;
+#X msg 88 61 -10;
+#X msg 126 61 246;
+#X obj 86 127 bytes2any;
+#X obj 86 187 any2bytes;
+#X obj 100 157 print s2b;
+#X obj 253 128 string2any;
+#X obj 253 188 any2string;
+#X connect 0 0 12 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 6 0 9 0;
+#X connect 7 0 6 0;
+#X connect 8 0 6 0;
+#X connect 9 0 10 0;
+#X connect 9 0 11 0;
+#X connect 10 0 5 0;
+#X connect 12 0 1 0;
+#X connect 12 0 13 0;
+#X connect 13 0 2 0;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Pd-cvs
mailing list