From unknown Sat Sep 13 17:18:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79397: 29.3; ffap-latex-mode should be modified after upstream kpsewhich update Resent-From: Leo Stein Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 06 Sep 2025 19:25:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 79397 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 79397@debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.175718665515792 (code B ref -1); Sat, 06 Sep 2025 19:25:02 +0000 Received: (at submit) by debbugs.gnu.org; 6 Sep 2025 19:24:15 +0000 Received: from localhost ([127.0.0.1]:38197 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uuyW1-00044F-15 for submit@debbugs.gnu.org; Sat, 06 Sep 2025 15:24:14 -0400 Received: from lists.gnu.org ([2001:470:142::17]:60546) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uuyVq-00041k-Ic for submit@debbugs.gnu.org; Sat, 06 Sep 2025 15:23:57 -0400 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 1uuyVk-000823-6x for bug-gnu-emacs@gnu.org; Sat, 06 Sep 2025 15:23:44 -0400 Received: from mail-yw1-x1133.google.com ([2607:f8b0:4864:20::1133]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uuyVT-0000R4-Do for bug-gnu-emacs@gnu.org; Sat, 06 Sep 2025 15:23:43 -0400 Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-71d6051aeafso30205217b3.2 for ; Sat, 06 Sep 2025 12:23:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757186600; x=1757791400; darn=gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=0TDU5QqbCj1EG7JfgvnS8/TH55xoyPxAAn/cXtw2B2k=; b=TM7epgL4aIilds3FgSBcDS2RMCzISV98VE6DuBdMmhoZ6MAi7PwPMpXwU8NxxiwYTa LJoDPohsz1wLbZUlzXDd6WOUz5nmb0qF0wz98xADhIVFhh9iZV5rItPV+0F0czCn4a8T elgplJTCghWLmRmiEPjIzAdfnZehGsreT8DDQawsDmcsPJD6nV17Zr9mhPlDoVcaZo6D jT0WHQU2/d92GX36ezSX9bkSWMdUlRGd78LmjjUdiRmqxAnk/LeWIEARnWGyAaq9I56Z u1WNlKyRzo54FbqCKAX6lOcL0LkKcGBUBiUqpyJ7bVT9XHhCob0wR09tBES8tKrTJg+a SjWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757186600; x=1757791400; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=0TDU5QqbCj1EG7JfgvnS8/TH55xoyPxAAn/cXtw2B2k=; b=IDQieTsIOObR7SQjXu6f8kQJjxqrYtAPSLXbwRKqJNEwrnr70B3GG9Am9EH7eLz0zf EIlKEk9SJ4T/eaE96JN9VidmjVZlRh0h6k8ZW8/1tOkcIycjOLBio9lswL6/viKeAFw6 qwshdRfVMAzvZnnVDN565Bue6jDA3JmdYuNWR90KDUuMcCeHqWfr6C49wpQTooJtAAAl gmBVB2a8aFPkdjG5TRtmyUV3V95/9sjVYIW754/7nNl1h80P4v3Yr0ZMxNF4wKcGW0cd 5hAthsT/q/HI4gTwZCWaMrYFFC3Jn8TyIX6yt9/g/yVhIUlZC19NpGLtpDSnanSzKne6 6RWQ== X-Gm-Message-State: AOJu0Yx/k1kEJ/JaUQiUTPFNGNpVnXSWKC5d60lvV+G4FKwbf8Dkp5LU 30GB3qiwrj8yAn3j0yN3apdH7NnpWXCDBBZSyjd3rBvqPXwQ7WEPNK4/CnnqW6ENcvEMM+icrys h50hxD40An7u42hbS9pzOkCD/8xsqujW7DtRu X-Gm-Gg: ASbGncu/tQn6lTlbNEI/o6HetEw84BbL97WAWRYb+fL2GAAt6RnF8TN1WPWX3SwfELX ib3csByJ3LpPgqvJue+uR58TcxQ8RazNjAeDgGxf0vEGYZNIewgEUQzXKt26+7+42MrfepbZWKe LXMBJqeQhea0NSdSHW9jqMVYOFGYY2CCyqvxdT2gkAzvLesU+oi96cOweAwiDZT6MkmmtWbCmhO mIrL+8OuQ== X-Google-Smtp-Source: AGHT+IGZsE5br1qHGmHq2xTAvtZtaFHnFHxnux+OGlWLeVL+Nlqbxw1EodUxYUejh1bDssEfF/1KKO61smeYTpHCa1w= X-Received: by 2002:a05:690c:3501:b0:726:9be4:97cd with SMTP id 00721157ae682-727f563a9femr27545887b3.36.1757186599866; Sat, 06 Sep 2025 12:23:19 -0700 (PDT) MIME-Version: 1.0 From: Leo Stein Date: Sat, 6 Sep 2025 14:23:03 -0500 X-Gm-Features: AS18NWAm24VLW2zsdNX7VIGuhzLVCyoNdgC17EuDaQietVOL-h53pI6esIYY1eo Message-ID: Content-Type: multipart/alternative; boundary="00000000000016d5c8063e26e397" Received-SPF: pass client-ip=2607:f8b0:4864:20::1133; envelope-from=leo.stein@gmail.com; helo=mail-yw1-x1133.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_SPF_HELO_TEMPERROR=0.01, WEIRD_PORT=0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 1.0 (+) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -0.0 (/) --00000000000016d5c8063e26e397 Content-Type: text/plain; charset="UTF-8" ffap-latex-mode in ffap.el uses the executable kpsewhich if available. Before a recent change to kpsewhich, the executable would report possible paths, one per line, with no blank lines. Following svn revision 73462 in texlive's tree (which is included in TeX Live 2025; see lines 959-966 at https://svn.tug.org:8369/texlive/trunk/Build/source/texk/kpathsea/kpsewhich.c?r1=69416&r2=73462 ), the new behavior of kpsewhich is to output a blank line for each input file which was not found. The behavior in ffap-latex-mode is to simply take the first line from the temp buffer that recieves the output. Previously, this would either be a valid path, or the buffer would be empty. With the new behavior, the buffer could be non-empty, with various blank lines, and the first valid path might follow after some blank lines. ffap-latex-mode can easily be patched by just removing blank lines from the temp buffer. However I don't know if that is the idiomatic approach; please teach me the ways! Leo In GNU Emacs 29.3 (build 2, aarch64-apple-darwin23.4.0, NS appkit-2487.50 Version 14.4 (Build 23E214)) of 2024-05-13 built on macbook-pro.lan Windowing system distributor 'Apple', version 10.3.2487 System Description: macOS 14.6.1 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/opt/homebrew/share/emacs/site-lisp --infodir=/opt/homebrew/Cellar/emacs-plus@29/29.3/share/info/emacs --prefix=/opt/homebrew/Cellar/emacs-plus@29/29.3 --with-xml2 --with-gnutls --with-native-compilation --without-compress-install --without-dbus --without-imagemagick --with-modules --with-rsvg --with-ns --disable-ns-self-contained 'CFLAGS=-Os -w -pipe -mmacosx-version-min=14 -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -DFD_SETSIZE=10000 -DDARWIN_UNLIMITED_SELECT' 'CPPFLAGS=-I/opt/homebrew/opt/zlib/include -I/opt/homebrew/opt/jpeg/include -I/opt/homebrew/opt/icu4c/include -I/opt/homebrew/opt/sqlite/include -I/opt/homebrew/opt/readline/include -isystem/opt/homebrew/include -F/opt/homebrew/Frameworks -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk' 'LDFLAGS=-L/opt/homebrew/opt/zlib/lib -L/opt/homebrew/opt/jpeg/lib -L/opt/homebrew/opt/icu4c/lib -L/opt/homebrew/opt/sqlite/lib -L/opt/homebrew/opt/readline/lib -L/opt/homebrew/lib -F/opt/homebrew/Frameworks -Wl,-headerpad_max_install_names -isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk -L/opt/homebrew/opt/libgccjit/lib'' Configured features: ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t bug-reference-prog-mode: t shell-dirtrack-mode: t TeX-PDF-mode: t TeX-source-correlate-mode: t auto-revert-mode: t server-mode: t projectile-mode: t marginalia-mode: t vertico-mode: t override-global-mode: t which-key-mode: t savehist-mode: t global-display-line-numbers-mode: t display-line-numbers-mode: t global-display-fill-column-indicator-mode: t display-fill-column-indicator-mode: t desktop-save-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t column-number-mode: t line-number-mode: t global-visual-line-mode: t visual-line-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /Users/leo/.emacs.d/elpa/emacsql-sqlite-20240415.1535/emacsql-sqlite hides /Users/leo/.emacs.d/elpa/emacsql-20240819.1559/emacsql-sqlite /Users/leo/.emacs.d/elpa/git-commit-20240508.2349/git-commit hides /Users/leo/.emacs.d/elpa/magit-20250401.1753/git-commit /Users/leo/.emacs.d/elpa/cmake-mode-3.29.3/cmake-mode hides /opt/homebrew/share/emacs/site-lisp/cmake/cmake-mode /Users/leo/.emacs.d/elpa/transient-20250401.1655/transient hides /opt/homebrew/Cellar/emacs-plus@29/29.3/share/emacs/29.3/lisp/transient /Users/leo/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /opt/homebrew/Cellar/emacs-plus@29 /29.3/share/emacs/29.3/lisp/use-package/bind-key Features: (shadow sort mail-extr emacsbug misearch multi-isearch cl-print debug backtrace disp-table whitespace shortdoc help-fns radix-tree vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view magit-extras emacsql-sqlite-builtin sqlite forge-repos forge-tablist hl-line forge-topics forge-commands forge-semi forge-bitbucket buck forge-gogs gogs forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy gsexp ghub url-http url-gw url-auth let-alist forge-forgejo forge-notify forge-revnote forge-pullreq forge-issue forge-discussion forge-topic yaml eieio-custom forge-post forge-repo forge forge-core forge-db closql emacsql-sqlite emacsql-sqlite-common emacsql emacsql-compiler eieio-base magit-submodule magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff git-commit log-edit pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient pp benchmark magit-git magit-base magit-section cursor-sensor llama google-c-style cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs vc bug-reference oc-basic org-element org-persist org-id org-refile avl-tree ol-eww eww url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku url-file svg gnus-group gnus-undo gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail yank-media rfc822 mml mml-sec epa mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range mm-util mail-prsvr ol-docview doc-view jka-compr ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs cal-menu calendar cal-loaddefs org-version org-compat org-macs view lsp-zig lsp-yang lsp-yaml lsp-xml lsp-wgsl lsp-volar lsp-vimscript lsp-vhdl lsp-vetur lsp-html lsp-verilog lsp-vala lsp-v lsp-typespec tramp-cache time-stamp tramp-sh tramp tramp-loaddefs trampver tramp-integration tramp-compat parse-time iso8601 format-spec lsp-typeprof lsp-ttcn3 lsp-ts-query lsp-trunk lsp-toml lsp-tilt lsp-tex lsp-terraform lsp-svelte lsp-steep lsp-sqls lsp-sql lsp-sorbet lsp-solidity lsp-solargraph lsp-semgrep lsp-rust lsp-ruff lsp-ruby-syntax-tree lsp-ruby-lsp lsp-rubocop lsp-roslyn lsp-roc lsp-rf lsp-remark lsp-racket lsp-r lsp-qml lsp-pyright lsp-pylsp lsp-pyls lsp-pwsh lsp-purescript lsp-postgres lsp-pls lsp-php lsp-perlnavigator lsp-perl lsp-openscad lsp-ocaml find-file lsp-nushell lsp-nix lsp-nim lsp-nginx lsp-nextflow lsp-move lsp-mojo lsp-mint lsp-meson lsp-mdx lsp-matlab lsp-marksman lsp-markdown lsp-magik lsp-fennel lsp-lua lsp-lisp lsp-kubernetes-helm lsp-kotlin lsp-json lsp-jq lsp-javascript lsp-idris lsp-haxe lsp-hack lsp-groovy lsp-graphql lsp-golangci-lint lsp-glsl lsp-gleam lsp-gdscript lsp-fsharp lsp-futhark lsp-fortran lsp-eslint lsp-erlang lsp-emmet lsp-elm lsp-elixir lsp-earthly lsp-dockerfile lsp-dhall lsp-d lsp-cypher lsp-cucumber lsp-copilot lsp-css lsp-c3 lsp-csharp gnutls lsp-crystal lsp-credo lsp-cobol lsp-cmake lsp-clojure lsp-clangd dom lsp-bufls lsp-go lsp-beancount lsp-bash lsp-awk lsp-autotools lsp-astro lsp-asm lsp-ansible lsp-angular lsp-ada lsp-semantic-tokens lsp-actionscript lsp-lens lsp-ui lsp-ui-flycheck lsp-ui-imenu derived lsp-ui-peek lsp-ui-sideline lsp-ui-doc goto-addr lsp-ui-util face-remap lsp-modeline lsp-headerline lsp-icons lsp-diagnostics flycheck lisp-mnt find-func lsp-completion lsp-mode lsp-protocol tree-widget wid-edit spinner network-stream puny nsm markdown-mode color lv inline imenu ht f s ewoc epg rfc6068 epg-config dash company-oddmuse company-keywords company-etags etags fileloop generator xref company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-capf company-cmake company-semantic company-template company-bbdb company python treesit flyspell ispell latex-extra reftex-dcr reftex-auc reftex reftex-loaddefs reftex-vars noutline outline tex-mode shell pcomplete font-latex latexenc preview latex latex-flymake flymake-proc flymake tex-ispell tex-style tex crm texmathp auctex time-date autorevert filenotify vc-git diff-mode vc-dispatcher server emoji-fontset comp comp-cstr warnings icons cl-extra projectile project grep compile text-property-search comint ansi-osc ansi-color ring ibuf-ext ibuffer ibuffer-loaddefs marginalia vertico compat compat-30 ido edmacro kmacro bind-key finder-inf zenburn-theme which-key savehist display-line-numbers display-fill-column-indicator desktop frameset cus-load bibretrieve help-mode easy-mmode dired+ image-dired image-dired-tags image-dired-external image-dired-util xdg image-mode exif image-file image-converter dired-x dired-aux dired dired-loaddefs leo-lib files-x ffap thingatpt advice clang-format-autoloads cmake-mode-autoloads dired-git-info-autoloads emacsql-sqlite-autoloads expand-region-autoloads flycheck-autoloads forge-autoloads closql-autoloads emacsql-autoloads ghub-autoloads git-commit-autoloads google-c-style-autoloads html-to-markdown-autoloads rx keycast-autoloads latex-extra-autoloads auctex-autoloads tex-site lsp-pyright-autoloads lsp-mode-autoloads dash-autoloads magit-autoloads pcase magit-section-autoloads llama-autoloads marginalia-autoloads markdown-mode-autoloads projectile-autoloads reveal-in-osx-finder-autoloads transient-autoloads treepy-autoloads vertico-autoloads with-editor-autoloads info compat-autoloads yaml-autoloads yaml-mode-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win ucs-normalize mule-util term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine 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 emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads kqueue cocoa ns lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 1457339 450229) (symbols 48 65505 7) (strings 32 396113 68484) (string-bytes 1 11133264) (vectors 16 165399) (vector-slots 8 3410214 1558301) (floats 8 851 1664) (intervals 56 3084 2273) (buffers 984 54)) --00000000000016d5c8063e26e397 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
ffap-latex-mode in ffap.el uses the execu= table kpsewhich if available.
Before a recent change to kpsewhich, the e= xecutable would report
possible paths, one per line, with no blank lines= . Following svn
revision 73462 in texlive's tree (which is included = in TeX Live 2025;
see lines 959-966 at
https://svn.tug.org:8369/texlive/trunk/Build/s= ource/texk/kpathsea/kpsewhich.c?r1=3D69416&r2=3D73462),
the new = behavior of kpsewhich is to output a blank line for each
input file whic= h was not found.

The behavior in ffap-latex-mode is to simply take t= he first line from
the temp buffer that recieves the output. Previously,= this would either
be a valid path, or the buffer would be empty. With t= he new behavior,
the buffer could be non-empty, with various blank lines= , and the first
valid path might follow after some blank lines.

f= fap-latex-mode can easily be patched by just removing blank lines from
t= he temp buffer. However I don't know if that is the idiomatic approach;=
please teach me the ways!

Leo

In GNU Emacs 29.3 (build 2,= aarch64-apple-darwin23.4.0, NS
=C2=A0appkit-2487.50 Version 14.4 (Build= 23E214)) of 2024-05-13 built on
=C2=A0macbook-pro.lan
Windowing syst= em distributor 'Apple', version 10.3.2487
System Description: = =C2=A0macOS 14.6.1

Configured using:
=C2=A0'configure --disab= le-dependency-tracking --disable-silent-rules
=C2=A0--enable-locallisppa= th=3D/opt/homebrew/share/emacs/site-lisp
=C2=A0--infodir=3D/opt/homebrew= /Cellar/emacs-plus@29/29.3/share/info/emacs
=C2=A0--prefix=3D/opt/homebr= ew/Cellar/emacs-plus@29/29.3 --with-xml2
=C2=A0--with-gnutls --with-nati= ve-compilation --without-compress-install
=C2=A0--without-dbus --without= -imagemagick --with-modules --with-rsvg
=C2=A0--with-ns --disable-ns-sel= f-contained 'CFLAGS=3D-Os -w -pipe
=C2=A0-mmacosx-version-min=3D14=C2=A0-isysroot/Library/Developer/CommandLineTools/SDKs/MacOSX14.sdk
= =C2=A0-DFD_SETSIZE=3D10000 -DDARWIN_UNLIMITED_SELECT'
=C2=A0'CPP= FLAGS=3D-I/opt/homebrew/opt/zlib/include
=C2=A0-I/opt/homebrew/opt/jpeg/= include -I/opt/homebrew/opt/icu4c/include
=C2=A0-I/opt/homebrew/opt/sqli= te/include -I/opt/homebrew/opt/readline/include
=C2=A0-isystem/opt/homeb= rew/include -F/opt/homebrew/Frameworks
=C2=A0-isysroot/Library/Developer= /CommandLineTools/SDKs/MacOSX14.sdk'
=C2=A0'LDFLAGS=3D-L/opt/hom= ebrew/opt/zlib/lib -L/opt/homebrew/opt/jpeg/lib
=C2=A0-L/opt/homebrew/op= t/icu4c/lib -L/opt/homebrew/opt/sqlite/lib
=C2=A0-L/opt/homebrew/opt/rea= dline/lib -L/opt/homebrew/lib
=C2=A0-F/opt/homebrew/Frameworks -Wl,-head= erpad_max_install_names
=C2=A0-isysroot/Library/Developer/CommandLineToo= ls/SDKs/MacOSX14.sdk
=C2=A0-L/opt/homebrew/opt/libgccjit/lib''
Configured features:
ACL GIF GLIB GMP GNUTLS JPEG JSON LCMS2 LIBXM= L2 MODULES NATIVE_COMP
NOTIFY KQUEUE NS PDUMPER PNG RSVG SQLITE3 THREADS= TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM ZLIB

Important set= tings:
=C2=A0 value of $LANG: en_US.UTF-8
=C2=A0 locale-coding-system= : utf-8-unix

Major mode: ELisp/l

Minor modes in effect:
= =C2=A0 global-git-commit-mode: t
=C2=A0 magit-auto-revert-mode: t
=C2= =A0 bug-reference-prog-mode: t
=C2=A0 shell-dirtrack-mode: t
=C2=A0 T= eX-PDF-mode: t
=C2=A0 TeX-source-correlate-mode: t
=C2=A0 auto-revert= -mode: t
=C2=A0 server-mode: t
=C2=A0 projectile-mode: t
=C2=A0 ma= rginalia-mode: t
=C2=A0 vertico-mode: t
=C2=A0 override-global-mode: = t
=C2=A0 which-key-mode: t
=C2=A0 savehist-mode: t
=C2=A0 global-d= isplay-line-numbers-mode: t
=C2=A0 display-line-numbers-mode: t
=C2= =A0 global-display-fill-column-indicator-mode: t
=C2=A0 display-fill-col= umn-indicator-mode: t
=C2=A0 desktop-save-mode: t
=C2=A0 tooltip-mode= : t
=C2=A0 global-eldoc-mode: t
=C2=A0 eldoc-mode: t
=C2=A0 show-p= aren-mode: t
=C2=A0 electric-indent-mode: t
=C2=A0 mouse-wheel-mode: = t
=C2=A0 menu-bar-mode: t
=C2=A0 file-name-shadow-mode: t
=C2=A0 g= lobal-font-lock-mode: t
=C2=A0 font-lock-mode: t
=C2=A0 blink-cursor-= mode: t
=C2=A0 column-number-mode: t
=C2=A0 line-number-mode: t
= =C2=A0 global-visual-line-mode: t
=C2=A0 visual-line-mode: t
=C2=A0 t= ransient-mark-mode: t
=C2=A0 auto-composition-mode: t
=C2=A0 auto-enc= ryption-mode: t
=C2=A0 auto-compression-mode: t

Load-path shadows= :
/Users/leo/.emacs.d/elpa/emacsql-sqlite-20240415.1535/emacsql-sqlite h= ides /Users/leo/.emacs.d/elpa/emacsql-20240819.1559/emacsql-sqlite
/User= s/leo/.emacs.d/elpa/git-commit-20240508.2349/git-commit hides /Users/leo/.e= macs.d/elpa/magit-20250401.1753/git-commit
/Users/leo/.emacs.d/elpa/cmak= e-mode-3.29.3/cmake-mode hides /opt/homebrew/share/emacs/site-lisp/cmake/cm= ake-mode
/Users/leo/.emacs.d/elpa/transient-20250401.1655/transient hide= s /opt/homebrew/Cellar/emacs-plus@29/29.3/share/emacs/29.3/lisp/transient/Users/leo/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /opt/homeb= rew/Cellar/emacs-plus@29/29.3/share/emacs/29.3/lisp/use-package/bind-key
Features:
(shadow sort mail-extr emacsbug misearch multi-isearch cl= -print debug
backtrace disp-table whitespace shortdoc help-fns radix-tre= e vc-hg
vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view magit-extras=
emacsql-sqlite-builtin sqlite forge-repos forge-tablist hl-line
forg= e-topics forge-commands forge-semi forge-bitbucket buck forge-gogs
gogs = forge-gitea gtea forge-gitlab glab forge-github ghub-graphql treepy
gsex= p ghub url-http url-gw url-auth let-alist forge-forgejo forge-notify
for= ge-revnote forge-pullreq forge-issue forge-discussion forge-topic
yaml e= ieio-custom forge-post forge-repo forge forge-core forge-db closql
emacs= ql-sqlite emacsql-sqlite-common emacsql emacsql-compiler eieio-base
magi= t-submodule magit-blame magit-stash magit-reflog magit-bisect
magit-push= magit-pull magit-fetch magit-clone magit-remote magit-commit
magit-sequ= ence magit-notes magit-worktree magit-tag magit-merge
magit-branch magit= -reset magit-files magit-refs magit-status magit
magit-repos magit-apply= magit-wip magit-log which-func magit-diff
smerge-mode diff git-commit l= og-edit pcvs-util add-log magit-core
magit-autorevert magit-margin magit= -transient magit-process with-editor
magit-mode transient pp benchmark m= agit-git magit-base magit-section
cursor-sensor llama google-c-style cc-= mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-= vars cc-defs vc bug-reference
oc-basic org-element org-persist org-id or= g-refile avl-tree ol-eww eww
url-queue mm-url ol-rmail ol-mhe ol-irc ol-= info ol-gnus nnselect
gnus-art mm-uu mml2015 mm-view mml-smime smime dig= gnus-sum shr
pixel-fill kinsoku url-file svg gnus-group gnus-undo gnus-= start
gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo<= br>gnus-spec gnus-int gnus-range message sendmail yank-media rfc822 mml
= mml-sec epa mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc= 2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus
nnheader g= nus-util mail-utils range mm-util mail-prsvr ol-docview
doc-view jka-com= pr ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi
org ob ob-tangle = ob-ref ob-lob ob-table ob-exp org-macro org-src
ob-comint org-pcomplete = org-list org-footnote org-faces org-entities
ob-emacs-lisp ob-core ob-ev= al org-cycle org-table ol org-fold
org-fold-core org-keys oc org-loaddef= s cal-menu calendar cal-loaddefs
org-version org-compat org-macs view ls= p-zig lsp-yang lsp-yaml lsp-xml
lsp-wgsl lsp-volar lsp-vimscript lsp-vhd= l lsp-vetur lsp-html lsp-verilog
lsp-vala lsp-v lsp-typespec tramp-cache= time-stamp tramp-sh tramp
tramp-loaddefs trampver tramp-integration tra= mp-compat parse-time
iso8601 format-spec lsp-typeprof lsp-ttcn3 lsp-ts-q= uery lsp-trunk
lsp-toml lsp-tilt lsp-tex lsp-terraform lsp-svelte lsp-st= eep lsp-sqls
lsp-sql lsp-sorbet lsp-solidity lsp-solargraph lsp-semgrep = lsp-rust
lsp-ruff lsp-ruby-syntax-tree lsp-ruby-lsp lsp-rubocop lsp-rosl= yn
lsp-roc lsp-rf lsp-remark lsp-racket lsp-r lsp-qml lsp-pyright lsp-py= lsp
lsp-pyls lsp-pwsh lsp-purescript lsp-postgres lsp-pls lsp-php
lsp= -perlnavigator lsp-perl lsp-openscad lsp-ocaml find-file lsp-nushell
lsp= -nix lsp-nim lsp-nginx lsp-nextflow lsp-move lsp-mojo lsp-mint
lsp-meson= lsp-mdx lsp-matlab lsp-marksman lsp-markdown lsp-magik
lsp-fennel lsp-l= ua lsp-lisp lsp-kubernetes-helm lsp-kotlin lsp-json
lsp-jq lsp-javascrip= t lsp-idris lsp-haxe lsp-hack lsp-groovy lsp-graphql
lsp-golangci-lint l= sp-glsl lsp-gleam lsp-gdscript lsp-fsharp lsp-futhark
lsp-fortran lsp-es= lint lsp-erlang lsp-emmet lsp-elm lsp-elixir
lsp-earthly lsp-dockerfile = lsp-dhall lsp-d lsp-cypher lsp-cucumber
lsp-copilot lsp-css lsp-c3 lsp-c= sharp gnutls lsp-crystal lsp-credo
lsp-cobol lsp-cmake lsp-clojure lsp-c= langd dom lsp-bufls lsp-go
lsp-beancount lsp-bash lsp-awk lsp-autotools = lsp-astro lsp-asm
lsp-ansible lsp-angular lsp-ada lsp-semantic-tokens ls= p-actionscript
lsp-lens lsp-ui lsp-ui-flycheck lsp-ui-imenu derived lsp-= ui-peek
lsp-ui-sideline lsp-ui-doc goto-addr lsp-ui-util face-remap lsp-= modeline
lsp-headerline lsp-icons lsp-diagnostics flycheck lisp-mnt find= -func
lsp-completion lsp-mode lsp-protocol tree-widget wid-edit spinner<= br>network-stream puny nsm markdown-mode color lv inline imenu ht f s ewoc<= br>epg rfc6068 epg-config dash company-oddmuse company-keywords
company-= etags etags fileloop generator xref company-gtags
company-dabbrev-code c= ompany-dabbrev company-files company-clang
company-capf company-cmake co= mpany-semantic company-template
company-bbdb company python treesit flys= pell ispell latex-extra
reftex-dcr reftex-auc reftex reftex-loaddefs ref= tex-vars noutline
outline tex-mode shell pcomplete font-latex latexenc p= review latex
latex-flymake flymake-proc flymake tex-ispell tex-style tex= crm texmathp
auctex time-date autorevert filenotify vc-git diff-mode vc= -dispatcher
server emoji-fontset comp comp-cstr warnings icons cl-extra = projectile
project grep compile text-property-search comint ansi-osc ans= i-color
ring ibuf-ext ibuffer ibuffer-loaddefs marginalia vertico compat=
compat-30 ido edmacro kmacro bind-key finder-inf zenburn-theme which-ke= y
savehist display-line-numbers display-fill-column-indicator desktopframeset cus-load bibretrieve help-mode easy-mmode dired+ image-dired
i= mage-dired-tags image-dired-external image-dired-util xdg image-mode
exi= f image-file image-converter dired-x dired-aux dired dired-loaddefs
leo-= lib files-x ffap thingatpt advice clang-format-autoloads
cmake-mode-auto= loads dired-git-info-autoloads emacsql-sqlite-autoloads
expand-region-au= toloads flycheck-autoloads forge-autoloads
closql-autoloads emacsql-auto= loads ghub-autoloads git-commit-autoloads
google-c-style-autoloads html-= to-markdown-autoloads rx keycast-autoloads
latex-extra-autoloads auctex-= autoloads tex-site lsp-pyright-autoloads
lsp-mode-autoloads dash-autoloa= ds magit-autoloads pcase
magit-section-autoloads llama-autoloads margina= lia-autoloads
markdown-mode-autoloads projectile-autoloads
reveal-in-= osx-finder-autoloads transient-autoloads treepy-autoloads
vertico-autolo= ads with-editor-autoloads info compat-autoloads
yaml-autoloads yaml-mode= -autoloads package browse-url url url-proxy
url-privacy url-expand url-m= ethods url-history url-cookie
generate-lisp-file url-domsuf url-util mai= lcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs = password-cache json subr-x
map byte-opt gv bytecomp byte-compile url-var= s cl-loaddefs cl-lib rmc
iso-transl tooltip cconv eldoc paren electric u= niquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/ns-wi= n ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset im= age
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-m= ode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymen= u
timer select scroll-bar mouse jit-lock font-lock syntax font-core
t= erm/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian= philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai t= ai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slova= k czech european ethiopic indian cyrillic chinese
composite emoji-zwj ch= arscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray = oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macr= oexp files window text-properties
overlay sha1 md5 base64 format env cod= e-pages mule custom widget keymap
hashtable-print-readable backquote thr= eads kqueue cocoa ns lcms2
multi-tty make-network-process native-compile= emacs)

Memory information:
((conses 16 1457339 450229)
=C2=A0= (symbols 48 65505 7)
=C2=A0(strings 32 396113 68484)
=C2=A0(string-by= tes 1 11133264)
=C2=A0(vectors 16 165399)
=C2=A0(vector-slots 8 34102= 14 1558301)
=C2=A0(floats 8 851 1664)
=C2=A0(intervals 56 3084 2273)<= br>=C2=A0(buffers 984 54))
--00000000000016d5c8063e26e397-- From unknown Sat Sep 13 17:18:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79397: 29.3; ffap-latex-mode should be modified after upstream kpsewhich update Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 Sep 2025 08:49:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79397 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Leo Stein Cc: 79397@debbugs.gnu.org Received: via spool by 79397-submit@debbugs.gnu.org id=B79397.175775329123431 (code B ref 79397); Sat, 13 Sep 2025 08:49:02 +0000 Received: (at 79397) by debbugs.gnu.org; 13 Sep 2025 08:48:11 +0000 Received: from localhost ([127.0.0.1]:53335 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uxLvX-00065q-DU for submit@debbugs.gnu.org; Sat, 13 Sep 2025 04:48:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:50002) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uxLvV-00065Q-2K for 79397@debbugs.gnu.org; Sat, 13 Sep 2025 04:48:09 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uxLvP-00016O-PS; Sat, 13 Sep 2025 04:48:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date: mime-version; bh=blnDRjYUnE72u40VoNI/TLlfMYRdf1WTZahmpv84o44=; b=Dzk4wGPKZH+M It5jjPt4/KZHJnHMsXxs7JMj5hjyaQkvCuXlmvqJ0QIl4u5hPUC/4ArV3zDDsCdAb3KZNN63KJ2uk oMUn/d8dan6IfL5FzroLAEDZkyF8HdtDUb9L1crUhxAS0mJnJT0b8UWMCtrZNaIqDHz/KYzIE86Db I1idQ3ELwrF6/a9/3s9zPuWLj4GREWIz1Uv2qEc24A74eNw1Y0p0Tjlf6bSU0zbObrlw8BbO2gB/9 2fH97PrBArskC5tBNKneViilkMAc67ji3pE9AyTmhf+UX1x11iXjRrr527d720XLIrQ+O85O9/ZsW 9bDsV3gZeE0RXpEAB+YMpQ==; Date: Sat, 13 Sep 2025 11:48:00 +0300 Message-Id: <86wm62rb5r.fsf@gnu.org> From: Eli Zaretskii In-Reply-To: (message from Leo Stein on Sat, 6 Sep 2025 14:23:03 -0500) References: X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) > From: Leo Stein > Date: Sat, 6 Sep 2025 14:23:03 -0500 > > ffap-latex-mode in ffap.el uses the executable kpsewhich if available. > Before a recent change to kpsewhich, the executable would report > possible paths, one per line, with no blank lines. Following svn > revision 73462 in texlive's tree (which is included in TeX Live 2025; > see lines 959-966 at > https://svn.tug.org:8369/texlive/trunk/Build/source/texk/kpathsea/kpsewhich.c?r1=69416&r2=73462), > the new behavior of kpsewhich is to output a blank line for each > input file which was not found. > > The behavior in ffap-latex-mode is to simply take the first line from > the temp buffer that recieves the output. Previously, this would either > be a valid path, or the buffer would be empty. With the new behavior, > the buffer could be non-empty, with various blank lines, and the first > valid path might follow after some blank lines. > > ffap-latex-mode can easily be patched by just removing blank lines from > the temp buffer. However I don't know if that is the idiomatic approach; > please teach me the ways! It might be simpler to look for the first non-empty line. Feel free to suggest a patch along these lines, and thanks. From unknown Sat Sep 13 17:18:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79397: 29.3; ffap-latex-mode should be modified after upstream kpsewhich update Resent-From: Leo Stein Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 Sep 2025 16:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79397 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii Cc: 79397@debbugs.gnu.org Received: via spool by 79397-submit@debbugs.gnu.org id=B79397.1757781547532 (code B ref 79397); Sat, 13 Sep 2025 16:40:02 +0000 Received: (at 79397) by debbugs.gnu.org; 13 Sep 2025 16:39:07 +0000 Received: from localhost ([127.0.0.1]:56409 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uxTHG-00008L-8D for submit@debbugs.gnu.org; Sat, 13 Sep 2025 12:39:07 -0400 Received: from mail-yb1-xb2d.google.com ([2607:f8b0:4864:20::b2d]:44388) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uxTHD-00006s-8m for 79397@debbugs.gnu.org; Sat, 13 Sep 2025 12:39:03 -0400 Received: by mail-yb1-xb2d.google.com with SMTP id 3f1490d57ef6-ea0150ee46dso2336901276.1 for <79397@debbugs.gnu.org>; Sat, 13 Sep 2025 09:39:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757781537; x=1758386337; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=y+sJMPwjamYeWPpG9bbPYFQJULTkAM6WfkT7hQ/r5Oc=; b=j2619jWIzcO2YmNM5XFk56M+ds0zIMbqpEVMjW4f17HxXuujXe1LnQJXkuWwjaQ+ux hPKQnDiT0VhLZZMvi8haeUqhueE3vVhZZ4RfcifI4xCQhtKKMoSZHnJePbkRevoofPsy 6vHEegTB+as2Nv0wkON/NzZhnQlAcl6zKX0RDnbp028RZELEvsS5ccnkSSwoDOPiemQC 36H0Zl31TVDvoUu5b2gygEdjkBKMeAFx52Mz60Hefc4yk4Of6xDtzhzc/lsHJFLRbPDc +cx4JVakhF9hhJozuEU7rv9rq9rCiDTkwrZR78R+rpW74iG+kpqGzPkP1AAsT6fgWw7m ovlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757781537; x=1758386337; 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=y+sJMPwjamYeWPpG9bbPYFQJULTkAM6WfkT7hQ/r5Oc=; b=WqvKcQNgexSG53M+BgW8L9qi3p+7z96HGML/QVQPiS/fRW6R305XdfsPJ0M8OPaKd2 aCvau5ggDiUSh8va+ZXmZo2kdvKfNN3/FaALGJ/0t/ULK2fyQJJZ7peupT+dIUkGN6k3 OEndlotQvsJCX71LAKYUlzFLYXonEefQ6p1mLODji0Vgx84NTNZSPhDyb0Jhv+x49P1O gCZZEzTBrpScFA6W/h+Msep2mOkqSYnP9K+KFKDeBGbR2BQQxUot+5JcJAQpR9n8VdHw oV5cEcGNHeel02lqTPwWMWuAj9IKUxNINRRURu8o3LP/Zac/teny59wvd7+8wIQzgvAj DS2g== X-Gm-Message-State: AOJu0YzHDitSrNz9BocA5XUfbaE/J1XnLN/V+WICISyTHp+l+YUL7vbl TTSxV0TEd85McC0qHAnHzhZ1J/WLVOxzu24EITeaDSiQDhhGeFABYG483m+hBMdkJEyms1+n1SO RRi9+4s8+NiYwiTIB7E8Mg9ZYnGUO9+g= X-Gm-Gg: ASbGncv0J80xLPwtkIZ3vL7199kNHO2IaACc43DYmSfpINm2XcQRVLINwqcm+OfTVRN MnKb+ntDPpQv1/0K/S9eIZ0z0D5SBfXV5GlSu38OzSXMl1ltDB0r8wk4+XATLcvFLXkyExzYKDG jENVkkReNqvqLMtL699/+i2bPDTY2xAeclwPRYZJ+ICaCakvTNZA0mKn5zjOI2rjAYpDzD7D/y9 noi68yskyUgbjRG98t1 X-Google-Smtp-Source: AGHT+IFLryaS1voR6sYvvVDoEHNwrP7BPPL1977VD/a3c24OARVBaG9Y1TJ8GwDwWDi2agQiReKF/eO8r490qbaK9kY= X-Received: by 2002:a05:690c:5503:10b0:731:1bc7:7837 with SMTP id 00721157ae682-7311bc77b1amr43603297b3.42.1757781536892; Sat, 13 Sep 2025 09:38:56 -0700 (PDT) MIME-Version: 1.0 References: <86wm62rb5r.fsf@gnu.org> In-Reply-To: <86wm62rb5r.fsf@gnu.org> From: Leo Stein Date: Sat, 13 Sep 2025 11:38:40 -0500 X-Gm-Features: AS18NWD5kaekBQN4XlIh7qDi2HQPjOhsqTaRmMuCuVUamL5_i5Vru_9oKuTc5S8 Message-ID: Content-Type: multipart/mixed; boundary="000000000000199949063eb16838" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --000000000000199949063eb16838 Content-Type: multipart/alternative; boundary="000000000000199948063eb16836" --000000000000199948063eb16836 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Thanks for the suggestion! That's definitely simpler than removing all blank lines. Here is my attempt at a patch from the latest master. I hope I've formatted the commit message correctly. Note that I included \r along with \n for possible end-of-line characters to skip, but I don't have a Windows machine to test this on. Best Leo On Sat, Sep 13, 2025 at 3:48=E2=80=AFAM Eli Zaretskii wrote: > > From: Leo Stein > > Date: Sat, 6 Sep 2025 14:23:03 -0500 > > > > ffap-latex-mode in ffap.el uses the executable kpsewhich if available. > > Before a recent change to kpsewhich, the executable would report > > possible paths, one per line, with no blank lines. Following svn > > revision 73462 in texlive's tree (which is included in TeX Live 2025; > > see lines 959-966 at > > > https://svn.tug.org:8369/texlive/trunk/Build/source/texk/kpathsea/kpsewhi= ch.c?r1=3D69416&r2=3D73462 > ), > > the new behavior of kpsewhich is to output a blank line for each > > input file which was not found. > > > > The behavior in ffap-latex-mode is to simply take the first line from > > the temp buffer that recieves the output. Previously, this would either > > be a valid path, or the buffer would be empty. With the new behavior, > > the buffer could be non-empty, with various blank lines, and the first > > valid path might follow after some blank lines. > > > > ffap-latex-mode can easily be patched by just removing blank lines from > > the temp buffer. However I don't know if that is the idiomatic approach= ; > > please teach me the ways! > > It might be simpler to look for the first non-empty line. > > Feel free to suggest a patch along these lines, and thanks. > --000000000000199948063eb16836 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks for the suggestion! That's definitely simpler t= han removing all blank lines.

Here is my attempt at a pa= tch from the latest master. I hope I've formatted the commit message co= rrectly. Note that I included \r along with \n for possible end-of-line cha= racters to skip, but I don't have a Windows machine to test this on.

Best
Leo

On Sat= , Sep 13, 2025 at 3:48=E2=80=AFAM Eli Zaretskii <eliz@gnu.org> wrote:
> From: Leo Stein <leo.stein@gmail.com>
> Date: Sat, 6 Sep 2025 14:23:03 -0500
>
> ffap-latex-mode in ffap.el uses the executable kpsewhich if available.=
> Before a recent change to kpsewhich, the executable would report
> possible paths, one per line, with no blank lines. Following svn
> revision 73462 in texlive's tree (which is included in TeX Live 20= 25;
> see lines 959-966 at
> https://svn.tug.org:8369/texlive/trunk/Build/source/texk/kpathsea/k= psewhich.c?r1=3D69416&r2=3D73462),
> the new behavior of kpsewhich is to output a blank line for each
> input file which was not found.
>
> The behavior in ffap-latex-mode is to simply take the first line from<= br> > the temp buffer that recieves the output. Previously, this would eithe= r
> be a valid path, or the buffer would be empty. With the new behavior,<= br> > the buffer could be non-empty, with various blank lines, and the first=
> valid path might follow after some blank lines.
>
> ffap-latex-mode can easily be patched by just removing blank lines fro= m
> the temp buffer. However I don't know if that is the idiomatic app= roach;
> please teach me the ways!

It might be simpler to look for the first non-empty line.

Feel free to suggest a patch along these lines, and thanks.
--000000000000199948063eb16836-- --000000000000199949063eb16838 Content-Type: application/octet-stream; name="0001-ffap-latex-mode-upstream-kpsewhich-change-give-first.patch" Content-Disposition: attachment; filename="0001-ffap-latex-mode-upstream-kpsewhich-change-give-first.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mfihooea0 RnJvbSA4YmI1OWFjNzJhZjMwZWQzODhkNWMzODRiYWE1Y2UxOTRkODFkZGQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiTGVvIEMuIFN0ZWluIiA8bGVvLnN0ZWluQGdtYWlsLmNvbT4K RGF0ZTogU2F0LCAxMyBTZXAgMjAyNSAxMDo0NTozNCAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIGZm YXAtbGF0ZXgtbW9kZTogdXBzdHJlYW0ga3BzZXdoaWNoIGNoYW5nZSwgZ2l2ZSBmaXJzdAogbm9u YmxhbmsgbGluZQoKOyBsaXNwL2ZmYXAuZWwgKGZmYXAtbGF0ZXgtbW9kZSk6ClRoaXMgZml4ZXMg KEJ1ZyM3OTM5NykuIFRoZSB1cHN0cmVhbSBrcHNld2hpY2ggdXRpbGl0eSBtYXkgbm93IHJldHVy bgpibGFuayBsaW5lcy4gVGhlIG9sZCBiZWhhdmlvciBvZiBmZmFwLWxhdGV4LW1vZGUgd2FzIHRv IHNpbXBseSByZXR1cm4KdGhlIGZpcnN0IGxpbmUgb2Ygb3V0cHV0IGZyb20ga3BzZXdoaWNoIChp ZiB0aGUgb3V0cHV0IHdhcwpub25lbXB0eSkuIEZvbGxvd2luZyBzdm4gcmV2aXNpb24gNzM0NjIg aW4gdGV4bGl2ZSdzIHRyZWUgKHdoaWNoIGlzCmluY2x1ZGVkIGluIFRlWCBMaXZlIDIwMjU7IHNl ZSBsaW5lcyA5NTktOTY2IGF0Cmh0dHBzOi8vc3ZuLnR1Zy5vcmc6ODM2OS90ZXhsaXZlL3RydW5r L0J1aWxkL3NvdXJjZS90ZXhrL2twYXRoc2VhL2twc2V3aGljaC5jP3IxPTY5NDE2JnIyPTczNDYy KSwKdGhlIG91dHB1dCBmcm9tIGtwc2V3aGljaCBtaWdodCBzdGFydCB3aXRoIHNvbWUgYmxhbmsg bGluZXMgYmVmb3JlIHRoZQpmaXJzdCB2YWxpZCBwYXRoIGZvciBmZmFwLiBUaGUgZml4IHNpbXBs eSBza2lwcyBhbGwgXHIgYW5kIFxuIGNoYXJzLgotLS0KIGxpc3AvZmZhcC5lbCB8IDkgKysrKysr LS0tCiAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2xpc3AvZmZhcC5lbCBiL2xpc3AvZmZhcC5lbAppbmRleCA0NzY2YjNmMjA4YS4u OTdlYjVhNTQ0ZDggMTAwNjQ0Ci0tLSBhL2xpc3AvZmZhcC5lbAorKysgYi9saXNwL2ZmYXAuZWwK QEAgLTEwNDUsOSArMTA0NSwxMiBAQCBvdXQgb2YgTkFNRS4iCiAgICAgICAgICAgICAgICAoYXBw bHkgIydjYWxsLXByb2Nlc3MgImtwc2V3aGljaCIgbmlsIHQgbmlsCiAgICAgICAgICAgICAgICAg ICAgICAgKG1hcGNhciAobGFtYmRhIChydWxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKGNvbmNhdCAoY2FyIHJ1bGUpIG5hbWUgKGNkciBydWxlKSkpCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vlc3MtcnVsZXMpKSkKLSAgICAg ICAgICAgICAod2hlbiAoPCAocG9pbnQtbWluKSAocG9pbnQtbWF4KSkKLSAgICAgICAgICAgICAg IChidWZmZXItc3Vic3RyaW5nIChnb3RvLWNoYXIgKHBvaW50LW1pbikpIChsaW5lLWVuZC1wb3Np dGlvbikpKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vl c3MtcnVsZXMpKQorICAgICAgICAgICAgICAgOzsgZ28gdG8gdGhlIGZpcnN0IG5vbi1ibGFuayBs aW5lCisgICAgICAgICAgICAgICAoZ290by1jaGFyIChwb2ludC1taW4pKQorICAgICAgICAgICAg ICAgKHNraXAtY2hhcnMtZm9yd2FyZCAiXHJcbiIpKQorICAgICAgICAgICAgICh3aGVuICg8IChw b2ludCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkKKyAgICAgICAgICAgICAgIChidWZmZXItc3Vic3Ry aW5nIChwb2ludCkgKGxpbmUtZW5kLXBvc2l0aW9uKSkpKSkpKSkKIAogKGRlZnVuIGZmYXAtdGV4 IChuYW1lKQogICAoZmZhcC10ZXgtaW5pdCkKLS0gCjIuNDguMQoK --000000000000199949063eb16838-- From unknown Sat Sep 13 17:18:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79397: 29.3; ffap-latex-mode should be modified after upstream kpsewhich update Resent-From: Arash Esbati Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 Sep 2025 19:28:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79397 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Leo Stein Cc: 79397@debbugs.gnu.org Received: via spool by 79397-submit@debbugs.gnu.org id=B79397.175779163120958 (code B ref 79397); Sat, 13 Sep 2025 19:28:01 +0000 Received: (at 79397) by debbugs.gnu.org; 13 Sep 2025 19:27:11 +0000 Received: from localhost ([127.0.0.1]:57181 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uxVtv-0005Ry-4x for submit@debbugs.gnu.org; Sat, 13 Sep 2025 15:27:11 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:34678) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uxVtr-0005RO-5t for 79397@debbugs.gnu.org; Sat, 13 Sep 2025 15:27:07 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uxVtj-0000Mg-Ld; Sat, 13 Sep 2025 15:26:59 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=TbxCe5670+TjsT0j6AnrTegTKz5C4nbCXvOnveTaSok=; b=YL8e6egLEOriunpBMfg7 k95FH4VMYDQbbNWE2XMLxyb/Rnexv9qdhEZAoNcPk1ZZeEx1E60BlglXpb/OKVG6pclmGUeFIjm+Q CWflgbIdUmzPZBEQ+Hjogv40CrCPnZLOmBhbnt1a//ObRKfcZWDqdX4eg9BIgrhcjM+2I1l7d8AUH B9aHQO4s8bSsO5ungZWi2PHIi7NxTHvZ31KlBp8t2KfDCByv8gyB5bnCbEoqoYrWvZNqBvZYpM9MV UgtQDI07kEoXWsdsdU/nA2Yk+BD3mNYoUWYqiQwcyQK8kmnfMJ2pCaEzVeq4VQ8/5SF/hHn6czmiU 9Q9ogG2sVl2aWw==; From: Arash Esbati In-Reply-To: References: Date: Sat, 13 Sep 2025 21:26:53 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Leo Stein writes: > ffap-latex-mode in ffap.el uses the executable kpsewhich if available. > Before a recent change to kpsewhich, the executable would report > possible paths, one per line, with no blank lines. Following svn > revision 73462 in texlive's tree (which is included in TeX Live 2025; > see lines 959-966 at > https://svn.tug.org:8369/texlive/trunk/Build/source/texk/kpathsea/kpsewhich.c?r1=69416&r2=73462), > the new behavior of kpsewhich is to output a blank line for each > input file which was not found. > > The behavior in ffap-latex-mode is to simply take the first line from > the temp buffer that recieves the output. Previously, this would either > be a valid path, or the buffer would be empty. With the new behavior, > the buffer could be non-empty, with various blank lines, and the first > valid path might follow after some blank lines. My apologies if my comment is off, I'm not a `ffap' user. But can you please show an example in which way the change in kpsewhich breaks the functionality of `ffap'? I started with "emacs -Q", opened a .tex file and inserted \usepackage{hyperref} then I put the cursor somewhere on "hyperref" and did 'M-x ffap RET'. Emacs offers to open hyperref.sty from /path/to/texlive/2025/texmf-dist/tex/latex/hyperref/hyperref.sty which seems to be TRT. Now I do the same exercise with: \usepackage{hyperrefs} and Emacs asks for completion in the minibuffer since kpsewhich didn't find hyperrefs.sty (which was expected). Am I missing something? Best, Arash From unknown Sat Sep 13 17:18:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79397: 29.3; ffap-latex-mode should be modified after upstream kpsewhich update Resent-From: Leo Stein Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 Sep 2025 19:57:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79397 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Arash Esbati Cc: 79397@debbugs.gnu.org Received: via spool by 79397-submit@debbugs.gnu.org id=B79397.175779338132154 (code B ref 79397); Sat, 13 Sep 2025 19:57:02 +0000 Received: (at 79397) by debbugs.gnu.org; 13 Sep 2025 19:56:21 +0000 Received: from localhost ([127.0.0.1]:57286 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uxWM7-0008MV-CM for submit@debbugs.gnu.org; Sat, 13 Sep 2025 15:56:20 -0400 Received: from mail-yb1-xb2f.google.com ([2607:f8b0:4864:20::b2f]:50655) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1uxWLn-0008Kz-QI for 79397@debbugs.gnu.org; Sat, 13 Sep 2025 15:56:11 -0400 Received: by mail-yb1-xb2f.google.com with SMTP id 3f1490d57ef6-ea1679ba47eso2135888276.1 for <79397@debbugs.gnu.org>; Sat, 13 Sep 2025 12:55:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1757793353; x=1758398153; darn=debbugs.gnu.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kCZKPKpjdH6KdQrzfo4IEVbTyTlTUOW2EwPRxd7kUUE=; b=IMbkCTvUWs5K+tRFqavjg3BilYh7hvlbi5CqHqEbeCZYSnn4up+Iajy7x68EurmQdf 1PumZOL5UF+zw6FjPHZIjJ3D4d7kJvdQQVSIMGfpzaYpBPysyb6E1e4oOVjzuQE6umX/ Si93gfuVfkW2iLApFcmfHI6dFToFchVgOG7zeijARmdf6UDgTyj9UpYZdbIrEV+RjOMa UA3qgcDkkawTP38b5hjsvTORpZHtBFCYRHcM/6dmuZlo8MDweum81SDUNTyK4HZUVIMx ZAS5Pjygqwo/sco1tAslMGSU5sGK1gYN/9zjwNkuyiC5fUUdpenJortf5GSXKngubxkF 2KUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1757793353; x=1758398153; 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=kCZKPKpjdH6KdQrzfo4IEVbTyTlTUOW2EwPRxd7kUUE=; b=B73cJblHuQ2Mjitp9sToUV9G+y29jcjQLQJdtiGgfiynuraxVbv4FDVq6UL8jwp7MM uva/6+hMJh06K84rFvO4eeaCEI3Mr7Z7xeJpAvqVqxbohob07IEveYPnpdy9p0AwMr6d sJ3Enw4vP0IbGmdJlny0vNVtfo7VuoxUQBlb4TZ9XWpiXD5N9W0+lAY9Z+UFdf63mjEX lJ9rylntovOw8a7sYfD/p1gHNcXn/RHS0VbGorrtr7swYGA+bnyE9ZTucG1pzbpht3wi 2M0JWkrFIWEvsuGGG6OrhzJEEYzqeDk6QCfQgu8K6OZ79nwRb/OMvCN0EHtZQDaSfW2x u4RQ== X-Gm-Message-State: AOJu0YzL56zVGdhSbHpL3uSOFaCaFuJjPPp2Ph75SFC+Zi6mslHY1Zl2 pBD+V0emWF1fez4Gn/kfwxyrB6DB3apA+/bQmT/KrHOG9fCqPpawta1/C9aFrCNaS1Is6fXUMIe OJARcfNQ7Yy/tiGkCKr57zV6my38+ovA= X-Gm-Gg: ASbGncsQpjYWaIMCYJIWk1yO2D5If3LbZI+o8xPg0QJWY0FNFKR2ulHjlTvX3xoDynw 5QpTKxrmO0vpL8FUTuXVqmL+BtAiZGjxi2MofB9XJPnSYdqqC10Xo0MADNHdx1pTgt842f9pRsp fe3wmdr+ZTwaV9nPnF9dNN9yN+9vIbQgOjeiq7xQ7r9UYnD1q7E7QkW7RU9bbc0+a5FbtmmEGsm VA2bOSKXg== X-Google-Smtp-Source: AGHT+IHAndnvzHBrlBlAzWFT4U7HFQngXjXByTNV3lzFabgKyZrpLXSfMx7crcjNa5xUEcXOripKt5uTc+lOfEeiMss= X-Received: by 2002:a05:690c:6606:b0:723:aeee:e516 with SMTP id 00721157ae682-73062e9eff5mr61759627b3.18.1757793353509; Sat, 13 Sep 2025 12:55:53 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Leo Stein Date: Sat, 13 Sep 2025 14:55:35 -0500 X-Gm-Features: AS18NWAJj6hDj0bK3Bl932StiyX9Q5Vyu1pGbkmchEmJVmQIPp1x01Bxo8lfaFU Message-ID: Content-Type: multipart/alternative; boundary="0000000000006caf9a063eb428f9" X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --0000000000006caf9a063eb428f9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Dear Arash, Let me give you a working example. Create a .tex file which will be a beamer presentation, and write that you are going to use some theme, e.g. > \usetheme{CambridgeUS} Now with the old behavior of kpsewhich, you could ffap on CambridgeUS, and it would offer to open /path/to/texlive/2025/texmf-dist/tex/latex/beamer/beamerthemeCambridgeUS.st= y I captured the invocation of call-process by adding advice, and the invocation of kpsewhich would have been equivalent to > kpsewhich "CambridgeUS.sty" "CambridgeUS.cls" "CambridgeUS.ltx" > "CambridgeUS.tex" "CambridgeUS" "beamerthemeCambridgeUS.sty" > "beamercolorthemeCambridgeUS.sty" "beamerfontthemeCambridgeUS.sty" > "beamerinnerthemeCambridgeUS.sty" "beamerouterthemeCambridgeUS.sty" > "CambridgeUS.ldf" If you run this from a terminal, with the new kpsewhich, you will see that there are a bunch of blank lines both before and after the correct path. All of the non-matching paths (e.g. CambridgeUS.sty) result in blank lines. The reason you didn't find any issue with hyperref is because the first argument to kpsewhich happened to actually exist in the tex tree. Hope that explains why this is needed! Best Leo PS Of course you might not want to edit a system-installed beamer theme, but maybe it's a user-installed one in TEXMFLOCAL; but the overarching point is that the current ffap code with latest kpsewhich will only work if the first argument happens to be the correct one. On Sat, Sep 13, 2025 at 2:27=E2=80=AFPM Arash Esbati wrote: > Leo Stein writes: > > > ffap-latex-mode in ffap.el uses the executable kpsewhich if available. > > Before a recent change to kpsewhich, the executable would report > > possible paths, one per line, with no blank lines. Following svn > > revision 73462 in texlive's tree (which is included in TeX Live 2025; > > see lines 959-966 at > > > https://svn.tug.org:8369/texlive/trunk/Build/source/texk/kpathsea/kpsewhi= ch.c?r1=3D69416&r2=3D73462 > ), > > the new behavior of kpsewhich is to output a blank line for each > > input file which was not found. > > > > The behavior in ffap-latex-mode is to simply take the first line from > > the temp buffer that recieves the output. Previously, this would either > > be a valid path, or the buffer would be empty. With the new behavior, > > the buffer could be non-empty, with various blank lines, and the first > > valid path might follow after some blank lines. > > My apologies if my comment is off, I'm not a `ffap' user. But can you > please show an example in which way the change in kpsewhich breaks the > functionality of `ffap'? I started with "emacs -Q", opened a .tex file > and inserted > > \usepackage{hyperref} > > then I put the cursor somewhere on "hyperref" and did 'M-x ffap RET'. > Emacs offers to open hyperref.sty from > > /path/to/texlive/2025/texmf-dist/tex/latex/hyperref/hyperref.sty > > which seems to be TRT. Now I do the same exercise with: > > \usepackage{hyperrefs} > > and Emacs asks for completion in the minibuffer since kpsewhich didn't > find hyperrefs.sty (which was expected). Am I missing something? > > Best, Arash > --0000000000006caf9a063eb428f9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Dear Arash,

Let me give you a working e= xample. Create a .tex file which will be a beamer presentation, and write t= hat you are going to use some theme, e.g.
\usetheme{CambridgeUS}
Now with the = old behavior of kpsewhich, you could ffap on CambridgeUS, and it would offe= r to open
=C2=A0 /path/to/texlive/2025/texmf-dist/tex/latex/beame= r/beamerthemeCambridgeUS.sty

I captured the invoca= tion of call-process by adding advice, and the invocation of kpsewhich woul= d have been equivalent to
kpsewhich=C2=A0"CambridgeUS.sty" "CambridgeUS.cls"= ; "CambridgeUS.ltx" "CambridgeUS.tex" "CambridgeUS= " "beamerthemeCambridgeUS.sty" "beamercolorthemeCambrid= geUS.sty" "beamerfontthemeCambridgeUS.sty" "beamerinner= themeCambridgeUS.sty" "beamerouterthemeCambridgeUS.sty" &quo= t;CambridgeUS.ldf"
If you run this from a terminal, w= ith the new kpsewhich, you will see that there are a bunch of blank lines b= oth before and after the correct path. All of the non-matching paths (e.g. = CambridgeUS.sty) result in blank lines.

The reason= you didn't find any issue with hyperref is because the first argument = to kpsewhich happened to actually exist in the tex tree.

Hope that explains why this is needed!
Best
Leo<= /div>

PS Of course you might not want to edit a system-i= nstalled beamer theme, but maybe it's a user-installed one in=C2=A0TEXM= FLOCAL; but the overarching point is that the current ffap code with latest= kpsewhich will only work if the first argument happens to be the correct o= ne.

On Sat, Sep 13, 2025 at 2:27=E2=80=AFPM Aras= h Esbati <arash@gnu.org> wrote:<= br>
Leo Stein <leo.stein@gmail.com<= /a>> writes:

> ffap-latex-mode in ffap.el uses the executable kpsewhich if available.=
> Before a recent change to kpsewhich, the executable would report
> possible paths, one per line, with no blank lines. Following svn
> revision 73462 in texlive's tree (which is included in TeX Live 20= 25;
> see lines 959-966 at
> https://svn.tug.org:8369/texlive/trunk/Build/source/texk/kpathsea/k= psewhich.c?r1=3D69416&r2=3D73462),
> the new behavior of kpsewhich is to output a blank line for each
> input file which was not found.
>
> The behavior in ffap-latex-mode is to simply take the first line from<= br> > the temp buffer that recieves the output. Previously, this would eithe= r
> be a valid path, or the buffer would be empty. With the new behavior,<= br> > the buffer could be non-empty, with various blank lines, and the first=
> valid path might follow after some blank lines.

My apologies if my comment is off, I'm not a `ffap' user.=C2=A0 But= can you
please show an example in which way the change in kpsewhich breaks the
functionality of `ffap'?=C2=A0 I started with "emacs -Q", ope= ned a .tex file
and inserted

=C2=A0 \usepackage{hyperref}

then I put the cursor somewhere on "hyperref" and did 'M-x ff= ap RET'.
Emacs offers to open hyperref.sty from

=C2=A0 /path/to/texlive/2025/texmf-dist/tex/latex/hyperref/hyperref.sty

which seems to be TRT.=C2=A0 Now I do the same exercise with:

=C2=A0 \usepackage{hyperrefs}

and Emacs asks for completion in the minibuffer since kpsewhich didn't<= br> find hyperrefs.sty (which was expected).=C2=A0 Am I missing something?

Best, Arash
--0000000000006caf9a063eb428f9-- From unknown Sat Sep 13 17:18:33 2025 X-Loop: help-debbugs@gnu.org Subject: bug#79397: 29.3; ffap-latex-mode should be modified after upstream kpsewhich update Resent-From: Arash Esbati Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 13 Sep 2025 20:38:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 79397 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Leo Stein Cc: 79397@debbugs.gnu.org Received: via spool by 79397-submit@debbugs.gnu.org id=B79397.175779582513903 (code B ref 79397); Sat, 13 Sep 2025 20:38:02 +0000 Received: (at 79397) by debbugs.gnu.org; 13 Sep 2025 20:37:05 +0000 Received: from localhost ([127.0.0.1]:57398 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uxWzY-0003c8-Js for submit@debbugs.gnu.org; Sat, 13 Sep 2025 16:37:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55540) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uxWzK-0003aN-AQ for 79397@debbugs.gnu.org; Sat, 13 Sep 2025 16:36:58 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uxWzE-0000QZ-8u; Sat, 13 Sep 2025 16:36:44 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:Date:References:In-Reply-To:Subject:To: From; bh=3ZDcA8JBpZ6B7o8qQpRl9NOcIoExGPvW2+hz7+dfoUE=; b=L78gRVmKHI1NRL42UANZ rd5yI/teOtDMPvvkAUTbhKHIT3ecSyvQVSxRYpxkQ3Aeu7Dj5FdqmoZ9VdDinWTem8Lb9vlhO5OMC YQqJ4E6+FVBQdfrL5695X4uJ25elPuwRwlKCBGGu6jPFNLdaNJHXvpOBpyOq/XF9aMyDs9WxOxyHP +RnOngUquxCYD5T/IJtWOA9fF15QsEgUzAQynmN4LYjMjT+GT69ZaijVBd57NZiJlEDOhGun5+7i0 3+aL6dsfUjNStUtLrDRZmk1Tvz+Tcy1AIgM15grskiSMCSVT+ZZOdqkvwhUbxqIHVocHmfTWzNwnB 9DL0aWclmyFxPg==; From: Arash Esbati In-Reply-To: References: Date: Sat, 13 Sep 2025 22:36:38 +0200 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Leo Stein writes: > If you run this from a terminal, with the new kpsewhich, you will see > that there are a bunch of blank lines both before and after the > correct path. All of the non-matching paths (e.g. CambridgeUS.sty) > result in blank lines. Thanks for explanation, I now see what's happening. > The reason you didn't find any issue with hyperref is because the > first argument to kpsewhich happened to actually exist in the tex > tree. Yes, thanks. Technically, I didn't read the code of `ffap-latex-mode' careful enough to see how it uses the value of `ffap-latex-guess-rules'. Best, Arash