diff options
author | Peter Schauer <Peter.Schauer@mytum.de> | 1993-12-31 14:57:19 +0000 |
---|---|---|
committer | Peter Schauer <Peter.Schauer@mytum.de> | 1993-12-31 14:57:19 +0000 |
commit | d0cde99c8750aec355c1a572353e53fb2729b812 (patch) | |
tree | 14721404c78a4dc21709b4ed79a8657dd57b2d4f /gdb/symtab.c | |
parent | 534694b377f8a0b4d195b0879ba1a6ec50676220 (diff) | |
download | gdb-d0cde99c8750aec355c1a572353e53fb2729b812.zip gdb-d0cde99c8750aec355c1a572353e53fb2729b812.tar.gz gdb-d0cde99c8750aec355c1a572353e53fb2729b812.tar.bz2 |
* symtab.c (find_methods): Call fprintf_symbol_filtered with DMGL_ANSI.
Diffstat (limited to 'gdb/symtab.c')
-rw-r--r-- | gdb/symtab.c | 59 |
1 files changed, 43 insertions, 16 deletions
diff --git a/gdb/symtab.c b/gdb/symtab.c index 9981154..47a85da 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -1511,8 +1511,18 @@ find_methods (t, name, sym_arr) { int field_counter; struct fn_field *f = TYPE_FN_FIELDLIST1 (t, method_counter); - char *method_name = TYPE_FN_FIELDLIST_NAME (t, method_counter); + char dem_opname[64]; + + if (strncmp(method_name, "__", 2)==0 || + strncmp(method_name, "op", 2)==0 || + strncmp(method_name, "type", 4)==0 ) + { + if (cplus_demangle_opname(method_name, dem_opname, DMGL_ANSI)) + method_name = dem_opname; + else if (cplus_demangle_opname(method_name, dem_opname, 0)) + method_name = dem_opname; + } if (STREQ (name, method_name)) /* Find all the fields with that name. */ for (field_counter = TYPE_FN_FIELDLIST_LENGTH (t, method_counter) - 1; @@ -1544,7 +1554,8 @@ find_methods (t, name, sym_arr) { fputs_filtered("(Cannot find method ", gdb_stdout); fprintf_symbol_filtered (gdb_stdout, phys_name, - language_cplus, DMGL_PARAMS); + language_cplus, + DMGL_PARAMS | DMGL_ANSI); fputs_filtered(" - possibly inlined.)\n", gdb_stdout); } } @@ -1785,11 +1796,19 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical) || TYPE_CODE (SYMBOL_TYPE (sym_class)) == TYPE_CODE_UNION)) { /* Arg token is not digits => try it as a function name - Find the next token (everything up to end or next whitespace). */ - p = *argptr; - while (*p && *p != ' ' && *p != '\t' && *p != ',' && *p !=':') p++; + Find the next token(everything up to end or next blank). */ + if (strchr(gdb_completer_quote_characters, **argptr) != NULL) + { + p = skip_quoted(*argptr); + *argptr = *argptr + 1; + } + else + { + p = *argptr; + while (*p && *p!=' ' && *p!='\t' && *p!=',' && *p!=':') p++; + } +/* q = operator_chars (*argptr, &q1); - if (q1 - q) { char *opname; @@ -1808,10 +1827,13 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical) p = q1; } else +*/ { - copy = (char *) alloca (p - *argptr + 1 + (q1 - q)); + copy = (char *) alloca (p - *argptr + 1 ); memcpy (copy, *argptr, p - *argptr); copy[p - *argptr] = '\0'; + if (strchr(gdb_completer_quote_characters, copy[p-*argptr-1]) != NULL) + copy[p - *argptr -1] = '\0'; } /* no line number may be specified */ @@ -1937,12 +1959,12 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical) /* Check whether arg is all digits (and sign) */ - p = *argptr; - if (*p == '-' || *p == '+') p++; - while (*p >= '0' && *p <= '9') - p++; + q = *argptr; + if (*q == '-' || *q == '+') q++; + while (*q >= '0' && *q <= '9') + q++; - if (p != *argptr && (*p == 0 || *p == ' ' || *p == '\t' || *p == ',')) + if (q != *argptr && (*q == 0 || *q == ' ' || *q == '\t' || *q == ',')) { /* We found a token consisting of all digits -- at least one digit. */ enum sign {none, plus, minus} sign = none; @@ -1970,13 +1992,13 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical) switch (sign) { case plus: - if (p == *argptr) + if (q == *argptr) val.line = 5; if (s == 0) val.line = default_line + val.line; break; case minus: - if (p == *argptr) + if (q == *argptr) val.line = 15; if (s == 0) val.line = default_line - val.line; @@ -1987,8 +2009,8 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical) break; /* No need to adjust val.line. */ } - while (*p == ' ' || *p == '\t') p++; - *argptr = p; + while (*q == ' ' || *q == '\t') q++; + *argptr = q; if (s == 0) s = default_symtab; val.symtab = s; @@ -2014,6 +2036,11 @@ decode_line_1 (argptr, funfirstline, default_symtab, default_line, canonical) { p = pp+1; } + else + { + p = skip_quoted(*argptr); + } + copy = (char *) alloca (p - *argptr + 1); memcpy (copy, *argptr, p - *argptr); copy[p - *argptr] = '\0'; |