diff options
author | Tom Tromey <tom@tromey.com> | 2016-04-26 16:45:21 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2016-05-17 12:02:00 -0600 |
commit | 00272ec4b0cc22c1b9d60d39ce7bf5b2d5512582 (patch) | |
tree | 7e30c68e44022dc571b22761df01573cad6b8dce | |
parent | dcd1f97951b432032fd0728992b1384064663701 (diff) | |
download | gdb-00272ec4b0cc22c1b9d60d39ce7bf5b2d5512582.zip gdb-00272ec4b0cc22c1b9d60d39ce7bf5b2d5512582.tar.gz gdb-00272ec4b0cc22c1b9d60d39ce7bf5b2d5512582.tar.bz2 |
Add array start and end strings to generic_val_print_decorations
For Rust value-printing, I wanted to use generic_val_print_array, but
I also wanted to control the starting and ending strings.
This patch adds new strings to generic_val_print_decorations, updates
generic_val_print_array to use them, and updates all the existing
instances of generic_val_print_decorations.
2016-05-17 Tom Tromey <tom@tromey.com>
* valprint.h (struct generic_val_print_array) <array_start,
array_end>: New fields.
* valprint.c (generic_val_print_array): Add "decorations"
parameter. Use "array_start", "array_end".
(generic_val_print) <TYPE_CODE_ARRAY>: Update.
* p-valprint.c (p_decorations): Update.
* m2-valprint.c (m2_decorations): Update.
* f-valprint.c (f_decorations): Update.
* c-valprint.c (c_decorations): Update.
-rw-r--r-- | gdb/ChangeLog | 12 | ||||
-rw-r--r-- | gdb/c-valprint.c | 4 | ||||
-rw-r--r-- | gdb/f-valprint.c | 2 | ||||
-rw-r--r-- | gdb/m2-valprint.c | 4 | ||||
-rw-r--r-- | gdb/p-valprint.c | 4 | ||||
-rw-r--r-- | gdb/valprint.c | 16 | ||||
-rw-r--r-- | gdb/valprint.h | 4 |
7 files changed, 36 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cad948f..0b7af7a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,17 @@ 2016-05-17 Tom Tromey <tom@tromey.com> + * valprint.h (struct generic_val_print_array) <array_start, + array_end>: New fields. + * valprint.c (generic_val_print_array): Add "decorations" + parameter. Use "array_start", "array_end". + (generic_val_print) <TYPE_CODE_ARRAY>: Update. + * p-valprint.c (p_decorations): Update. + * m2-valprint.c (m2_decorations): Update. + * f-valprint.c (f_decorations): Update. + * c-valprint.c (c_decorations): Update. + +2016-05-17 Tom Tromey <tom@tromey.com> + * NEWS: Add "maint selftest" entry. * selftest.h: New file. * selftest.c: New file. diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c index e1da3d5..61302a3 100644 --- a/gdb/c-valprint.c +++ b/gdb/c-valprint.c @@ -124,7 +124,9 @@ static const struct generic_val_print_decorations c_decorations = " * I", "true", "false", - "void" + "void", + "{", + "}" }; /* Print a pointer based on the type of its target. diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c index 71bd2c3..1264737 100644 --- a/gdb/f-valprint.c +++ b/gdb/f-valprint.c @@ -203,6 +203,8 @@ static const struct generic_val_print_decorations f_decorations = ".TRUE.", ".FALSE.", "VOID", + "{", + "}" }; /* See val_print for a description of the various parameters of this diff --git a/gdb/m2-valprint.c b/gdb/m2-valprint.c index 73fbdfe..2d3a32f 100644 --- a/gdb/m2-valprint.c +++ b/gdb/m2-valprint.c @@ -301,7 +301,9 @@ static const struct generic_val_print_decorations m2_decorations = " * I", "TRUE", "FALSE", - "void" + "void", + "{", + "}" }; /* See val_print for a description of the various parameters of this diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c index 72dc6fd..3e840d8 100644 --- a/gdb/p-valprint.c +++ b/gdb/p-valprint.c @@ -49,7 +49,9 @@ static const struct generic_val_print_decorations p_decorations = " * I", "true", "false", - "void" + "void", + "{", + "}" }; /* See val_print for a description of the various parameters of this diff --git a/gdb/valprint.c b/gdb/valprint.c index 720942b..cea69f3 100644 --- a/gdb/valprint.c +++ b/gdb/valprint.c @@ -407,10 +407,12 @@ print_unpacked_pointer (struct type *type, struct type *elttype, static void generic_val_print_array (struct type *type, const gdb_byte *valaddr, - int embedded_offset, CORE_ADDR address, - struct ui_file *stream, int recurse, - const struct value *original_value, - const struct value_print_options *options) + int embedded_offset, CORE_ADDR address, + struct ui_file *stream, int recurse, + const struct value *original_value, + const struct value_print_options *options, + const struct + generic_val_print_decorations *decorations) { struct type *unresolved_elttype = TYPE_TARGET_TYPE (type); struct type *elttype = check_typedef (unresolved_elttype); @@ -427,11 +429,11 @@ generic_val_print_array (struct type *type, const gdb_byte *valaddr, print_spaces_filtered (2 + 2 * recurse, stream); } - fprintf_filtered (stream, "{"); + fputs_filtered (decorations->array_start, stream); val_print_array_elements (type, valaddr, embedded_offset, address, stream, recurse, original_value, options, 0); - fprintf_filtered (stream, "}"); + fputs_filtered (decorations->array_end, stream); } else { @@ -851,7 +853,7 @@ generic_val_print (struct type *type, const gdb_byte *valaddr, { case TYPE_CODE_ARRAY: generic_val_print_array (type, valaddr, embedded_offset, address, stream, - recurse, original_value, options); + recurse, original_value, options, decorations); break; case TYPE_CODE_MEMBERPTR: diff --git a/gdb/valprint.h b/gdb/valprint.h index 1a83cb5..451b5fe 100644 --- a/gdb/valprint.h +++ b/gdb/valprint.h @@ -186,6 +186,10 @@ struct generic_val_print_decorations /* What to print when we see TYPE_CODE_VOID. */ const char *void_name; + + /* Array start and end strings. */ + const char *array_start; + const char *array_end; }; |