aboutsummaryrefslogtreecommitdiff
path: root/gdb/cli
diff options
context:
space:
mode:
authorKeith Seitz <keiths@redhat.com>2011-03-16 21:12:12 +0000
committerKeith Seitz <keiths@redhat.com>2011-03-16 21:12:12 +0000
commitc00f848495bbc6e6b24d4ec81d64a09f5759bf3d (patch)
treed95cbfa0489f1fff9ebe2d1d1d9fc6a6069ff4de /gdb/cli
parent598997c828bff87692dc5addca8b7961f227918b (diff)
downloadgdb-c00f848495bbc6e6b24d4ec81d64a09f5759bf3d.zip
gdb-c00f848495bbc6e6b24d4ec81d64a09f5759bf3d.tar.gz
gdb-c00f848495bbc6e6b24d4ec81d64a09f5759bf3d.tar.bz2
* linespec.c (find_methods): Canonicalize NAME before looking
up the symbol. (name_end): New function. (keep_name_info): New function. (decode_line_1): Use keep_name_info. (decode_compound): Likewise. * cli/cli-utils.h (remove_trailing_whitespace): New function. * cli/cli-utils.c (remove_trailing_whitespace): Likewise. PR c++/12273 * linespec.c (locate_first_half): Keep overload information, too. (decode_compound): Use a string to represent break characters to escape the loop. If P points to a break character, do not increment it. For C++ and Java, keep overload information and relevant keywords. If we cannot find a symbol, search the minimal symbols. PR c++/11734 * linespec.c (decode_compound): Rename SAVED_ARG to THE_REAL_SAVED_ARG. Make a copy of THE_REAL_SAVED_ARG in SAVED_ARG and strip single-quotes. Pass a valid block to lookup_symbol. (lookup_prefix_sym): Likewise. (find_method): Construct search name based on SYM_CLASS instead of SAVED_ARG. * psymtab.c (lookup_partial_symbol): Add language parameter. (lookup_symbol_aux_psymtabs): Likewise. Don't assume that the psymtab we found was the right one. Search for the desired symbol in the symtab to be certain. (psymtab_search_name): New function. (lookup_partial_symbol): Use psymtab_search_name. Add language parameter. (read_symtabs_for_function): Add language parameter and pass to lookup_partial_symbol. (find_symbol_file_from_partial): Likewise.
Diffstat (limited to 'gdb/cli')
-rw-r--r--gdb/cli/cli-utils.c11
-rw-r--r--gdb/cli/cli-utils.h4
2 files changed, 15 insertions, 0 deletions
diff --git a/gdb/cli/cli-utils.c b/gdb/cli/cli-utils.c
index 2cce068..62a2f12 100644
--- a/gdb/cli/cli-utils.c
+++ b/gdb/cli/cli-utils.c
@@ -234,3 +234,14 @@ skip_to_space (char *chp)
chp++;
return chp;
}
+
+/* See documentation in cli-utils.h. */
+
+char *
+remove_trailing_whitespace (const char *start, char *s)
+{
+ while (s > start && isspace (*(s - 1)))
+ --s;
+
+ return s;
+}
diff --git a/gdb/cli/cli-utils.h b/gdb/cli/cli-utils.h
index 2954c46..8a6e5b3 100644
--- a/gdb/cli/cli-utils.h
+++ b/gdb/cli/cli-utils.h
@@ -99,4 +99,8 @@ extern char *skip_spaces (char *inp);
extern char *skip_to_space (char *inp);
+/* Reverse S to the last non-whitespace character without skipping past
+ START. */
+
+extern char *remove_trailing_whitespace (const char *start, char *s);
#endif /* CLI_UTILS_H */