From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1465 invoked by alias); 7 Aug 2009 23:30:14 -0000 Received: (qmail 1452 invoked by uid 22791); 7 Aug 2009 23:30:13 -0000 X-SWARE-Spam-Status: No, hits=-1.1 required=5.0 tests=AWL,BAYES_00,J_CHICKENPOX_43,J_CHICKENPOX_53,J_CHICKENPOX_73,J_CHICKENPOX_83,SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mx2.redhat.com (HELO mx2.redhat.com) (66.187.237.31) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 07 Aug 2009 23:30:06 +0000 Received: from int-mx2.corp.redhat.com (int-mx2.corp.redhat.com [172.16.27.26]) by mx2.redhat.com (8.13.8/8.13.8) with ESMTP id n77NS4Ig021581; Fri, 7 Aug 2009 19:28:04 -0400 Received: from ns3.rdu.redhat.com (ns3.rdu.redhat.com [10.11.255.199]) by int-mx2.corp.redhat.com (8.13.1/8.13.1) with ESMTP id n77NS3iE001908; Fri, 7 Aug 2009 19:28:03 -0400 Received: from opsy.redhat.com (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by ns3.rdu.redhat.com (8.13.8/8.13.8) with ESMTP id n77NS1B9028348; Fri, 7 Aug 2009 19:28:02 -0400 Received: by opsy.redhat.com (Postfix, from userid 500) id 5DA6937850D; Fri, 7 Aug 2009 17:28:01 -0600 (MDT) To: Pedro Alves Cc: gdb-patches@sourceware.org Subject: Re: FYI: fix PR gdb/8869 References: <200908072305.39587.pedro@codesourcery.com> From: Tom Tromey Reply-To: Tom Tromey Date: Sat, 08 Aug 2009 01:55:00 -0000 In-Reply-To: (Tom Tromey's message of "Fri\, 07 Aug 2009 16\:14\:04 -0600") Message-ID: User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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: 2009-08/txt/msg00122.txt.bz2 >>>>> "Tom" == Tom Tromey writes: Tom> Sigh. Tom> I'll fix soon. Ok, here is an update to strip trailing whitespace. This time with some tests. This is kind of ugly. I did remember a problem with using a real enum for set language -- the languages aren't all registered when _initialize_language is called. Tom 2009-08-07 Tom Tromey * language.c (set_language_command): Strip whitespace. (set_type_command): Likewise. (set_range_command): Likewise. 2009-08-07 Tom Tromey * gdb.base/setshow.exp: Add tests for changes to set language, set check range, and set check type. Index: language.c =================================================================== RCS file: /cvs/src/src/gdb/language.c,v retrieving revision 1.85 diff -u -r1.85 language.c --- language.c 7 Aug 2009 20:44:14 -0000 1.85 +++ language.c 7 Aug 2009 23:23:43 -0000 @@ -150,11 +150,21 @@ static void set_language_command (char *ignore, int from_tty, struct cmd_list_element *c) { - int i; + int i, len; enum language flang; - char *err_lang; + char *err_lang, *tem; + + /* Strip trailing whitespace. */ + if (!language) + len = 0; + else + { + len = strlen (language); + while (len > 0 && language[len - 1] == ' ') + --len; + } - if (!language || !language[0]) + if (len == 0) { printf_unfiltered (_("\ The currently understood settings are:\n\n\ @@ -181,6 +191,11 @@ return; } + /* Reset LANGUAGE to avoid trailing spaces. */ + tem = savestring (language, len); + xfree (language); + language = tem; + /* Search the list of languages for a match. */ for (i = 0; i < languages_size; i++) { @@ -251,6 +266,18 @@ static void set_type_command (char *ignore, int from_tty, struct cmd_list_element *c) { + int len; + char *tem; + + /* Strip trailing whitespace. */ + len = strlen (type); + while (len > 0 && type[len - 1] == ' ') + --len; + /* Reset TYPE. */ + tem = savestring (type, len); + xfree (type); + type = tem; + if (strcmp (type, "on") == 0) { type_check = type_check_on; @@ -298,6 +325,18 @@ static void set_range_command (char *ignore, int from_tty, struct cmd_list_element *c) { + int len; + char *tem; + + /* Strip trailing whitespace. */ + len = strlen (range); + while (len > 0 && range[len - 1] == ' ') + --len; + /* Reset RANGE. */ + tem = savestring (range, len); + xfree (range); + range = tem; + if (strcmp (range, "on") == 0) { range_check = range_check_on; Index: testsuite/gdb.base/setshow.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/setshow.exp,v retrieving revision 1.11 diff -u -r1.11 setshow.exp --- testsuite/gdb.base/setshow.exp 30 Jun 2009 18:28:12 -0000 1.11 +++ testsuite/gdb.base/setshow.exp 7 Aug 2009 23:23:44 -0000 @@ -104,6 +104,10 @@ gdb_test "set check range on" "" "set check range on" #test show check range on gdb_test "show check range" "Range checking is \"on\"\..*" "show check range (on)" +#test set check range off with trailing space +gdb_test "set check range off " "" "set check range off" +#test show check range off +gdb_test "show check range" "Range checking is \"off\"\..*" "show check range (off)" #test set check range auto gdb_test "set check range auto" "" "set check range auto" #test show check range auto @@ -112,6 +116,10 @@ gdb_test "set check type on" "" "set check type on" #test show check type on gdb_test "show check type" "Type checking is \"on\"..*" "show check type (on)" +#test set check type off with trailing space +gdb_test "set check type off " "" "set check type off" +#test show check type off +gdb_test "show check type" "Type checking is \"off\"..*" "show check type (off)" #test set check type auto gdb_test "set check type auto" "" "set check type auto" #test show check type @@ -170,6 +178,13 @@ gdb_test "set language asm" "" "set language asm" #test show language asm gdb_test "show language" "The current source language is \"asm\"..*" "show language (asm)" +#test set language java, with a trailing space +gdb_test "set language java " "" "set language java" +#test show language java +gdb_test "show language" "The current source language is \"java\"..*" "show language (java)" +#test completion for set language. +gdb_test "complete set language min" "set language minimal" \ + "complete set language minimal" #test set language auto gdb_test "set language auto" "" "set language auto" #test show language