From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17952 invoked by alias); 25 Feb 2011 18:58:29 -0000 Received: (qmail 17944 invoked by uid 22791); 25 Feb 2011 18:58:28 -0000 X-SWARE-Spam-Status: No, hits=-4.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_HI,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-outbound-2.vmware.com (HELO smtp-outbound-2.vmware.com) (65.115.85.73) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 25 Feb 2011 18:58:23 +0000 Received: from mailhost2.vmware.com (mailhost2.vmware.com [10.16.67.167]) by smtp-outbound-2.vmware.com (Postfix) with ESMTP id 210882A012; Fri, 25 Feb 2011 10:58:20 -0800 (PST) Received: from msnyder-server.eng.vmware.com (promd-2s-dhcp138.eng.vmware.com [10.20.124.138]) by mailhost2.vmware.com (Postfix) with ESMTP id 1791C8EFA6; Fri, 25 Feb 2011 10:58:20 -0800 (PST) Message-ID: <4D67FBCB.6040608@vmware.com> Date: Fri, 25 Feb 2011 19:20:00 -0000 From: Michael Snyder User-Agent: Thunderbird 2.0.0.24 (X11/20101201) MIME-Version: 1.0 To: Pedro Alves CC: "gdb-patches@sourceware.org" Subject: Re: [rfa] Make get_number_or_range accept value history references References: <4D66AD46.204@vmware.com> <201102251155.57072.pedro@codesourcery.com> In-Reply-To: <201102251155.57072.pedro@codesourcery.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-02/txt/msg00776.txt.bz2 Pedro Alves wrote: > On Thursday 24 February 2011 19:11:02, Michael Snyder wrote: >> + if (isdigit (h[1]) || h[1] == '\0' || h[1] == ' ' || h[1] == '\t') >> + /* single-dollar history value */ >> + index = strtol (&h[1], endp, 10); > > Is this correct for the ' ' and '\t' cases? It looks > like it will accept "$ 3" as history value 3, but > it should parsed as "$" -- the last history value. > > You're also not checking if the string is all > digits, so $123asdf is being accepted as $123, while > the language parsers treat that as an internal > variable. Maybe you should take a look at write_dollar_variable, > and factor out or borrow code from there to avoid these > discrepancies? It's worse than that. I have to think about all the characters that a user might type here, if they didn't know better. Ugh.