From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Juanma Barranquero Newsgroups: gmane.emacs.bugs Subject: bug#59575: 29.0.50; add-log-current-defun-header-regexp matches Windows drive letter Date: Sun, 27 Nov 2022 12:11:03 +0100 Message-ID: References: <83zgcdsw90.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000bd054105ee71d1d4" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14718"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , 59575@debbugs.gnu.org To: Dmitry Gutov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Sun Nov 27 12:12:23 2022 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 1ozFaB-0003jZ-ME for geb-bug-gnu-emacs@m.gmane-mx.org; Sun, 27 Nov 2022 12:12:23 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ozFZr-0000qi-Rh; Sun, 27 Nov 2022 06:12:03 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ozFZq-0000qW-NU for bug-gnu-emacs@gnu.org; Sun, 27 Nov 2022 06:12:02 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ozFZq-00077d-Ew for bug-gnu-emacs@gnu.org; Sun, 27 Nov 2022 06:12:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ozFZq-000104-8F for bug-gnu-emacs@gnu.org; Sun, 27 Nov 2022 06:12:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Juanma Barranquero Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 27 Nov 2022 11:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 59575 X-GNU-PR-Package: emacs Original-Received: via spool by 59575-submit@debbugs.gnu.org id=B59575.16695475083833 (code B ref 59575); Sun, 27 Nov 2022 11:12:02 +0000 Original-Received: (at 59575) by debbugs.gnu.org; 27 Nov 2022 11:11:48 +0000 Original-Received: from localhost ([127.0.0.1]:42185 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ozFZc-0000zl-5m for submit@debbugs.gnu.org; Sun, 27 Nov 2022 06:11:48 -0500 Original-Received: from mail-ej1-f44.google.com ([209.85.218.44]:41622) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ozFZa-0000zd-WA for 59575@debbugs.gnu.org; Sun, 27 Nov 2022 06:11:47 -0500 Original-Received: by mail-ej1-f44.google.com with SMTP id vp12so18238901ejc.8 for <59575@debbugs.gnu.org>; Sun, 27 Nov 2022 03:11:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=yTOYXYffYed4f4rznJPSleQIurzGIcO/qO6KFH15mxY=; b=gx3qO/zL1IPrCJHZ2A9yFqRFaNfpro/xbDYvOIj6RxNvwKYkcyhZheapa9kEBmqW8Y 8pLp55eNyGf66GmhVHto3LwMVdq0rblpM42Wm8xOIhxqFRYM5x4iUNCjA8XHPJUgJI5e AzRzTf3gh7IE9qSf95FOaCDfr2bFq/eft9FjoS5sE9XEFEaBOP0jEwF64Kb+E403RwQ9 jcgwKMQppTI+xsHnyAY272XNP2UeFKrM6scD/kLjhhN0YhaR7JLY+20n/4zmaospWWYq Dcj/vT9N3dePzhiXc9vs8hPWmtdxECb00MLYY99Np3YSKQLgJ4C4R/5zBVmDQUtRqa8p hDXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=yTOYXYffYed4f4rznJPSleQIurzGIcO/qO6KFH15mxY=; b=ieI5mCQV9QANb/htDZ4Bu0h5+Rv033sssap/RIFi6+ohM+K9OccIu/cnWMMh0GNDWp EpNxFyHHbHlmgHXjxdnfvLxjetjbDP765SZqWy14ohsF3sjBSQEOHAfBFpGgvpbp64Up YcgzztMVdejd64eJFyaMCVWPEakcZKurdbk7qNqI1eV/cyQo2pr7w7s8eHKdR8qqOYdn l9xaTPdslGwyXr6Vg9IGBi7X0wp0JyeI8HojdN254OGazcjkTuO/MuASMV3LPsYAseTw rM1J/oP7zQoTtkSF5Y84ww4MysQm2mfHr4DDDtyi+rurGX975nLOVdOmp5zmBxOzb7fd 4LXw== X-Gm-Message-State: ANoB5plLxSisRDZfQZnivklIaxaEaZggfMpzo0mWDKAuCeDn5XyFh3O6 hRlaDDgSMklF+6fkBSL4myCGgFAkGkDSJ12giAI= X-Google-Smtp-Source: AA0mqf5B6GOj0bw4+bdVBKnh7emrtXVe2/McBGe632N1oB3ZIZQA35kCxjpdHxORxOLTrBgXFxN7vuWS9CF1k1dq6ZA= X-Received: by 2002:a17:906:6dc9:b0:7bc:5700:490 with SMTP id j9-20020a1709066dc900b007bc57000490mr9926033ejt.592.1669547501092; Sun, 27 Nov 2022 03:11:41 -0800 (PST) In-Reply-To: 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-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:249198 Archived-At: --000000000000bd054105ee71d1d4 Content-Type: text/plain; charset="UTF-8" On Sun, Nov 27, 2022 at 9:29 AM Juanma Barranquero wrote: > > This works, for example: > > (defun xref--add-log-current-defun () > (if-let (item (xref--item-at-point)) > (xref-file-location-file (xref-match-item-location item)) > (xref--imenu-extract-index-name))) > > (setq-local add-log-current-defun-function #'xref--add-log-current-defun) In fact, to respect the value of `xref-file-name-display' (which seems a good idea) a bit more complexity is required: (defun xref--add-log-current-defun () "Return the string used to group a set of locations. This function is used as a value for `add-log-current-defun-function'." (xref--group-name-for-display (if-let (item (xref--item-at-point)) (xref-location-group (xref-match-item-location item)) (xref--imenu-extract-index-name)) (xref--project-root (project-current)))) but that uncovers a different bug in xref--group-name-for-display: (cl-ecase xref-file-name-display (abs group) (nondirectory (if (string-match-p "\\`~?/" group) (file-name-nondirectory group) group)) that is, for the 'nondirectory case it tries to match against ~/filename or /filename, but (again) ignores absolute Windows paths with a drive letter. That should be changed to (cl-ecase xref-file-name-display (abs group) (nondirectory - (if (string-match-p "\\`~?/" group) + (if (string-match-p "\\`\\(~\\|[A-Za-z]:\\)?/" group) (file-name-nondirectory group) group)) (project-relative or something similar. --000000000000bd054105ee71d1d4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable

