diff options
| author | Darryl L. Pierce <mcpierce@apache.org> | 2013-08-09 20:28:59 +0000 |
|---|---|---|
| committer | Darryl L. Pierce <mcpierce@apache.org> | 2013-08-09 20:28:59 +0000 |
| commit | 2e92126c01de68430443f93108e18657f1352d72 (patch) | |
| tree | 65b75848654d0f1ae6c9f6c1a967f9c2b38c0925 /qpid/cpp/include | |
| parent | e449378c5c50d751cbc34f485709f1a0de371546 (diff) | |
| download | qpid-python-2e92126c01de68430443f93108e18657f1352d72.tar.gz | |
QPID-5067: Changed language bindings to use UTF-8 encoding on strings.
Now, by default, all strings will come out of the dynamic languages and
be encoded using UTF-8.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1512482 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/include')
| -rw-r--r-- | qpid/cpp/include/qpid/swig_perl_typemaps.i | 12 | ||||
| -rw-r--r-- | qpid/cpp/include/qpid/swig_python_typemaps.i | 6 | ||||
| -rw-r--r-- | qpid/cpp/include/qpid/swig_ruby_typemaps.i | 9 |
3 files changed, 19 insertions, 8 deletions
diff --git a/qpid/cpp/include/qpid/swig_perl_typemaps.i b/qpid/cpp/include/qpid/swig_perl_typemaps.i index da24bfe402..da949a9498 100644 --- a/qpid/cpp/include/qpid/swig_perl_typemaps.i +++ b/qpid/cpp/include/qpid/swig_perl_typemaps.i @@ -51,9 +51,9 @@ STRLEN len; char *ptr = SvPV(value, len); qpid::types::Variant v = qpid::types::Variant(std::string(ptr,len)); - if (SvUTF8(value)) { - v.setEncoding("utf8"); - } + // if (SvUTF8(value)) { + v.setEncoding("utf8"); + // } return v; } } @@ -103,9 +103,9 @@ case qpid::types::VAR_STRING : { const std::string val(v->asString()); result = newSVpvn(val.c_str(), val.size()); - if( v->getEncoding() == "utf8" ) { - SvUTF8_on(result); - } + // if( v->getEncoding() == "utf8" ) { + SvUTF8_on(result); + // } break; } case qpid::types::VAR_MAP : { diff --git a/qpid/cpp/include/qpid/swig_python_typemaps.i b/qpid/cpp/include/qpid/swig_python_typemaps.i index 25a4e46b18..d6f112bdf7 100644 --- a/qpid/cpp/include/qpid/swig_python_typemaps.i +++ b/qpid/cpp/include/qpid/swig_python_typemaps.i @@ -60,7 +60,11 @@ typedef int Py_ssize_t; if (PyFloat_Check(value)) return qpid::types::Variant(PyFloat_AS_DOUBLE(value)); if (PyInt_Check(value)) return qpid::types::Variant(int64_t(PyInt_AS_LONG(value))); if (PyLong_Check(value)) return qpid::types::Variant(int64_t(PyLong_AsLongLong(value))); - if (PyString_Check(value)) return qpid::types::Variant(std::string(PyString_AS_STRING(value))); + if (PyString_Check(value)) { + qpid::types::Variant v = qpid::types::Variant(std::string(PyString_AS_STRING(value))); + v.setEncoding("utf8"); + return v; + } if (PyDict_Check(value)) { qpid::types::Variant::Map map; PyToMap(value, &map); diff --git a/qpid/cpp/include/qpid/swig_ruby_typemaps.i b/qpid/cpp/include/qpid/swig_ruby_typemaps.i index 1a07cc86b0..b7befb7291 100644 --- a/qpid/cpp/include/qpid/swig_ruby_typemaps.i +++ b/qpid/cpp/include/qpid/swig_ruby_typemaps.i @@ -27,9 +27,16 @@ void RbToList(VALUE, qpid::types::Variant::List*); qpid::types::Variant RbToVariant(VALUE value) { + printf("RbToVariant is of type %d\n", TYPE(value)); switch (TYPE(value)) { case T_FLOAT: return qpid::types::Variant(NUM2DBL(value)); - case T_STRING: return qpid::types::Variant(StringValuePtr(value)); + case T_STRING: { + qpid::types::Variant v = qpid::types::Variant(); + v = StringValuePtr(value)); + v.setEncoding("utf8"); + return v; + } + break; case T_FIXNUM: return qpid::types::Variant((int64_t) FIX2LONG(value)); case T_BIGNUM: return qpid::types::Variant((int64_t) NUM2LL(value)); case T_TRUE: return qpid::types::Variant(true); |
