X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Flanguage.h;h=85826fd2307b1c5c9001ced104a94c0fd1d3aadf;hb=904001b085513a5d6b7734275f6fb90c860cf3be;hp=e7dd01ec0ce5d86ffc4b7e3043aaeb83bd131b93;hpb=0fb0cc7590113e9b459dfcc48dc71c9d419d9580;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/language.h b/gdb/language.h index e7dd01ec0c..85826fd230 100644 --- a/gdb/language.h +++ b/gdb/language.h @@ -282,6 +282,14 @@ struct language_defn reference at the language level. */ int (*la_pass_by_reference) (struct type *type); + /* Obtain a string from the inferior, storing it in a newly allocated + buffer in BUFFER, which should be freed by the caller. LENGTH will + hold the size in bytes of the string (only actual characters, excluding + an eventual terminating null character). CHARSET will hold the encoding + used in the string. */ + void (*la_get_string) (struct value *value, gdb_byte **buffer, int *length, + const char **charset); + /* Add fields above this point, so the magic number is always last. */ /* Magic number for compat checking */ @@ -380,6 +388,8 @@ extern enum language set_language (enum language); force_ellipses,options)) #define LA_EMIT_CHAR(ch, stream, quoter) \ (current_language->la_emitchar(ch, stream, quoter)) +#define LA_GET_STRING(value, buffer, length, encoding) \ + (current_language->la_get_string(value, buffer, length, encoding)) #define LA_PRINT_ARRAY_INDEX(index_value, stream, optins) \ (current_language->la_print_array_index(index_value, stream, options)) @@ -489,4 +499,10 @@ int default_pass_by_reference (struct type *type); void default_print_typedef (struct type *type, struct symbol *new_symbol, struct ui_file *stream); +void default_get_string (struct value *value, gdb_byte **buffer, int *length, + const char **charset); + +void c_get_string (struct value *value, gdb_byte **buffer, int *length, + const char **charset); + #endif /* defined (LANGUAGE_H) */