From: Elena Zannoni Date: Fri, 10 May 2002 00:29:23 +0000 (+0000) Subject: 2002-05-09 Elena Zannoni X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;ds=sidebyside;h=8120c9d5cc29f4321197b2b2d0ad9f3eca410dfc;p=binutils-gdb.git 2002-05-09 Elena Zannoni From Daniel Berlin * linespec.c (find_toplevel_char): '<' and '>' also increase and decrease the depth we are at, in the case of templates. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6f9e14d5970..57c8afc088b 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,9 @@ +2002-05-09 Elena Zannoni + + From Daniel Berlin + * linespec.c (find_toplevel_char): '<' and '>' also increase and + decrease the depth we are at, in the case of templates. + 2002-05-09 Daniel Jacobowitz * mips-tdep.c (mips_float_register_type): New function. diff --git a/gdb/linespec.c b/gdb/linespec.c index cbfafcfb955..b9a772c9ad1 100644 --- a/gdb/linespec.c +++ b/gdb/linespec.c @@ -298,7 +298,9 @@ build_canonical_line_spec (struct symtab_and_line *sal, char *symname, /* Find an instance of the character C in the string S that is outside of all parenthesis pairs, single-quoted strings, and double-quoted - strings. */ + strings. Also, ignore the char within a template name, like a ',' + within foo. */ + static char * find_toplevel_char (char *s, char c) { @@ -321,9 +323,9 @@ find_toplevel_char (char *s, char c) return scan; else if (*scan == '"' || *scan == '\'') quoted = *scan; - else if (*scan == '(') + else if (*scan == '(' || *scan == '<') depth++; - else if (*scan == ')' && depth > 0) + else if ((*scan == ')' || *scan == '>') && depth > 0) depth--; }