From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: "Basil L. Contovounesios" Newsgroups: gmane.emacs.bugs Subject: bug#18859: 24.3; ibuffer-mark-by-file-name-regexp does not match displayed name Date: Sun, 17 Jan 2021 16:06:20 +0000 Message-ID: <87y2grzgxv.fsf@tcd.ie> References: <87bnox9pn8.fsf@sc3d.org> <878ssagpg0.fsf@mouse.gnus.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="22339"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: 18859@debbugs.gnu.org, Reuben Thomas To: Lars Ingebrigtsen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Jan 17 17:07:13 2021 Return-path: Envelope-to: geb-bug-gnu-emacs@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 1l1Aa9-0005fQ-1Z for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 17 Jan 2021 17:07:13 +0100 Original-Received: from localhost ([::1]:34214 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l1Aa7-0003ZC-QQ for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 17 Jan 2021 11:07:11 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55404) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l1Aa0-0003XK-9G for bug-gnu-emacs@gnu.org; Sun, 17 Jan 2021 11:07:04 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:33981) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1l1AZz-0003YY-15 for bug-gnu-emacs@gnu.org; Sun, 17 Jan 2021 11:07:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1l1AZx-0004MN-S7 for bug-gnu-emacs@gnu.org; Sun, 17 Jan 2021 11:07:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: "Basil L. Contovounesios" Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 17 Jan 2021 16:07:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 18859 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: fixed patch Original-Received: via spool by 18859-submit@debbugs.gnu.org id=B18859.161089959116708 (code B ref 18859); Sun, 17 Jan 2021 16:07:01 +0000 Original-Received: (at 18859) by debbugs.gnu.org; 17 Jan 2021 16:06:31 +0000 Original-Received: from localhost ([127.0.0.1]:45527 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l1AZS-0004LP-JM for submit@debbugs.gnu.org; Sun, 17 Jan 2021 11:06:30 -0500 Original-Received: from mail-wr1-f49.google.com ([209.85.221.49]:37497) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l1AZQ-0004LB-8k for 18859@debbugs.gnu.org; Sun, 17 Jan 2021 11:06:29 -0500 Original-Received: by mail-wr1-f49.google.com with SMTP id v15so10476173wrx.4 for <18859@debbugs.gnu.org>; Sun, 17 Jan 2021 08:06:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tcd-ie.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=56yZ+8FDl2uHSugmvfSg4i7odqQ+eV+Te1z604IXXFw=; b=ujhUSQVjw36Z1QqPGtmlM+IAN+4JD+F24VqnIabivghduI9yS3JZZo7IyW4kjxgpd7 O0MTUzfiP+1D+jU20gLYaaGu95rSgNzC8CexPkvq5OKzk6ARmQUV8gcGqq9GsXDLkVxc azAGOL5HKgCsQAzIJGdiEES8I6A7QGPx9BI2RSOJGCwsQD4mPY060G/Fk1VZ17RSBZ72 rrCoxyD+zvzO4dKNkVKIWsmZyy2s+XfV7oXsvwILv1BQPMi3lCH19ZWNN+wkG52trA+d X/+9bIu8C+dtWRo24O5DdlOTkkx17adsK3WzU0IKyeE20rdd2MkNBxB4nOESjhf52BLa VplA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=56yZ+8FDl2uHSugmvfSg4i7odqQ+eV+Te1z604IXXFw=; b=rNBSJavwSF2S524uuQbZNV+GhpM3k1F+cKzI609nQnJDKUr9wgIxddUM6MNYKuiyND WZ5obhvjjVrYcRJWp4nIeJSY530VBdMN4Dtb1v84nmzs2j1eBEEG65YTy88JlepL4aZq n5ixML28Sahz+62MI7b/0qCYFA3VbNbdQxNCNNlg6KOckLE6fBI+/6LGrU5DrEYTkzMC PcCiVdZz97TXSBNy0mrBvvdEBL0Nz+1Qo1zL/2dniwayvTcaU7ZUjqXjb/7w3Nxr5FKL kDw3NP26fjCGsvOyJnkLRaBBdEBy+ehdekR9y0+sEzHh91H13juZv75KTr3KqTrD0a/8 uQwA== X-Gm-Message-State: AOAM532B3zHjHCNVHDSkvJvt6qdrSk3E8pxKczkP/kEIce0r6nIv+Ebo Mhekj1A2kAyvDLwhqRIiiiYKTRhYOUjxLOHw X-Google-Smtp-Source: ABdhPJwoYsd4aAxQJTQMvWmo3eNCmdAzyakcsoU4XjryLRDY6yq7UB/II8Bcd4PE8Ey214ctT5Najw== X-Received: by 2002:adf:b1da:: with SMTP id r26mr18179965wra.198.1610899582761; Sun, 17 Jan 2021 08:06:22 -0800 (PST) Original-Received: from localhost ([2a02:8084:20e2:c380:f410:82e8:3a21:eedf]) by smtp.gmail.com with ESMTPSA id u83sm21311414wmu.12.2021.01.17.08.06.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Jan 2021 08:06:21 -0800 (PST) In-Reply-To: <878ssagpg0.fsf@mouse.gnus.org> (Lars Ingebrigtsen's message of "Sat, 03 Aug 2019 18:54:07 +0200") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:198056 Archived-At: --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Lars Ingebrigtsen writes: > Reuben Thomas writes: > >> In the *IBuffer*, files in my home directory are displayed with names >> starting with =E2=80=98~=E2=80=99, but when I type % f ~ RET I get no ma= tches. If I type >> instead % f /home/MYUSER RET then all files in my home directory are >> matched. >> >> I=E2=80=99m not convinced that the matches should be made in the second = case, >> even; but certainly they _should_ be made in the first. > > The following patch fixes this by matching on the abbreviated file name > (which is what ibuffer uses to create the displayed file name). > > But I guess this could be a controversial change -- does anybody have an > objection to making this change?=20=20 > > diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el > index 1b69574a39..06a2248d40 100644 > --- a/lisp/ibuf-ext.el > +++ b/lisp/ibuf-ext.el > @@ -1846,7 +1846,8 @@ ibuffer-mark-by-file-name-regexp > (stringp dired-directory) > dired-directory))))) > (when name > - (string-match regexp name)))))) > + ;; Match on the displayed file name (which is abbreviated). > + (string-match regexp (abbreviate-file-name name))))))) Any objections to this followup fix for master? --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-Fix-ibuffer-mark-by-file-name-regexp-abbreviations.patch >From 2a66de550d184728ca281d400538b0954728a69e Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Sun, 17 Jan 2021 15:53:53 +0000 Subject: [PATCH] Fix ibuffer-mark-by-file-name-regexp abbreviations * lisp/ibuf-ext.el (ibuffer-mark-by-file-name-regexp): Prefer read-regexp over read-string for reading regexps. Determine file name using ibuffer-buffer-file-name for consistency. Abbreviate file name using ibuffer-directory-abbrev-alist (bug#18859). --- lisp/ibuf-ext.el | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/lisp/ibuf-ext.el b/lisp/ibuf-ext.el index 7be1b3d16c..53ccd7a96e 100644 --- a/lisp/ibuf-ext.el +++ b/lisp/ibuf-ext.el @@ -1823,18 +1823,14 @@ ibuffer-mark-by-mode-regexp ;;;###autoload (defun ibuffer-mark-by-file-name-regexp (regexp) "Mark all buffers whose file name matches REGEXP." - (interactive "sMark by file name (regexp): ") + (interactive (list (read-regexp "Mark by file name (regexp)"))) (ibuffer-mark-on-buffer - #'(lambda (buf) - (let ((name (or (buffer-file-name buf) - (with-current-buffer buf - (and - (boundp 'dired-directory) - (stringp dired-directory) - dired-directory))))) - (when name - ;; Match on the displayed file name (which is abbreviated). - (string-match regexp (abbreviate-file-name name))))))) + (lambda (buf) + (let ((name (with-current-buffer buf (ibuffer-buffer-file-name)))) + (when name + ;; Match on the displayed file name (which is abbreviated). + (let ((directory-abbrev-alist ibuffer-directory-abbrev-alist)) + (string-match-p regexp (abbreviate-file-name name)))))))) ;;;###autoload (defun ibuffer-mark-by-content-regexp (regexp &optional all-buffers) -- 2.29.2 --=-=-= Content-Type: text/plain Thanks, -- Basil --=-=-=--