From patchwork Mon Aug 28 21:20:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Marchi X-Patchwork-Id: 22385 Received: (qmail 112476 invoked by alias); 28 Aug 2017 21:20:30 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 112467 invoked by uid 89); 28 Aug 2017 21:20:29 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: sesbmg23.ericsson.net Received: from sesbmg23.ericsson.net (HELO sesbmg23.ericsson.net) (193.180.251.37) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 28 Aug 2017 21:20:19 +0000 Received: from ESESSHC005.ericsson.se (Unknown_Domain [153.88.183.33]) by sesbmg23.ericsson.net (Symantec Mail Security) with SMTP id DA.64.21299.01984A95; Mon, 28 Aug 2017 23:20:16 +0200 (CEST) Received: from EUR01-HE1-obe.outbound.protection.outlook.com (153.88.183.145) by oa.msg.ericsson.com (153.88.183.33) with Microsoft SMTP Server (TLS) id 14.3.352.0; Mon, 28 Aug 2017 23:20:16 +0200 Received: from [192.168.0.102] (80.216.43.226) by AMSPR07MB309.eurprd07.prod.outlook.com (2a01:111:e400:802f::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.2; Mon, 28 Aug 2017 21:20:13 +0000 Subject: Re: [PATCH] define_command: Don't convert command name to lower case From: Simon Marchi To: CC: References: <10ded574-4f1e-728c-8205-bcb0e31d0377@ericsson.com> <1500932879-11652-1-git-send-email-simon.marchi@ericsson.com> Message-ID: Date: Mon, 28 Aug 2017 23:20:03 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.1 MIME-Version: 1.0 In-Reply-To: X-ClientProxiedBy: HE1PR05CA0193.eurprd05.prod.outlook.com (2603:10a6:3:f9::17) To AMSPR07MB309.eurprd07.prod.outlook.com (2a01:111:e400:802f::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3e84bde9-01e6-4091-db79-08d4ee5a92d5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:AMSPR07MB309; X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB309; 3:PVyZkIGyUKaHTCWng/wIKdcN1eFolhXk195qWvv/CQWhjIeUPwfuCbB6XJ7trGs9rH+q+xkocGVP5/MJijJmKMqvV7oUsT4OzusW3/RoS90wIRAIBUDGZqBMeAYj1jwJnxjhXlEbOAu7d21ri66gn3zcsmkms6Ztmt5OJFq6LFzBe1PGpkcyXW0Q+59vBs8y/EzL2UFaZXRBAtjsHAeyHyoqdPBi28vU62Fzwncq2uh8Ecf6dl9prfXKntPZm1I/; 25:snVh8vw09mBvr5YELF5H9iotH16ErdVe0uIZhd5PozLX20Bor/bta+pohg2HtrTcKsnbSvVbEW1HtPny3zHi7TlWTDIyuP+EmzREbr6GsGHeoZhLNGKITwhZI5fp+NsHqwRTn7sK1U7C9fbYYs1hygnudiu7Ae6jWJL/ZGAZUcjfjau7zdtNvs+f4kzHxT0LdNU5130p7Y2GDlkefGIi7Bj9Ae5hBa4AyUhgEC8bi7QuHKFbvVmY6Uy/KgJ5dUO+//46B7DW/QRZ1B7CTTs+CrOQ45Po0xWYqWV1hEgDIDR4qe0XxAGed48HX+dGc7jAAW1aszEbjbmqtOMclyblkw==; 31:KHB82cQqUyx8UJM+jLMJ2jT4sY7VD0TBriHrInKdm7ohEcwhtK8rWEoI8kFdA2T+u9X2fXFVMdyOR2dgxnoWm9NMlCOyE4QexDYl25akVdgk83uINCnphVN/WsJZIAuT2ODwkgJSzz/jCuNHKmGl6HKDbSC3I5WmSrc2K1TVUxWPMRGKEXqU7XipIZyNxfZoQErKXSYQLIeOduim5lHfe0l/kTJ9b4TUrvIFjv5L5BA= X-MS-TrafficTypeDiagnostic: AMSPR07MB309: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB309; 20:JGrGd3KLfpr0QPO3tNW5cWiryZq1ctzZKLQr0Uc3zBtUBSHkq3MQik9Poy3KWqsNFJikrg4jMr2LFFwTtR33Bl5nl3ESL03qpW/ddlRYZ0tb3rfWS9VXs4+8tvs7dDnkIk55xSInlT9Zea0+jibhgTBTJNVxCF0kFKwCM4DcHMsKP5kCJ9gooPLl7O1sUIj6W5p3/4fnIypT4s+eoHk4UZVC6kXHLdCF3PGLnq0Hf9Kev67DSA4ZvSLs5ZWQSjsC+mSOg84ZBjm/TEnUN7PUW64O8rPOBU1rNmcBz07wrURzrHvtzNJ6089d3OP9DLw2GSkVbYMRtaHMSkt4eIIekz1yRu9k6bRII1hgWf463MlqPj1XFUngzu3YJW9MA3nekk5rlqEmN6VzvjlGp/84+mNyWBNABVyP/S/JiOpIPwkgr2EN7sUllKr4A+eItUwvbCOEr2XM+PijaxvdeJldrxR5Qo8pWSxX5OIf/GoxFbqVwzRLgFghsKwD7n35JYcr; 4:PbQjdjn+i9y8BiQiPBiGqazr3KoYCmufPZgJTcKAfnkitpJutoH0PnoBcX02jNFOolchL2KlfFa/wWDkxEiJ5SG5GTItoZhjSDRVM43w4KSLdMtGlkcmpRO/fJxcxOFchK82KxE9D9TUTcMrmd8ZzEj1P2DMc7StbWo8iV0pFGMVg6L/+/07CrrE39rgDitogR5qfgUneJ6dmpuMK2JeTW9sSbcXOXvvFpVAPTMHrcTTP2fLdxpxxboUcErQNdGWGEnlR1venky4DTHY55qSXu8NcSYfnJxceuzSDuk4Dfo= X-Exchange-Antispam-Report-Test: UriScan:(37575265505322); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(3002001)(93006095)(93001095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123555025)(20161123558100)(20161123564025)(20161123560025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:AMSPR07MB309; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:AMSPR07MB309; X-Forefront-PRVS: 0413C9F1ED X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6049001)(6009001)(39860400002)(189002)(377424004)(199003)(377454003)(54534003)(24454002)(110136004)(4326008)(6246003)(4001350100001)(31696002)(575784001)(86362001)(36756003)(47776003)(97736004)(478600001)(8676002)(50466002)(64126003)(305945005)(68736007)(117156002)(65806001)(65956001)(66066001)(7736002)(53936002)(25786009)(23676002)(2906002)(6666003)(2950100002)(6916009)(50986999)(54356999)(76176999)(33646002)(81166006)(81156014)(101416001)(230700001)(77096006)(6486002)(83506001)(65826007)(7350300001)(5660300001)(3846002)(6116002)(42186005)(189998001)(53546010)(229853002)(31686004)(106356001)(105586002)(2351001)(2361001); DIR:OUT; SFP:1101; SCL:1; SRVR:AMSPR07MB309; H:[192.168.0.102]; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTVNQUjA3TUIzMDk7MjM6STM5SWY4K2p4YlBxb0ZpeDdoYVcwQlR0TzVi?= =?utf-8?B?V0hiYU5sOGNpbkxhZm94MllDMEk2UGtNeWNZbTZqWlNFek1MbUFMMVhGc0k1?= =?utf-8?B?dFpoTUFHR1Q3UEp5SE9qRjcxamQwZ0p4eW9KWXRlMHVBdk53MFFtM1c1SCtD?= =?utf-8?B?Kzh1czdQMXljODZNSDlHOUZ5NXYvYU9GMDZhTTRYT2NvazlWNWlkWFNxYkhB?= =?utf-8?B?MVhENkpMSFVpbFBEKzNleERsZzk2OGJIVWxmMlNaNkM3bFBuRStiYm44OVRj?= =?utf-8?B?NnFMSFR4L2NPRG5Ma0dEVnk4Ym1ML1Jzdkg5TXZsSVMyNEVOOU16dTUrK2JV?= =?utf-8?B?SFMxbW15MC8zVldTbEVPWDZ6NW1wZnZrYjNxRmJ2Z0FreDNTTkFFU2ZMdnJE?= =?utf-8?B?QU4xQjB2Tnc5U05lQnl4bkZ5MUFXbHh2dXFRa1ZtMDVnQkRYSHFFSW1lcE95?= =?utf-8?B?MHF3R3M4NFNNaEpWQjZ2ME1oQTNiT3paa3NhRVJvNDhhN1RJV3hnenZOaENx?= =?utf-8?B?MVNBZmV5MzVVUXNqRmFMaGEyR2MzaDVrZXoxdkpRM0U2VkRjclVqRUdaVzlS?= =?utf-8?B?NHYrVGhrT0FUbWVaTGNOc0gwQXNYa0taUVNhZzkrRnhwVzNnZkpLaFZvWGpE?= =?utf-8?B?Rlh1ZXBVM0ZwL0xSN1ZJWVJqY3lWZU1tS0UyeGxpVGVhUzc2dmI1N0VuZDc4?= =?utf-8?B?RlBvd2RGVmZZUlhMeDdYWkFKT3pUOHYxaWhJa0M1cmJEWS9TYXoxZURia1BN?= =?utf-8?B?RHVVVUt1T0ZFODc3bWdKSWdscSs2R0VYSjNNeU50N1hicW9jcmhvZ2F4ZndY?= =?utf-8?B?Z0d6b1JpN1JWeDVQNENnWXBlTFJsanNRN1g3c2JNa0F4Y29TUm81M3lNSW1W?= =?utf-8?B?YUM5OVpZcnFTZmxkRVR0SEZUVC9aaVJtaTh0WVBaSStBckZ2QXg0RkQwZUxB?= =?utf-8?B?US8ySWFycUhOekVYUmJmUGhvZDhVK1NETno5VFRzeXhveEtFWmxtaVdhMWI1?= =?utf-8?B?UlpKTUNGRGtHT1YySVBhbndhbGZYdTcxK3p2VHlLSUdWeXhNSVRDaUcvQWVv?= =?utf-8?B?bmNEZzg1cTRZOTN0aXcwQk9Fak9RYmV0UytIUTFuRUxhcDFRSVEzelBTbFdF?= =?utf-8?B?dEIwNU5OdENTc1dWWExiNTdjZEJkMVpvbEt5QUlQcWpOU3YwaWlPNkErNm9H?= =?utf-8?B?TWpnemkrVWJTcVZSSGVJN3ZCcmNIdEJpRExQMTJ2SnFpbDdYSGt5R1o1LzNE?= =?utf-8?B?Tmp6OWprVnh3RGdmeXMyUDZudnNMcWVZZUx5cjVmNG8xVDFxUFNDN0JtNTdk?= =?utf-8?B?TnhyTUxvdVdFS2czNEJscHg1bU1ZaWJMTkloMVUzZXNqb1hNVjVQQlZsS1JN?= =?utf-8?B?NDdmSGZwSzkyd1lFNFVyY2k0dmNvbldxaE42dU9YSU8vUzVFZmxoVnRicWhG?= =?utf-8?B?WWZqb09zTEZZMEh5MjdsaWFxUGZwUlBmZElJYWFPOTBZL2RmdlRiQzhXYjBT?= =?utf-8?B?MFdPbi9Rajh4eCtYcUwzNCtRajJFZkpsMVhlMmlYaG9TdmpteWIrcVFWNmQy?= =?utf-8?B?cXpvYkZTRUZkV3IxWUdZUWNvM2lud0pnSFo0MUk0MTkyZXpON1ZKS1ZiRnBv?= =?utf-8?B?d1lZc1dERnptT2tGaERJa0ZXMWpjaFRPU2I5TlZGVVZNMHZmUVlGVU1GdFR2?= =?utf-8?B?ZCtNL0diRFVkN2JQL3V6ak9EYVBKc21YM1R2cTJpc3VkU0dEMjRhSjgzWWNo?= =?utf-8?B?VVpIUU5NOWdQdzY1eFJ2dEF2M1VSdVU4N2RwemJ0UXM0cEp3ZzhQaEtoUU1a?= =?utf-8?B?RWFkR05KZWJ2OTJXVFlWclFLVEgzVUpGM1FUOGgxd0VrTGRyZUllS3R1ZGFW?= =?utf-8?B?aFZlWTNkeExZcWNnaVJYUm8yOXdqM2JXTHQwVklYUzFqU2xINDQ4UHZwSzBR?= =?utf-8?B?dWpBRlZ0R3ByYmtzb1F1MnFOS0hsUmVuQWdIV2ZycVIxcEhjQmxYVitIYmdz?= =?utf-8?B?K0orb2pGMi9COUZ0eFFFKzhDQWdJR016UnVGQXN3MG0vTVg5V2ZhNG8yWnVJ?= =?utf-8?Q?a9XluVR/mYzHYgDDcd8qF03v?= X-Microsoft-Exchange-Diagnostics: 1; AMSPR07MB309; 6:TY+0xfKSIYIVyo9dnT42lQl+wvRGA5CXRstIgvHfVUmXA1LBRcOja0p9/5VBclGQL3MnjszLNF9RtCWzqjfVVeNtvknWEJza7r5RQc0CezrLKp5rHwxT0nRgdRmRyO1qC/jG5YgzfjcOGnEvfz9MZdJ/nFz/zdKn+KieejFv+Bulp+hdmA6wZEotC/xCzQvkPEiyHu4PF72QofQVw7HiW2oitJz/EhUYDbODrT+ZBYdVwvi2W6FykL7Qe0FVuQDwAlHOkEnOi6Z4gKaIDk6jrr4C2CbDkNWKygADlGgKJKYT1s5YYvkBhnNM0/Jc+LiGFgH/z/hL0N9RDB2+306wTg==; 5:Yj6ZxqlzZSeStgdFX8QADBRvltan7V7m3fO3ADwVu5l+3HsRePmbJsV1D4iTm46OYzrEQijXlHR95fQ3jGtDZvVvrH0upcBgWdNYpUVDh3T0j5NOd2NRE28I9o+U3nCK/htGi2V9mjEVUmCfPJIjwg==; 24:jkoW+oY5/kIAdd4rQtSUdrZg4e/sv2IKuy+gCayGmIm8AJAdeWu3UzE/nIJhYJWkeQmWBPWdNEry2C0ajiy9QUIWAeMVVTy3q+9nMk5QZdg=; 7:zjH2Z0xTE3QPP3FY8JAOeK8s4j/2Mkt2zBcd/4da9/am0HA03pv7rNctukgwSr1KmsIAyLvRlV5IS2WgRmm2Av5Pd2Qzqvwmhc/zmRm2iFTNJlJ4cf8GUcJm6Ypa7CwESkL89/5Yx7/tAC6TVP2IyCjsbO38OZ0OQm5Lhj8UiI4kCbREGajaKKaOBGX5VJkSXMEwtiUkxZUt03i3JFqSpZ0ITCaAHDv+ACgyo/ADuCQ= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Aug 2017 21:20:13.8882 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR07MB309 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes On 2017-07-24 11:54 PM, Simon Marchi wrote: > On 2017-07-24 11:47 PM, Simon Marchi wrote: >> I think this won't be too controversial, so I went ahead and made a patch for >> it. >> >> Commit >> >> Command names: make them case sensitive >> 3d7b173c29900879c9a5958dd6029fd36666e57c >> >> made command name lookup case sensitive. However, define_command, used >> when creating a user-defined command, converts the command name to >> lowercase, assuming that the command name lookup works in a case >> insensitive way. This causes user-defined commands with capital letters >> in their name to only be callable with a lowercase version: >> >> (gdb) define Foo >> Type commands for definition of "Foo". >> End with a line saying just "end". >> >print 1 >> >end >> (gdb) Foo >> Undefined command: "Foo". Try "help". >> (gdb) foo >> $1 = 1 >> >> This patch removes that conversion to lowercase, so that the user can >> call the command with the same name they provided. > > I forgot to mention but this would be a candidate for the 8.0 branch as well, > since it's a regression. > > Simon > This is now pushed to master and gdb-8.0-branch. I made a small change to the test, in order to test that multiple commands whose names differ only by case don't interfere. From fd437cbc432d5421492a5b0e371750de104cce93 Mon Sep 17 00:00:00 2001 From: Simon Marchi Date: Mon, 28 Aug 2017 23:05:04 +0200 Subject: [PATCH] define_command: Don't convert command name to lower case Commit Command names: make them case sensitive 3d7b173c29900879c9a5958dd6029fd36666e57c made command name lookup case sensitive. However, define_command, used when creating a user-defined command, converts the command name to lowercase, assuming that the command name lookup works in a case insensitive way. This causes user-defined commands with capital letters in their name to only be callable with a lowercase version: (gdb) define Foo Type commands for definition of "Foo". End with a line saying just "end". >print 1 >end (gdb) Foo Undefined command: "Foo". Try "help". (gdb) foo $1 = 1 This patch removes that conversion to lowercase, so that the user can call the command with the same name they provided. gdb/ChangeLog: * cli/cli-script.c (define_command): Don't convert command name to lower case. gdb/testsuite/ChangeLog: * gdb.base/commands.exp (user_defined_command_case_sensitivity): New proc, call it from toplevel. --- gdb/ChangeLog | 5 +++++ gdb/cli/cli-script.c | 6 ------ gdb/testsuite/ChangeLog | 5 +++++ gdb/testsuite/gdb.base/commands.exp | 30 ++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 39ff4ed..73106bf 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2017-08-28 Simon Marchi + + * cli/cli-script.c (define_command): Don't convert command name + to lower case. + 2017-08-25 Joel Brobecker * ada-lang.c (ada_lookup_struct_elt_type): Remove parameter "dispp". diff --git a/gdb/cli/cli-script.c b/gdb/cli/cli-script.c index 4b8ae0b..64b4c2b 100644 --- a/gdb/cli/cli-script.c +++ b/gdb/cli/cli-script.c @@ -1478,12 +1478,6 @@ define_command (char *comname, int from_tty) comname = xstrdup (comname); - /* If the rest of the commands will be case insensitive, this one - should behave in the same manner. */ - for (tem = comname; *tem; tem++) - if (isupper (*tem)) - *tem = tolower (*tem); - xsnprintf (tmpbuf, sizeof (tmpbuf), "Type commands for definition of \"%s\".", comfull); command_line_up cmds = read_command_lines (tmpbuf, from_tty, 1, 0, 0); diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 56ff191..83261df 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2017-08-28 Simon Marchi + + * gdb.base/commands.exp (user_defined_command_case_sensitivity): + New proc, call it from toplevel. + 2017-08-23 Sergio Durigan Junior PR remote/21852 diff --git a/gdb/testsuite/gdb.base/commands.exp b/gdb/testsuite/gdb.base/commands.exp index 4963743..4cd5f46 100644 --- a/gdb/testsuite/gdb.base/commands.exp +++ b/gdb/testsuite/gdb.base/commands.exp @@ -352,6 +352,35 @@ proc_with_prefix user_defined_command_test {} { "display user-defined empty command" } +# Test that the case with which the command was defined is preserved. + +proc_with_prefix user_defined_command_case_sensitivity {} { + # Define a first command with mixed case name. + set test "define Homer-Simpson" + gdb_test_multiple $test $test { + -re "End with" { + pass $test + } + } + + gdb_test "print 123\nend" "" "enter commands 1" + + # Define a second command, same name but different case. + set test "define HomeR-SimpsoN" + gdb_test_multiple $test $test { + -re "End with" { + pass $test + } + } + + gdb_test "print 456\nend" "" "enter commands 2" + + gdb_test "Homer-Simpson" " = 123" "execute command" + gdb_test "HomeR-SimpsoN" " = 456" "execute command" + gdb_test "HOMER-SIMPSON" "Undefined command.*" "try to call in upper case" + gdb_test "homer-simpson" "Undefined command.*" "try to call in lower case" +} + # Test that "eval" in a user-defined command expands $argc/$argN. proc_with_prefix user_defined_command_args_eval {} { @@ -1052,6 +1081,7 @@ if_while_breakpoint_command_test infrun_breakpoint_command_test breakpoint_command_test user_defined_command_test +user_defined_command_case_sensitivity user_defined_command_args_eval user_defined_command_args_stack_test user_defined_command_manyargs_test