aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorg Holzmann <grholzi@users.sourceforge.net>2006-03-24 21:44:48 +0000
committerGeorg Holzmann <grholzi@users.sourceforge.net>2006-03-24 21:44:48 +0000
commit8f7b2a3052d686aca98c5d9c970378d461ec38db (patch)
treec5cf29a6337810c042e9550d9e3715db314e28de
parent7f1c8cf99ae97cfb93215a0c99a881bdde7de5ed (diff)
fix to send/receive symbols
svn path=/trunk/externals/iem/pdoctave/; revision=4763
-rw-r--r--write_shared_mem.cc15
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;