From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: kevin.legouguec@gmail.com (=?UTF-8?Q?K=C3=A9vin?= Le Gouguec) Newsgroups: gmane.emacs.bugs Subject: bug#33697: 26.1; file-truename messes with match data Date: Mon, 10 Dec 2018 22:02:09 +0100 Message-ID: <87woohhz8u.fsf@gmail.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1544475673 20107 195.159.176.226 (10 Dec 2018 21:01:13 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 10 Dec 2018 21:01:13 +0000 (UTC) To: 33697@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Dec 10 22:01:09 2018 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWSfr-00056W-KG for geb-bug-gnu-emacs@m.gmane.org; Mon, 10 Dec 2018 22:01:07 +0100 Original-Received: from localhost ([::1]:34754 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gWShy-0004gV-G4 for geb-bug-gnu-emacs@m.gmane.org; Mon, 10 Dec 2018 16:03:18 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42947) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gWShl-0004gD-O9 for bug-gnu-emacs@gnu.org; Mon, 10 Dec 2018 16:03:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gWShi-0001hi-G4 for bug-gnu-emacs@gnu.org; Mon, 10 Dec 2018 16:03:05 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:37933) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gWShi-0001he-Ba for bug-gnu-emacs@gnu.org; Mon, 10 Dec 2018 16:03:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gWShi-0007vI-4E for bug-gnu-emacs@gnu.org; Mon, 10 Dec 2018 16:03:02 -0500 X-Loop: help-debbugs@gnu.org Resent-From: kevin.legouguec@gmail.com (=?UTF-8?Q?K=C3=A9vin?= Le Gouguec) Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 10 Dec 2018 21:03:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 33697 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Original-Received: via spool by submit@debbugs.gnu.org id=B.154447575030415 (code B ref -1); Mon, 10 Dec 2018 21:03:01 +0000 Original-Received: (at submit) by debbugs.gnu.org; 10 Dec 2018 21:02:30 +0000 Original-Received: from localhost ([127.0.0.1]:42191 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWShC-0007uU-52 for submit@debbugs.gnu.org; Mon, 10 Dec 2018 16:02:30 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:33179) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1gWShA-0007uH-8s for submit@debbugs.gnu.org; Mon, 10 Dec 2018 16:02:28 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gWSh3-0001TR-3e for submit@debbugs.gnu.org; Mon, 10 Dec 2018 16:02:22 -0500 Original-Received: from lists.gnu.org ([2001:4830:134:3::11]:53085) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gWSh3-0001TJ-0A for submit@debbugs.gnu.org; Mon, 10 Dec 2018 16:02:21 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42778) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gWSh1-0004Lp-Au for bug-gnu-emacs@gnu.org; Mon, 10 Dec 2018 16:02:20 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gWSgx-0001RQ-Lh for bug-gnu-emacs@gnu.org; Mon, 10 Dec 2018 16:02:19 -0500 Original-Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]:46769) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gWSgx-0001Qj-9Q for bug-gnu-emacs@gnu.org; Mon, 10 Dec 2018 16:02:15 -0500 Original-Received: by mail-wr1-x42a.google.com with SMTP id l9so11885369wrt.13 for ; Mon, 10 Dec 2018 13:02:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=KgagDJgxTZj+DH/VqBxIxW5jp+hYwAmmKnkDn49dhmY=; b=COeof+N6vv1T3HBTJ9pu3sFpvAXICt35Vv1zf/2q6b3qmWWyIV9jyOqmgU8H7qRgLD CI3rbHCMDAX4aqALVeALFJIitKWMsR+gaAI2W5mBQJ+LlSUuldDYKwLXRW6NDeDSWVsV 8cAVHuF8WEtfxgXGjX1dGG2nlzt9jRxq8AVZS3lIHu4Yxab7cWyhYmPqg8SXHlBA72oy otLAWlGrKYllwcldbKXss0nEeHvPt85NvJ8ZT+fgou5Ae2vMb/zX7t/R18QjythaGXd/ GvEN0RMBDRdybdZBs2C7wzCjtsFvzKllNN0Owk8G2Yob2Djc0IakItZpTTppKjVi40Zs YmXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=KgagDJgxTZj+DH/VqBxIxW5jp+hYwAmmKnkDn49dhmY=; b=T5JElue/B7r8VElpd3e4y0EmgrSZYjeaT7hYU22TnLXwnbiFhywVCmlc45O+Xi38vb Q1EcmzJH6Rb+hzXaA37dd4DI+xzxoMYAYMhf82vw2Iz2sD36zbuqvsuotGkxlEXdjazn cUzivzO2xrbqEunW0G12GbyEUnfodxAAou3OBIoxOtUSGYQJu40JxuvwP+tJ9D+YkPG2 L+E/qjStpL+m8FNEGyyMeBatGNVs/bLG01ewHaH3249UTV/2rzn4h8Ned1j9HAPVkL/r IMRT0Mys+/RlkWmbpcDQpS6JQYhH+yu99A0xNb6nQd4g2md2fYqMD/pVF9F5NgKWAp5Q gs+w== X-Gm-Message-State: AA+aEWbhsVxxplBuZgNwsdlfadmrUZcBjJZoHrc0SyVkRk+aooWix0IV 0dGdcUwPpQHD7JQqOAuFDfE5TLdg X-Google-Smtp-Source: AFSGD/U8zPhaSM87sL0zzsORoA/NIuYiAB6sVKdKo7/fYPWHW1lT85jWnKU+m8O9l9ubaFQ/E5acBQ== X-Received: by 2002:adf:e5c4:: with SMTP id a4mr10527414wrn.157.1544475732945; Mon, 10 Dec 2018 13:02:12 -0800 (PST) Original-Received: from my-little-tumbleweed (87-231-103-167.rev.numericable.fr. [87.231.103.167]) by smtp.gmail.com with ESMTPSA id k15sm9948203wru.8.2018.12.10.13.02.11 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 10 Dec 2018 13:02:12 -0800 (PST) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 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.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:153312 Archived-At: Hi, I set frame-title-format so that it displays the basename of the current project's root folder for the active buffer. However, my $HOME is under version control; I do not want this particular "project" to show up in the frame's title. Here is the code that I use: (require 'subr-x) (defun my/project-name () (when-let* ((project (project-current)) (root (car (project-roots project)))) (when (not (file-equal-p root "~")) (file-name-nondirectory (string-trim-right root "/"))))) (setq frame-title-format '(:eval (let ((project (my/project-name))) (concat (when project (format "[%s] " project)) "%b")))) After adding the above to my .emacs, I started experiencing weird failures with query-replace. I managed to reproduce this with emacs -Q: - evaluate the above - move to the beginning of *scratch* - M-% a RET b RET =E2=87=92 perform-replace: Args out of range: #, 0, 2 (point has moved after the first match) I dug a bit and file-equal-p calls file-truename, whose first (cond =E2=80= =A6) ends up calling string-match. Although I did not delve much longer and could be wrong, I imagine that query-replace finds the first match, moves point to it, leaves the minibuffer; this causes frame-title-format to be evaluated; file-equal-p calls file-truename, the global match data is updated, then perform-replace gets confused about what to do. Wrapping the (cond =E2=80=A6) with (save-match-data =E2=80=A6) solves the i= ssue for me (as does wrapping my/project-name). I do not know if this is the preferred way to address this; I do not even know if this is a "bug" (as in, nobody said file-equal-p does *not* modify match data). Thank you for your time. In GNU Emacs 26.1 (build 1, x86_64-suse-linux-gnu, X toolkit, Xaw3d scroll = bars) Windowing system distributor 'The X.Org Foundation', version 11.0.12003000 Recent messages: Loading /home/peniblec/.emacs-custom.el (source)... Loading diff-hl-flydiff...done Loading elec-pair...done Loading page-break-lines...done Loading icomplete...done Loading mb-depth...done Loading /home/peniblec/.emacs-custom.el (source)...done Global key bindings for =E2=80=98rg=E2=80=99 enabled with prefix: C-c s Loading quail/latin-ltx...done For information about GNU Emacs and the GNU system, type C-h C-a. Configured using: 'configure --disable-build-details --without-pop --with-mailutils --without-hesiod --with-gameuser=3D:games --with-kerberos --with-kerberos5 --with-file-notification=3Dinotify --with-modules --enable-autodepend --prefix=3D/usr --mandir=3D/usr/share/man --infodir=3D/usr/share/info --datadir=3D/usr/share --localstatedir=3D/var --sharedstatedir=3D/var/lib --libexecdir=3D/usr/lib --enable-locallisppath=3D/usr/share/emacs/26.1/site-lisp:/usr/share/emacs/= site-lisp --with-x --with-xim --with-sound --with-xpm --with-jpeg --with-tiff --with-gif --with-png --with-rsvg --with-dbus --with-xft --without-gpm --with-x-toolkit=3Dlucid --with-toolkit-scroll-bars --x-includes=3D/usr/include --x-libraries=3D/usr/lib64:/usr/share/X11 --without-libotf --without-m17n-flt --build=3Dx86_64-suse-linux 'CFLAGS=3D-O2 -Wall -D_FORTIFY_SOURCE=3D2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g -D_GNU_SOURCE -DGDK_DISABLE_DEPRECATION_WARNINGS -DGLIB_DISABLE_DEPRECATION_WARNINGS -pipe -Wno-pointer-sign -Wno-unused-variable -Wno-unused-label -fno-optimize-sibling-calls -fno-PIE -DSYSTEM_PURESIZE_EXTRA=3D55000 -DSITELOAD_PURESIZE_EXTRA=3D10000 ' LDFLAGS=3D-Wl,-O2' Configured features: XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 MODULES THREADS LIBSYSTEMD Important settings: value of $LC_CTYPE: en_US.UTF-8 value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=3Dlocal locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: minibuffer-depth-indicate-mode: t icomplete-mode: t global-page-break-lines-mode: t page-break-lines-mode: t electric-pair-mode: t diff-hl-flydiff-mode: t global-diff-hl-mode: t diff-auto-refine-mode: t show-paren-mode: t delete-selection-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t Load-path shadows: /home/peniblec/.emacs.d/elpa/soap-client-3.1.5/soap-inspect hides /usr/shar= e/emacs/26.1/lisp/net/soap-inspect /home/peniblec/.emacs.d/elpa/soap-client-3.1.5/soap-client hides /usr/share= /emacs/26.1/lisp/net/soap-client Features: (shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs format-spec rfc822 mml mml-sec epa derived epg gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils vc-git vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs project delight advice eighters-theme quail cl-extra help-mode rg rg-ibuffer rg-result wgrep-rg wgrep s rg-header rg-compat subr-x ibuf-ext ibuffer ibuffer-loaddefs grep compile comint ansi-color ring edmacro kmacro disp-table mb-depth icomplete page-break-lines elec-pair diff-hl-flydiff diff diff-hl vc-dir ewoc vc vc-dispatcher diff-mode easy-mmode cus-start pcase cus-load finder-inf info package easymenu epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib paren ispell time-date mule-util delsel lpr tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify dynamic-setting system-font-setting font-render-setting x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 174446 11163) (symbols 48 27255 1) (miscs 40 122 131) (strings 32 52826 2044) (string-bytes 1 1447365) (vectors 16 26324) (vector-slots 8 633140 10178) (floats 8 76 334) (intervals 56 323 0) (buffers 992 12))