diff options
author | Tom Tromey <tromey@redhat.com> | 2009-09-25 21:39:53 +0000 |
---|---|---|
committer | Tom Tromey <tromey@redhat.com> | 2009-09-25 21:39:53 +0000 |
commit | 96c07c5b96e970c93ab71a1f351ca669bba78d1a (patch) | |
tree | 0228be5148273ed3078a199936b4ebf6cb9534d5 /gdb/python | |
parent | b8899f2b6861deda28ccc10d925105e7e516d68b (diff) | |
download | gdb-96c07c5b96e970c93ab71a1f351ca669bba78d1a.zip gdb-96c07c5b96e970c93ab71a1f351ca669bba78d1a.tar.gz gdb-96c07c5b96e970c93ab71a1f351ca669bba78d1a.tar.bz2 |
gdb
PR python/10664:
* language.h (struct language_defn) <la_get_string>: Add
'char_type' argument.
(LA_GET_STRING): Likewise.
(default_get_string, c_get_string): Update.
* language.c (default_get_string): Add 'char_type' argument.
* c-valprint.c (c_textual_element_type): Rename from
textual_element_type. No longer static. Update callers.
* c-lang.h (c_textual_element_type): Declare.
* c-lang.c (c_get_string): Add 'char_type' argument.
gdb/testsuite
PR python/10664:
* gdb.base/charset.exp: Test utf-16 strings with Python.
Diffstat (limited to 'gdb/python')
-rw-r--r-- | gdb/python/py-value.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gdb/python/py-value.c b/gdb/python/py-value.c index 58bcee3..e2ae0ba 100644 --- a/gdb/python/py-value.c +++ b/gdb/python/py-value.c @@ -238,6 +238,7 @@ valpy_string (PyObject *self, PyObject *args, PyObject *kw) const char *errors = NULL; const char *user_encoding = NULL; const char *la_encoding = NULL; + struct type *char_type; static char *keywords[] = { "encoding", "errors", "length" }; if (!PyArg_ParseTupleAndKeywords (args, kw, "|ssi", keywords, @@ -246,12 +247,13 @@ valpy_string (PyObject *self, PyObject *args, PyObject *kw) TRY_CATCH (except, RETURN_MASK_ALL) { - LA_GET_STRING (value, &buffer, &length, &la_encoding); + LA_GET_STRING (value, &buffer, &length, &char_type, &la_encoding); } GDB_PY_HANDLE_EXCEPTION (except); encoding = (user_encoding && *user_encoding) ? user_encoding : la_encoding; - unicode = PyUnicode_Decode (buffer, length, encoding, errors); + unicode = PyUnicode_Decode (buffer, length * TYPE_LENGTH (char_type), + encoding, errors); xfree (buffer); return unicode; |