X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fscm-lang.c;h=f86a1398f64769c7cc13081aa5a04f35f641f1f8;hb=e79af960e264269f6719a008ca84c56487f2aec2;hp=4b1db1547ef886cbb6dd9d5710b0f247d73daff3;hpb=e9667a656bea31ff7d801cf8a7699f0f006319a1;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/scm-lang.c b/gdb/scm-lang.c index 4b1db1547e..f86a1398f6 100644 --- a/gdb/scm-lang.c +++ b/gdb/scm-lang.c @@ -1,7 +1,7 @@ /* Scheme/Guile language support routines for GDB, the GNU debugger. - Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003, 2004 Free Software - Foundation, Inc. + Copyright 1995, 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005 Free + Software Foundation, Inc. This file is part of GDB. @@ -40,9 +40,6 @@ static struct value *evaluate_subexp_scm (struct type *, struct expression *, int *, enum noside); static struct value *scm_lookup_name (char *); static int in_eval_c (void); -static void scm_printstr (struct ui_file * stream, char *string, - unsigned int length, int width, - int force_ellipses); struct type *builtin_type_scm; @@ -53,8 +50,8 @@ scm_printchar (int c, struct ui_file *stream) } static void -scm_printstr (struct ui_file *stream, char *string, unsigned int length, - int width, int force_ellipses) +scm_printstr (struct ui_file *stream, const gdb_byte *string, + unsigned int length, int width, int force_ellipses) { fprintf_filtered (stream, "\"%s\"", string); } @@ -76,7 +73,7 @@ is_scmvalue_type (struct type *type) LONGEST scm_get_field (LONGEST svalue, int index) { - char buffer[20]; + gdb_byte buffer[20]; read_memory (SCM2PTR (svalue) + index * TYPE_LENGTH (builtin_type_scm), buffer, TYPE_LENGTH (builtin_type_scm)); return extract_signed_integer (buffer, TYPE_LENGTH (builtin_type_scm)); @@ -87,7 +84,7 @@ scm_get_field (LONGEST svalue, int index) or Boolean (CONTEXT == TYPE_CODE_BOOL). */ LONGEST -scm_unpack (struct type *type, const char *valaddr, enum type_code context) +scm_unpack (struct type *type, const gdb_byte *valaddr, enum type_code context) { if (is_scmvalue_type (type)) { @@ -120,7 +117,7 @@ scm_unpack (struct type *type, const char *valaddr, enum type_code context) return 1; } } - error ("Value can't be converted to integer."); + error (_("Value can't be converted to integer.")); default: return svalue; } @@ -160,7 +157,7 @@ scm_lookup_name (char *str) struct symbol *sym; args[0] = value_allocate_space_in_inferior (len); args[1] = value_from_longest (builtin_type_int, len); - write_memory (value_as_long (args[0]), str, len); + write_memory (value_as_long (args[0]), (gdb_byte *) str, len); if (in_eval_c () && (sym = lookup_symbol ("env", @@ -183,7 +180,7 @@ scm_lookup_name (char *str) (struct symtab **) NULL); if (sym) return value_of_variable (sym, NULL); - error ("No symbol \"%s\" in current context.", str); + error (_("No symbol \"%s\" in current context."), str); } struct value * @@ -192,9 +189,9 @@ scm_evaluate_string (char *str, int len) struct value *func; struct value *addr = value_allocate_space_in_inferior (len + 1); LONGEST iaddr = value_as_long (addr); - write_memory (iaddr, str, len); + write_memory (iaddr, (gdb_byte *) str, len); /* FIXME - should find and pass env */ - write_memory (iaddr + len, "", 1); + write_memory (iaddr + len, (gdb_byte *) "", 1); func = find_function_in_inferior ("scm_evstr"); return call_function_by_hand (func, 1, &addr); } @@ -248,6 +245,7 @@ const struct language_defn scm_language_defn = range_check_off, type_check_off, case_sensitive_off, + array_row_major, &exp_descriptor_scm, scm_parse, c_error, @@ -265,16 +263,13 @@ const struct language_defn scm_language_defn = basic_lookup_transparent_type,/* lookup_transparent_type */ NULL, /* Language specific symbol demangler */ NULL, /* Language specific class_name_from_physname */ - {"", "", "", ""}, /* Binary format info */ - {"#o%lo", "#o", "o", ""}, /* Octal format info */ - {"%ld", "", "d", ""}, /* Decimal format info */ - {"#x%lX", "#X", "X", ""}, /* Hex format info */ NULL, /* expression operators for printing */ 1, /* c-style arrays */ 0, /* String lower bound */ NULL, default_word_break_characters, c_language_arch_info, + default_print_array_index, LANG_MAGIC };