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. */
+ buffer in BUFFER, which should be freed by the caller. If the
+ in- and out-parameter *LENGTH is specified at -1, the string is
+ read until a null character of the appropriate width is found -
+ otherwise the string is read to the length of characters specified.
+ On completion, *LENGTH will hold the size of the string in characters.
+ If a *LENGTH of -1 was specified it will count only actual
+ characters, excluding any eventual terminating null character.
+ Otherwise *LENGTH will include all characters - including any nulls.
+ CHARSET will hold the encoding used in the string. */
void (*la_get_string) (struct value *value, gdb_byte **buffer, int *length,
- const char **charset);
+ struct type **chartype, const char **charset);
/* Add fields above this point, so the magic number is always last. */
/* Magic number for compat checking */
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, encoding) \
- (current_language->la_get_string(value, buffer, length, encoding))
+#define LA_GET_STRING(value, buffer, length, chartype, encoding) \
+ (current_language->la_get_string(value, buffer, length, chartype, encoding))
#define LA_PRINT_ARRAY_INDEX(index_value, stream, optins) \
(current_language->la_print_array_index(index_value, stream, options))
&& ((c) < 0x7F || (c) >= 0xA0) \
&& (!sevenbit_strings || (c) < 0x80))
-#if 0
-/* FIXME: cagney/2000-03-04: This function does not appear to be used.
- It can be deleted once 5.0 has been released. */
-/* Return a string that contains the hex digits of the number. No preceeding
- "0x" */
-
-extern char *longest_raw_hex_string (LONGEST);
-#endif
-
/* Type predicates */
extern int simple_type (struct type *);
struct ui_file *stream);
void default_get_string (struct value *value, gdb_byte **buffer, int *length,
- const char **charset);
+ struct type **char_type, const char **charset);
void c_get_string (struct value *value, gdb_byte **buffer, int *length,
- const char **charset);
+ struct type **char_type, const char **charset);
#endif /* defined (LANGUAGE_H) */