From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Dmitry Gutov Newsgroups: gmane.emacs.devel Subject: Re: master 031e1c2: Regexp-quote literal symbols when grepping Date: Sun, 19 Sep 2021 02:47:23 +0300 Message-ID: <6e585f17-3c7a-7b22-00cd-0ec7039ffa72@yandex.ru> References: <20210918114625.2175.90107@vcs0.savannah.gnu.org> <20210918114626.6FF8F20ABE@vcs0.savannah.gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9533"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0 To: emacs-devel@gnu.org, =?UTF-8?Q?Mattias_Engdeg=c3=a5rd?= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Sep 19 01:48:29 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mRk4K-0002JN-Qf for ged-emacs-devel@m.gmane-mx.org; Sun, 19 Sep 2021 01:48:28 +0200 Original-Received: from localhost ([::1]:43850 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mRk4I-0003N2-AT for ged-emacs-devel@m.gmane-mx.org; Sat, 18 Sep 2021 19:48:26 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:59452) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mRk3Q-0002h9-Au for emacs-devel@gnu.org; Sat, 18 Sep 2021 19:47:32 -0400 Original-Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]:42900) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mRk3O-00026u-Li for emacs-devel@gnu.org; Sat, 18 Sep 2021 19:47:32 -0400 Original-Received: by mail-wr1-x434.google.com with SMTP id q11so21595575wrr.9 for ; Sat, 18 Sep 2021 16:47:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=9phG/aIXC8tZBQlkKh1eeophhhDeB5sDW8I2bDT0kOM=; b=bHGZUDIRLgG7JXlVe0l/oOkXuVSn6uQt6pRzS26nS+E+6SNDMXRJziJwLYvGFZOOFu thismrKrpvc9yJ9fJQ81OrO8x1r+P3QNogwHvsUkav/6bkn2v6KNc7wWgAN0kEt1q6d0 FHkxP5+CCRdidU7PugWld4a3bqALhOE9rXB+lhKi3m5PR0SXlzWjwHmwkw6jmxeCx3mt T9YCKQwHrLLza10v6VY2KP8PxLPNlqGp4ZBUWzzPkdtLQHMX2g2H/HA8GY0c2yWbrdwJ vbkFJaiPI7iu53PW9zOqyRMqUghCp3o16nGE8t/ADd3UaGSVX9q+9jmwSGg77fJ9z4fB CD5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=9phG/aIXC8tZBQlkKh1eeophhhDeB5sDW8I2bDT0kOM=; b=FIXMFaDjDQo9Wdtan3EfQujxifosWtb+Zd7Vi2OkB1nKDhW4JQsqsO5ahH+f8wpytC MH4uJGS2uKt3S4CTLk0EYq0fr3rv+HOsqpxF2PFPvpV/RwTNz15gUWgKNBsT+zIYdcRp G7OSKf0GFD+XiEiGrWWT8YpW+hySwZPEwyWmVjhXycQ6Zc4cBrg3ZySDRdjnqB3oq3Fw BVDgZ1rev55RF6TftdwPkd89Sy7Bg/ugleoA1guyvB4WAwKqCVEUyA32+un27Od3q6Li H02r7fXCLnjDtszMgCd+yk/Qwaf8CqNWxFLCaIMWsBBdGO7peQvqa6TDAlZibonorDaF FKaw== X-Gm-Message-State: AOAM530cQVicT6vK94dhkQWnUz6FTpov2cVosoC5e0GWWlYrffVj/nxW TtgAD6KqTmx9EBYKZAqQTeQ= X-Google-Smtp-Source: ABdhPJzMvBfCom1y3t4vdY9p0drv5xhI+IG71fwR5wdl8+2PuupiEhOphrbNlX4YtpzRpp/XSlrkJw== X-Received: by 2002:adf:ec02:: with SMTP id x2mr19879278wrn.407.1632008846134; Sat, 18 Sep 2021 16:47:26 -0700 (PDT) Original-Received: from [192.168.0.6] ([46.251.119.176]) by smtp.googlemail.com with ESMTPSA id r2sm11844577wrg.31.2021.09.18.16.47.25 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sat, 18 Sep 2021 16:47:25 -0700 (PDT) In-Reply-To: <20210918114626.6FF8F20ABE@vcs0.savannah.gnu.org> Content-Language: en-US Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=raaahh@gmail.com; helo=mail-wr1-x434.google.com X-Spam_score_int: -39 X-Spam_score: -4.0 X-Spam_bar: ---- X-Spam_report: (-4.0 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.25, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-2.538, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:275038 Archived-At: On 18.09.2021 14:46, Mattias Engdeg�rd wrote: > +(defun semantic-symref-grep--quote-extended (string) > + "Quote STRING as an extended-syntax regexp." > + (replace-regexp-in-string (rx (in ".^$*+?|{}[]()|\\")) > + (lambda (s) (concat "\\" s)) > + string nil t)) > + > (cl-defmethod semantic-symref-perform-search ((tool semantic-symref-tool-grep)) > "Perform a search with Grep." > ;; Grep doesn't support some types of searches. > @@ -151,7 +157,10 @@ This shell should support pipe redirect syntax." > ((eq (oref tool searchtype) 'regexp) > "-nE ") > (t "-nw "))) > - (greppat (oref tool searchfor)) > + (searchfor (oref tool searchfor)) > + (greppat (if (eq (oref tool searchtype) 'regexp) > + searchfor > + (semantic-symref-grep--quote-extended searchfor))) When the search is not 'regexp', we're using the default regexp mode of Grep, which is Basic, not Extended. So this doesn't seem like the right change (yet?). It's not particularly breaking for xref-find-references because of its post-filtering step, and because most of these chars are rarely present in symbol names, but it probably breaks 'M-x semantic-symref' (which doesn't do any post-filtering) because \? and \+ are actually special in Basic regexps. I haven't been able to test it, though. It does break xref-find-references for symbols with '+' somewhere in the middle, like 'antlr-c++-mode-extra'.