diff options
author | Georg Holzmann <grholzi@users.sourceforge.net> | 2006-03-24 21:44:48 +0000 |
---|---|---|
committer | Georg Holzmann <grholzi@users.sourceforge.net> | 2006-03-24 21:44:48 +0000 |
commit | 8f7b2a3052d686aca98c5d9c970378d461ec38db (patch) | |
tree | c5cf29a6337810c042e9550d9e3715db314e28de | |
parent | 7f1c8cf99ae97cfb93215a0c99a881bdde7de5ed (diff) |
fix to send/receive symbols
svn path=/trunk/externals/iem/pdoctave/; revision=4763
-rw-r--r-- | write_shared_mem.cc | 15 |
1 files 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; |