From 8f7b2a3052d686aca98c5d9c970378d461ec38db Mon Sep 17 00:00:00 2001 From: Georg Holzmann Date: Fri, 24 Mar 2006 21:44:48 +0000 Subject: fix to send/receive symbols svn path=/trunk/externals/iem/pdoctave/; revision=4763 --- write_shared_mem.cc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/write_shared_mem.cc b/write_shared_mem.cc index 2149e91..ac9f98f 100644 --- a/write_shared_mem.cc +++ b/write_shared_mem.cc @@ -36,9 +36,9 @@ void writeOctScalarIntoFloat (double d, float *f) { *f = (float) d; } -void writeOctStringIntoString (char *s, char *c) +void writeOctStringIntoString (char *dst, char *src) { - strcpy (s,c); + strcpy (dst, src); } @@ -65,6 +65,17 @@ DEFUN_DLD (write_shared_mem, args, , "returning an octave value to pd-value") if (args(0).is_string()) { pdtype = SYMBOL; + size = args(0).string_value().size(); + if (data = newSharedData (sdf, size, sizeof(char),pdtype)) { + writeOctStringIntoString( (char*)data, (char*)args(0).string_value().c_str() ); + } + else { + error("failed to get new data memory!"); + unBlockForWriting (sdf); + freeSharedDataFrame (&sdf); + return octave_value(); + } + } else if (args(0).is_real_matrix()) { pdtype = MATRIX; -- cgit v1.2.1