const char *, int,
namespace_enum);
-static struct partial_symbol *fixup_psymbol_section (struct
- partial_symbol *,
- struct objfile *);
-
static struct symtab *lookup_symtab_1 (char *);
static void cplusplus_hint (char *);
msym = lookup_minimal_symbol (ginfo->name, NULL, objfile);
if (msym)
- ginfo->bfd_section = SYMBOL_BFD_SECTION (msym);
+ {
+ ginfo->bfd_section = SYMBOL_BFD_SECTION (msym);
+ ginfo->section = SYMBOL_SECTION (msym);
+ }
}
struct symbol *
return sym;
}
-static struct partial_symbol *
+struct partial_symbol *
fixup_psymbol_section (struct partial_symbol *psym, struct objfile *objfile)
{
if (!psym)
register struct block *b;
register struct minimal_symbol *msymbol;
+ if (case_sensitivity == case_sensitive_off)
+ {
+ char *copy;
+ int len, i;
+
+ len = strlen (name);
+ copy = (char *) alloca (len + 1);
+ for (i= 0; i < len; i++)
+ copy[i] = tolower (name[i]);
+ copy[len] = 0;
+ name = copy;
+ }
+
/* Search specified block and its superiors. */
while (block != 0)
/* First check for "global" namespace specification,
of the form "::foo". If found, skip over the colons
and jump to normal symbol processing */
- if ((*argptr == p) || (p[-1] == ' ') || (p[-1] == '\t'))
+ if (p[0] == ':'
+ && ((*argptr == p) || (p[-1] == ' ') || (p[-1] == '\t')))
saved_arg2 += 2;
/* We have what looks like a class or namespace
if (kind < LABEL_NAMESPACE)
error ("must search on specific namespace");
- ourtype = types[(int) (kind - LABEL_NAMESPACE)];
- ourtype2 = types2[(int) (kind - LABEL_NAMESPACE)];
- ourtype3 = types3[(int) (kind - LABEL_NAMESPACE)];
- ourtype4 = types4[(int) (kind - LABEL_NAMESPACE)];
+ ourtype = types[(int) (kind - VARIABLES_NAMESPACE)];
+ ourtype2 = types2[(int) (kind - VARIABLES_NAMESPACE)];
+ ourtype3 = types3[(int) (kind - VARIABLES_NAMESPACE)];
+ ourtype4 = types4[(int) (kind - VARIABLES_NAMESPACE)];
sr = *matches = NULL;
tail = NULL;
/* Typedef that is not a C++ class */
if (kind == TYPES_NAMESPACE
&& SYMBOL_NAMESPACE (sym) != STRUCT_NAMESPACE)
- c_typedef_print (SYMBOL_TYPE (sym), sym, gdb_stdout);
+ typedef_print (SYMBOL_TYPE (sym), sym, gdb_stdout);
/* variable, func, or typedef-that-is-c++-class */
else if (kind < TYPES_NAMESPACE ||
(kind == TYPES_NAMESPACE &&
printf_filtered (regexp
? "All %ss matching regular expression \"%s\":\n"
: "All defined %ss:\n",
- classnames[(int) (kind - LABEL_NAMESPACE - 1)], regexp);
+ classnames[(int) (kind - VARIABLES_NAMESPACE)], regexp);
for (p = symbols; p != NULL; p = p->next)
{