From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 55489 invoked by alias); 30 Jun 2017 11:24:42 -0000 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 Received: (qmail 55131 invoked by uid 89); 30 Jun 2017 11:24:38 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=simons, Simons, Hx-languages-length:1317, HCc:D*ca X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 30 Jun 2017 11:24:36 +0000 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 066727A164; Fri, 30 Jun 2017 11:24:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 066727A164 Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx04.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=sergiodj@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 066727A164 Received: from localhost (unused-10-15-17-193.yyz.redhat.com [10.15.17.193]) by smtp.corp.redhat.com (Postfix) with ESMTPS id CEA3C18174; Fri, 30 Jun 2017 11:24:31 +0000 (UTC) From: Sergio Durigan Junior To: Pedro Alves Cc: Simon Marchi , GDB Patches , Jerome Guitton Subject: Re: [PATCH] PR cli/21688: Fix multi-line/inline command differentiation References: <20170629020527.468-1-sergiodj@redhat.com> <90d0a1563dea6893b5dbcd8df19d0285@polymtl.ca> <87d19mmv7q.fsf@redhat.com> <87fueil9jx.fsf@redhat.com> <6c2f659c-fba1-dcdf-becd-0e05d3d08636@redhat.com> Date: Fri, 30 Jun 2017 11:24:00 -0000 In-Reply-To: <6c2f659c-fba1-dcdf-becd-0e05d3d08636@redhat.com> (Pedro Alves's message of "Fri, 30 Jun 2017 12:14:00 +0100") Message-ID: <871sq1lnv4.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-IsSubscribed: yes X-SW-Source: 2017-06/txt/msg00819.txt.bz2 On Friday, June 30 2017, Pedro Alves wrote: > On 06/29/2017 11:21 PM, Sergio Durigan Junior wrote: >> +/* Return true if NAME is the only command between COMMAND_START and >> + COMMAND_END. This is useful when we want to know whether the >> + command is inline (i.e., has arguments like 'python command1') or >> + is the start of a multi-line command block. */ >> + >> +static bool >> +command_name_equals_not_inline (const char *command_start, >> + const char *command_end, >> + const char *name) >> +{ >> + return (command_end - command_start == strlen (name) >> + && startswith (command_start, name)); >> +} > > ... > >> - else if (command_name_equals (cmd, "python")) >> + else if (command_name_equals_not_inline (p_start, p_end, "python")) >> { > > Does this handle command aliases? It doesn't look like it. Hm, no, it doesn't. I guess that the best approach would be to make sure that lookup_cmd_1 advances the **text pointer past all the whitespace chars after it matches a command, and then we could use Simon's idea and check for *cmd_name != '\0'. I'll prepare a patch here and do some testings. -- Sergio GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 Please send encrypted e-mail if possible http://sergiodj.net/