From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16798 invoked by alias); 9 May 2002 22:31:19 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 16789 invoked from network); 9 May 2002 22:31:19 -0000 Received: from unknown (HELO nevyn.them.org) (128.2.145.6) by sources.redhat.com with SMTP; 9 May 2002 22:31:19 -0000 Received: from drow by nevyn.them.org with local (Exim 3.35 #1 (Debian)) id 175wRT-0002kA-00 for ; Thu, 09 May 2002 18:31:19 -0400 Date: Thu, 09 May 2002 15:31:00 -0000 From: Daniel Jacobowitz To: gdb-patches@sources.redhat.com Subject: Re: [RFA] Fix mi-break.exp: 'b "basics.c":16' Message-ID: <20020509223119.GC14492@nevyn.them.org> Mail-Followup-To: gdb-patches@sources.redhat.com References: <20020402192959.A17349@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20020402192959.A17349@nevyn.them.org> User-Agent: Mutt/1.5.1i X-SW-Source: 2002-05/txt/msg00300.txt.bz2 On Tue, Apr 02, 2002 at 07:29:59PM -0500, Daniel Jacobowitz wrote: > [I dislike decode_line_1. But that seems to be the general consensus...] > > There was a logic error in the code to handle "file":line. Several, > actually. I suspect that it once worked and had bitrotten as the behavior > of the function changed. For instance, at the beginning of the function: > > if (p[0] == '"') > { > is_quote_enclosed = 1; > (*argptr)++; > p++; > } > > Then below it checked 'is_quote_enclosed && (**argptr) == '"'). That'll > only be true given a literal '"":', which was not the intent of the > test. > > > This patch updates the behavior, should change nothing else, and causes no > regressions. OK to check in? Only Michael Chastain (who recommended it for approval) had anything to say about this patch. Ping? > 2002-04-02 Daniel Jacobowitz > > * linespec.c (decode_line_1): Check for a double quote after > a filename correctly. > > Index: linespec.c > =================================================================== > RCS file: /cvs/src/src/gdb/linespec.c,v > retrieving revision 1.17 > diff -u -p -r1.17 linespec.c > --- linespec.c 2002/03/22 18:57:07 1.17 > +++ linespec.c 2002/04/03 00:19:30 > @@ -929,20 +929,12 @@ decode_line_1 (char **argptr, int funfir > if ((*p == '"') && is_quote_enclosed) > --p; > copy = (char *) alloca (p - *argptr + 1); > - if ((**argptr == '"') && is_quote_enclosed) > - { > - memcpy (copy, *argptr + 1, p - *argptr - 1); > - /* It may have the ending quote right after the file name */ > - if (copy[p - *argptr - 2] == '"') > - copy[p - *argptr - 2] = 0; > - else > - copy[p - *argptr - 1] = 0; > - } > + memcpy (copy, *argptr, p - *argptr); > + /* It may have the ending quote right after the file name */ > + if (is_quote_enclosed && copy[p - *argptr - 1] == '"') > + copy[p - *argptr - 1] = 0; > else > - { > - memcpy (copy, *argptr, p - *argptr); > - copy[p - *argptr] = 0; > - } > + copy[p - *argptr] = 0; > > /* Find that file's data. */ > s = lookup_symtab (copy); > -- Daniel Jacobowitz Carnegie Mellon University MontaVista Software Debian GNU/Linux Developer