From 9a0c956e7fb5ca1bb3a3c8b4bf5364efa564c65c Mon Sep 17 00:00:00 2001 From: pmuldoon Date: Thu, 14 Jan 2010 08:03:34 +0000 Subject: 2010-01-13 Phil Muldoon PR python/10705 * python/python-internal.h: Add lazy_string_object_type definition. (create_lazy_string_object, gdbpy_initialize_lazy_string) (gdbpy_is_lazystring, gdbpy_extract_lazy_string): Define. * python/py-value.c (valpy_lazy_string): New function. (convert_value_from_python): Add lazy string conversion. * python/py-prettyprint.c (pretty_print_one_value): Check if return is also a lazy string. (print_string_repr): Add lazy string printing branch. (print_children): Likewise. * python/py-lazy-string.c: New file. Implement lazy strings. * python/python.c (_initialize_python): Call gdbpy_initialize_lazy_string. * varobj.c (value_get_print_value): Add lazy string printing branch. Account for encoding. * c-lang.c (c_printstr): Account for new encoding argument. If encoding is NULL, find encoding suited for type, otherwise use user encoding. * language.h (language_defn): Add encoding argument. (LA_PRINT_STRING): Likewise. * language.c (unk_lang_printstr): Update to reflect new encoding argument to language_defn. * ada-lang.h (ada_printstr): Likewise. * c-lang.h (c_printstr): Likewise. * p-lang.h (pascal_printstr); * f-lang.c (f_printstr): Likewise. * m2-lang.c (m2_printstr): Likewise. * objc-lang.c (objc_printstr): Likewise. * p-lang.c (pascal_printstr): Likewise. * scm-lang.c (scm_printstr): Likewise. * c-valprint.c (c_val_print): Update LA_PRINT_STRING call for encoding argument. * ada-valprint.c (ada_printstr): Likewise. * f-valprint.c (f_val_print): Likewise * m2-valprint.c (m2_val_print): Likewise. * p-valprint.c (pascal_val_print): Likewise. * expprint.c (print_subexp_standard): Likewise. * valprint.c (val_print_string): Likewise. * Makefile.in (SUBDIR_PYTHON_OBS): Add py-lazy-string. (SUBDIR_PYTHON_SRCS): Likewise. (py-lazy-string.o): New rule. 2010-01-13 Phil Muldoon * gdb.texinfo (Values From Inferior): Document lazy_string value method. (Python API): Add Lazy strings menu item. (Lazy Strings In Python): New node. 2010-01-13 Phil Muldoon * gdb.python/py-value.exp (test_lazy_strings): Add lazy string test. * gdb.python/py-prettyprint.py (pp_ls): New printer. * gdb.python/py-prettyprint.exp (run_lang_tests): Add lazy string test. * gdb.python/py-prettyprint.c: Define lazystring test structure. * gdb.python/py-mi.exp: Add lazy string test. --- gdb/language.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'gdb/language.h') diff --git a/gdb/language.h b/gdb/language.h index 7772412f050..aaefb036383 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -190,7 +190,7 @@ struct language_defn void (*la_printstr) (struct ui_file * stream, struct type *elttype, const gdb_byte *string, unsigned int length, - int force_ellipses, + const char *encoding, int force_ellipses, const struct value_print_options *); void (*la_emitchar) (int ch, struct type *chtype, @@ -389,9 +389,9 @@ extern enum language set_language (enum language); #define LA_PRINT_CHAR(ch, type, stream) \ (current_language->la_printchar(ch, type, stream)) -#define LA_PRINT_STRING(stream, elttype, string, length, force_ellipses,options) \ +#define LA_PRINT_STRING(stream, elttype, string, length, encoding, force_ellipses,options) \ (current_language->la_printstr(stream, elttype, string, length, \ - force_ellipses,options)) + encoding, force_ellipses,options)) #define LA_EMIT_CHAR(ch, type, stream, quoter) \ (current_language->la_emitchar(ch, type, stream, quoter)) #define LA_GET_STRING(value, buffer, length, chartype, encoding) \ -- cgit v1.2.1