/* Objective-C language support routines for GDB, the GNU debugger.
- Copyright 2002, 2003 Free Software Foundation, Inc.
+ Copyright 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
Contributed by Apple Computer, Inc.
Written by Michael Snyder.
#include "language.h"
#include "c-lang.h"
#include "objc-lang.h"
+#include "exceptions.h"
#include "complaints.h"
#include "value.h"
#include "symfile.h"
struct symbol *
lookup_struct_typedef (char *name, struct block *block, int noerr)
{
- register struct symbol *sym;
+ struct symbol *sym;
sym = lookup_symbol (name, block, STRUCT_DOMAIN, 0,
(struct symtab **) NULL);
if (noerr)
return 0;
else
- error ("No struct type named %s.", name);
+ error (_("No struct type named %s."), name);
}
if (TYPE_CODE (SYMBOL_TYPE (sym)) != TYPE_CODE_STRUCT)
{
if (noerr)
return 0;
else
- error ("This context has class, union or enum %s, not a struct.",
+ error (_("This context has class, union or enum %s, not a struct."),
name);
}
return sym;
function = find_function_in_inferior("objc_lookup_class");
else
{
- complaint (&symfile_complaints, "no way to lookup Objective-C classes");
+ complaint (&symfile_complaints, _("no way to lookup Objective-C classes"));
return 0;
}
1, &classval));
}
-int
+CORE_ADDR
lookup_child_selector (char *selname)
{
struct value * function, *selstring;
function = find_function_in_inferior("sel_get_any_uid");
else
{
- complaint (&symfile_complaints, "no way to lookup Objective-C selectors");
+ complaint (&symfile_complaints, _("no way to lookup Objective-C selectors"));
return 0;
}
nsstringValue = call_function_by_hand(function, 3, &stringValue[0]);
}
else
- error ("NSString: internal error -- no way to create new NSString");
+ error (_("NSString: internal error -- no way to create new NSString"));
- VALUE_TYPE(nsstringValue) = type;
+ deprecated_set_value_type (nsstringValue, type);
return nsstringValue;
}
for printing characters and strings is language specific. */
static void
-objc_emit_char (register int c, struct ui_file *stream, int quoter)
+objc_emit_char (int c, struct ui_file *stream, int quoter)
{
c &= 0xFF; /* Avoid sign bit follies. */
FORCE_ELLIPSES. */
static void
-objc_printstr (struct ui_file *stream, char *string,
+objc_printstr (struct ui_file *stream, const bfd_byte *string,
unsigned int length, int width, int force_ellipses)
{
- register unsigned int i;
+ unsigned int i;
unsigned int things_printed = 0;
int in_quotes = 0;
int need_comma = 0;
static struct type *
objc_create_fundamental_type (struct objfile *objfile, int typeid)
{
- register struct type *type = NULL;
+ struct type *type = NULL;
switch (typeid)
{
type = init_type (TYPE_CODE_INT,
TARGET_INT_BIT / TARGET_CHAR_BIT,
0, "<?type?>", objfile);
- warning ("internal error: no C/C++ fundamental type %d", typeid);
+ warning (_("internal error: no C/C++ fundamental type %d"), typeid);
break;
case FT_VOID:
type = init_type (TYPE_CODE_VOID,
range_check_off,
type_check_off,
case_sensitive_on,
+ array_row_major,
+ &exp_descriptor_standard,
objc_parse,
objc_error,
- evaluate_subexp_standard,
+ null_post_parser,
objc_printchar, /* Print a character constant */
objc_printstr, /* Function to print string constant */
objc_emit_char,
objc_skip_trampoline, /* Language specific skip_trampoline */
value_of_this, /* value_of_this */
basic_lookup_symbol_nonlocal, /* lookup_symbol_nonlocal */
+ basic_lookup_transparent_type,/* lookup_transparent_type */
objc_demangle, /* Language specific symbol demangler */
- {"", "", "", ""}, /* Binary format info */
- {"0%lo", "0", "o", ""}, /* Octal format info */
- {"%ld", "", "d", ""}, /* Decimal format info */
- {"0x%lx", "0x", "x", ""}, /* Hex format info */
+ NULL, /* Language specific class_name_from_physname */
objc_op_print_tab, /* Expression operators for printing */
1, /* C-style arrays */
0, /* String lower bound */
&builtin_type_char, /* Type of string elements */
+ default_word_break_characters,
+ NULL, /* FIXME: la_language_arch_info. */
LANG_MAGIC
};
void
start_msglist(void)
{
- register struct selname *new =
+ struct selname *new =
(struct selname *) xmalloc (sizeof (struct selname));
new->next = selname_chain;
int
end_msglist(void)
{
- register int val = msglist_len;
- register struct selname *sel = selname_chain;
- register char *p = msglist_sel;
- int selid;
+ int val = msglist_len;
+ struct selname *sel = selname_chain;
+ char *p = msglist_sel;
+ CORE_ADDR selid;
selname_chain = sel->next;
msglist_len = sel->msglist_len;
msglist_sel = sel->msglist_sel;
selid = lookup_child_selector(p);
if (!selid)
- error("Can't find selector \"%s\"", p);
+ error (_("Can't find selector \"%s\""), p);
write_exp_elt_longcst (selid);
xfree(p);
write_exp_elt_longcst (val); /* Number of args */
aname = SYMBOL_PRINT_NAME (*(struct symbol **) a);
bname = SYMBOL_PRINT_NAME (*(struct symbol **) b);
if (aname == NULL || bname == NULL)
- error ("internal: compare_selectors(1)");
+ error (_("internal: compare_selectors(1)"));
aname = strchr(aname, ' ');
bname = strchr(bname, ' ');
if (aname == NULL || bname == NULL)
- error ("internal: compare_selectors(2)");
+ error (_("internal: compare_selectors(2)"));
return specialcmp (aname+1, bname+1);
}
{
val = re_comp (myregexp);
if (val != 0)
- error ("Invalid regexp (%s): %s", val, regexp);
+ error (_("Invalid regexp (%s): %s"), val, regexp);
}
/* First time thru is JUST to get max length and count. */
}
if (matches)
{
- printf_filtered ("Selectors matching \"%s\":\n\n",
+ printf_filtered (_("Selectors matching \"%s\":\n\n"),
regexp ? regexp : "*");
sym_arr = alloca (matches * sizeof (struct symbol *));
begin_line();
}
else
- printf_filtered ("No selectors matching \"%s\"\n", regexp ? regexp : "*");
+ printf_filtered (_("No selectors matching \"%s\"\n"), regexp ? regexp : "*");
}
/*
aname = SYMBOL_PRINT_NAME (*(struct symbol **) a);
bname = SYMBOL_PRINT_NAME (*(struct symbol **) b);
if (aname == NULL || bname == NULL)
- error ("internal: compare_classes(1)");
+ error (_("internal: compare_classes(1)"));
return specialcmp (aname+1, bname+1);
}
{
val = re_comp (myregexp);
if (val != 0)
- error ("Invalid regexp (%s): %s", val, regexp);
+ error (_("Invalid regexp (%s): %s"), val, regexp);
}
/* First time thru is JUST to get max length and count. */
}
if (matches)
{
- printf_filtered ("Classes matching \"%s\":\n\n",
+ printf_filtered (_("Classes matching \"%s\":\n\n"),
regexp ? regexp : "*");
sym_arr = alloca (matches * sizeof (struct symbol *));
matches = 0;
begin_line();
}
else
- printf_filtered ("No classes matching \"%s\"\n", regexp ? regexp : "*");
+ printf_filtered (_("No classes matching \"%s\"\n"), regexp ? regexp : "*");
}
/*
{
struct expression *expr = parse_expression (args);
- register struct cleanup *old_chain =
+ struct cleanup *old_chain =
make_cleanup (free_current_contents, &expr);
int pc = 0;
- object = expr->language_defn->evaluate_exp (builtin_type_void_data_ptr,
- expr, &pc, EVAL_NORMAL);
+ object = expr->language_defn->la_exp_desc->evaluate_exp
+ (builtin_type_void_data_ptr, expr, &pc, EVAL_NORMAL);
do_cleanups (old_chain);
}
function = find_function_in_inferior ("_NSPrintForDebugger");
if (function == NULL)
- error ("Unable to locate _NSPrintForDebugger in child process");
+ error (_("Unable to locate _NSPrintForDebugger in child process"));
description = call_function_by_hand (function, 1, &object);
string_addr = value_as_long (description);
if (string_addr == 0)
- error ("object returns null description");
+ error (_("object returns null description"));
read_memory (string_addr + i++, &c, 1);
if (c != '\0')
read_memory (string_addr + i++, &c, 1);
} while (c != 0);
else
- printf_filtered("<object returns empty description>");
+ printf_filtered(_("<object returns empty description>"));
printf_filtered ("\n");
}
return 0;
}
-extern initialize_file_ftype _initialize_objc_language;
+extern initialize_file_ftype _initialize_objc_language; /* -Wmissing-prototypes */
void
_initialize_objc_language (void)
{
add_language (&objc_language_defn);
add_info ("selectors", selectors_info, /* INFO SELECTORS command. */
- "All Objective-C selectors, or those matching REGEXP.");
+ _("All Objective-C selectors, or those matching REGEXP."));
add_info ("classes", classes_info, /* INFO CLASSES command. */
- "All Objective-C classes, or those matching REGEXP.");
+ _("All Objective-C classes, or those matching REGEXP."));
add_com ("print-object", class_vars, print_object_command,
- "Ask an Objective-C object to print itself.");
+ _("Ask an Objective-C object to print itself."));
add_com_alias ("po", "print-object", class_vars, 1);
}