2005-10-03 Joel Brobecker <brobecker@adacore.com>
[deliverable/binutils-gdb.git] / gdb / scm-lang.c
index 4b1db1547ef886cbb6dd9d5710b0f247d73daff3..f86a1398f64769c7cc13081aa5a04f35f641f1f8 100644 (file)
@@ -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
 };
 
This page took 0.041493 seconds and 4 git commands to generate.