From dc309054dd3997835c8ea37d268d26d55eeed760 Mon Sep 17 00:00:00 2001 From: Luigi Ballabio Date: Tue, 18 Feb 2003 17:13:13 +0000 Subject: [PATCH] Allow returning std::strings with embedded null characters (why one would want to do this is beyond my understanding) git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@4337 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Lib/python/std_common.i | 2 +- Lib/python/std_string.i | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Lib/python/std_common.i b/Lib/python/std_common.i index 4fe1a8264..804f986fa 100644 --- a/Lib/python/std_common.i +++ b/Lib/python/std_common.i @@ -20,7 +20,7 @@ double SwigNumber_AsDouble(PyObject* o) { : double(PyLong_AsLong(o))); } PyObject* SwigString_FromString(const std::string& s) { - return PyString_FromString(s.c_str()); + return PyString_FromStringAndSize(s.data(),s.size()); } std::string SwigString_AsString(PyObject* o) { return std::string(PyString_AsString(o)); diff --git a/Lib/python/std_string.i b/Lib/python/std_string.i index 2e63ef318..30d1afb7d 100644 --- a/Lib/python/std_string.i +++ b/Lib/python/std_string.i @@ -44,11 +44,11 @@ namespace std { } %typemap(out) string { - $result = PyString_FromString($1.c_str()); + $result = PyString_FromStringAndSize($1.data(),$1.size()); } %typemap(out) const string & { - $result = PyString_FromString($1->c_str()); + $result = PyString_FromStringAndSize($1->data(),$1->size()); } }