[PATCH] linespec.c old patch

Daniel Jacobowitz drow@mvista.com
Thu May 9 18:27:00 GMT 2002


On Thu, May 09, 2002 at 08:27:40PM -0400, Elena Zannoni wrote:
> 
> This patch was approved but never got applied.
> I am committing it now. DanJ, OK with you?
> 
> http://sources.redhat.com/ml/gdb-patches/2001-05/msg00417.html

Looks good to me.

> 
> Elena
> 
> 2002-05-09  Elena Zannoni  <ezannoni@redhat.com>
>   
> 	From Daniel Berlin <dan@cgsoftware.com> 
> 	* linespec.c (find_toplevel_char): '<' and '>' also increase and
> 	decrease the depth we are at, in the case of templates.
> 
> Index: linespec.c
> ===================================================================
> RCS file: /cvs/uberbaum/gdb/linespec.c,v
> retrieving revision 1.18
> diff -u -p -r1.18 linespec.c
> --- linespec.c	5 Apr 2002 22:04:41 -0000	1.18
> +++ linespec.c	10 May 2002 00:23:43 -0000
> @@ -298,7 +298,9 @@ build_canonical_line_spec (struct symtab
>  
>  /* 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<int, int>.  */
> +
>  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--;
>      }
> 

-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer



More information about the Gdb-patches mailing list