On Sun, Nov 27, 2022 at 9:29 AM Juanma Bar= ranquero <lekktu@gmail.com> w= rote:
>
> This works, for example:
>
> (defun= xref--add-log-current-defun ()
> =C2=A0 (if-let (item (xref--item-at= -point))
> =C2=A0 =C2=A0 =C2=A0 (xref-file-location-file (xref-match-= item-location item))
> =C2=A0 =C2=A0 (xref--imenu-extract-index-name)= ))
>
> (setq-local add-log-current-defun-function #'xref--a= dd-log-current-defun)

In fact, to respect the value of `xref-file-nam= e-display' (which seems a good idea) a bit more complexity is required:=

(defun xref--add-log-current-defun = ()
=C2=A0 "Return the string used to group a set of locations.
T= his function is used as a value for `add-log-current-defun-function'.&q= uot;
=C2=A0 (xref--group-name-for-display
=C2=A0 =C2=A0(if-let (item = (xref--item-at-point))
=C2=A0 =C2=A0 =C2=A0 =C2=A0(xref-location-group (= xref-match-item-location item))
=C2=A0 =C2=A0 =C2=A0(xref--imenu-extract= -index-name))
=C2=A0 =C2=A0(xref--project-root (project-current))))

but that uncovers a different bug in xref--group-name-for-dis= play:

=C2=A0 =C2=A0(cl-ecase xref-f= ile-name-display
=C2=A0 =C2=A0 =C2=A0(abs group)
=C2=A0 =C2=A0 =C2=A0= (nondirectory
=C2=A0 =C2=A0 =C2=A0 (if (string-match-p "\\`~?/"= ; group)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (file-name-nondirectory grou= p)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 group))

that is, for the=C2=A0'nondirectory case it tries to matc= h against ~/filename or /filename, but (again) ignores absolute Windows pat= hs with a drive letter.

That should be changed t= o

=C2=A0
=C2=A0(cl-ecase xref-file-= name-display
=C2=A0 =C2=A0 =C2=A0(abs group)
=C2=A0 =C2=A0 =C2=A0(non= directory
- =C2=A0 =C2=A0 (if (string-match-p "\\`~?/" group)<= br>+ =C2=A0 =C2=A0 (if (string-match-p "\\`\\(~\\|[A-Za-z]:\\)?/"= group)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (file-name-nondirectory group= )
=C2=A0 =C2=A0 =C2=A0 =C2=A0 group))
=C2=A0 =C2=A0 =C2=A0(project-re= lative


or something similar.=

--000000000000bd054105ee71d1d4--