Package: emacs;
Reported by: "Peter J. Jones" <mlists <at> devalot.com>
Date: Sun, 27 Apr 2025 15:31:02 UTC
Severity: normal
Found in version 30.1
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 78097 in the body.
You can then email your comments to 78097 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#78097
; Package emacs
.
(Sun, 27 Apr 2025 15:31:02 GMT) Full text and rfc822 format available."Peter J. Jones" <mlists <at> devalot.com>
:bug-gnu-emacs <at> gnu.org
.
(Sun, 27 Apr 2025 15:31:03 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: "Peter J. Jones" <mlists <at> devalot.com> To: bug-gnu-emacs <at> gnu.org Subject: 30.1; editorconfig can pass nil to file-name-directory Date: Sun, 27 Apr 2025 14:58:50 +0200
When a function called from `editorconfig-get-local-variables-functions' returns an alist, but there is no .editorconfig file in the directory tree, the `editorconfig--get-dir-local-variables' function will pass nil to `file-name-directory', causing an error (stringp nil). This happens because `editorconfig--get-dir-local-variables' calls `editorconfig-core-get-nearest-editorconfig', which returns nil, and passes that nil on to `file-name-directory'. The following patch fixes the problem: --- editorconfig.el.orig 2025-04-27 14:52:35.208707072 +0200 +++ editorconfig.el 2025-04-27 14:53:19.423741999 +0200 @@ -739,11 +739,10 @@ ;; settings from each file individually and let hack-dir-local merge ;; them because hack-dir-local doesn't have the notion of "unset", ;; and because the conversion of `indent_size' depends on `tab_width'. - (when alist - (cons - (file-name-directory (editorconfig-core-get-nearest-editorconfig - buffer-file-name)) - alist))))) + (when-let* ((alist) + (file (editorconfig-core-get-nearest-editorconfig + buffer-file-name))) + (cons (file-name-directory file) alist))))) ;;;###autoload (define-minor-mode editorconfig-mode In GNU Emacs 30.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.43, cairo version 1.18.2) System Description: NixOS 24.11 (Vicuna) Configured using: 'configure --prefix=/nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1 --disable-build-details --with-modules --with-pgtk --with-compress-install --with-toolkit-scroll-bars --with-native-compilation --without-imagemagick --with-mailutils --without-small-ja-dic --with-tree-sitter --without-xinput2 --without-xwidgets --with-dbus --with-selinux' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG LIBSELINUX LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB Important settings: value of $EMACSLOADPATH: value of $EMACSNATIVELOADPATH: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: ELisp/l Minor modes in effect: editorconfig-mode: t csv-field-index-mode: t consult-org-roam-mode: t org-roam-db-autosync-mode: t pdf-occur-global-minor-mode: t global-git-commit-mode: t magit-auto-revert-mode: t mu4e-modeline-mode: t org-clock-dbus-mode: t org-edna-mode: t yas-minor-mode: t display-line-numbers-mode: t flycheck-indicator-mode: t flycheck-mode: t save-place-mode: t winum-mode: t winner-mode: t which-key-mode: t vertico-prescient-mode: t marginalia-mode: t vertico-multiform-mode: t vertico-mode: t repeat-mode: t minions-mode: t global-jinx-mode: t jinx-mode: t global-hl-todo-mode: t hl-todo-mode: t global-diff-hl-mode: t diff-hl-mode: t global-auto-revert-mode: t envrc-global-mode: t envrc-mode: t electric-pair-mode: t corfu-popupinfo-mode: t corfu-prescient-mode: t corfu-history-mode: t global-corfu-mode: t corfu-mode: t savehist-mode: t server-mode: t puni-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t global-prettify-symbols-mode: t prettify-symbols-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t minibuffer-regexp-mode: t size-indication-mode: t column-number-mode: t line-number-mode: t auto-fill-function: #[128 \304\300\301#\207 [yas--auto-fill do-auto-fill :around nil apply] 5 advice] transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/ef-themes-1.8.0/theme-loaddefs hides /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/modus-themes-20241007.1332/theme-loaddefs /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/site-start hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/site-lisp/site-start /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/transient-20241008.1824/transient hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/transient /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/ef-themes-1.8.0/theme-loaddefs hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/theme-loaddefs /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/jsonrpc-1.0.25/jsonrpc hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/jsonrpc /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/xref-1.7.0/xref hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/progmodes/xref /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/project-0.11.1/project hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/progmodes/project /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-bbdb hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-bbdb /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-latex hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-latex /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-lint hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-lint /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-core hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-core /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-fold-core hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-fold-core /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-groovy hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-groovy /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-macro hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-macro /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-capture hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-capture /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-haskell hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-haskell /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-emacs-lisp hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-emacs-lisp /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-ocaml hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-ocaml /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-R hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-R /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-habit hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-habit /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-C hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-C /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-entities hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-entities /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-faces hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-faces /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-crypt hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-crypt /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-octave hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-octave /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-ascii hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-ascii /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-tangle hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-tangle /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-matlab hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-matlab /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-colview hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-colview /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-makefile hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-makefile /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-eww hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-eww /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-plot hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-plot /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-clojure hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-clojure /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-gnuplot hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-gnuplot /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-list hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-list /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-perl hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-perl /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-odt hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-odt /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-md hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-md /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-tempo hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-tempo /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/oc-biblatex hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/oc-biblatex /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-sql hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-sql /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-python hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-python /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-publish hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-publish /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-gnus hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-gnus /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-man hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-man /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-keys hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-keys /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-koma-letter hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-koma-letter /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-refile hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-refile /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-element hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-element /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-ditaa hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-ditaa /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-eshell hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-eshell /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-sqlite hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-sqlite /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-agenda hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-agenda /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-texinfo hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-texinfo /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-css hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-css /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-cycle hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-cycle /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-bibtex hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-bibtex /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-ctags hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-ctags /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-eval hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-eval /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-shell hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-shell /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-maxima hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-maxima /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-num hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-num /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-attach hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-attach /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-comint hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-comint /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-doi hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-doi /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-processing hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-processing /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-src hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-src /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-mobile hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-mobile /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-persist hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-persist /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-org hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-org /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-goto hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-goto /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-mhe hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-mhe /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-org hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-org /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-java hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-java /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-julia hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-julia /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-man hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-man /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-exp hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-exp /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-lob hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-lob /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-archive hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-archive /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-eshell hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-eshell /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-feed hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-feed /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-indent hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-indent /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-scheme hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-scheme /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-rmail hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-rmail /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-beamer hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-beamer /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/oc-basic hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/oc-basic /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-pcomplete hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-pcomplete /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/oc hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/oc /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-table hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-table /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-js hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-js /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-inlinetask hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-inlinetask /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-timer hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-timer /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-sass hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-sass /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-lilypond hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-lilypond /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-fortran hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-fortran /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-irc hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-irc /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-protocol hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-protocol /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-awk hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-awk /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-id hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-id /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-docview hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-docview /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-compat hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-compat /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-latex hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-latex /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-mouse hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-mouse /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-html hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-html /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/oc-bibtex hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/oc-bibtex /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-lua hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-lua /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-sed hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-sed /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-ruby hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-ruby /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-ref hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-ref /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-calc hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-calc /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-dot hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-dot /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-version hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-version /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-attach-git hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-attach-git /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-forth hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-forth /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-clock hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-clock /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-info hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-info /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-datetree hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-datetree /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-plantuml hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-plantuml /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/oc-csl hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/oc-csl /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-fold hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-fold /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-macs hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-macs /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ol-w3m hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ol-w3m /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-lisp hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-lisp /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-table hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-table /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-loaddefs hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-loaddefs /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-element-ast hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-element-ast /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-footnote hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-footnote /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox-icalendar hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox-icalendar /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/oc-natbib hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/oc-natbib /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ob-screen hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ob-screen /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/org-duration hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/org-duration /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.7.12/ox hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/org/ox /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/nadvice-0.4/nadvice hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/emacs-lisp/nadvice /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/eldoc-1.15.0/eldoc hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/emacs-lisp/eldoc /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/compat-30.0.0.0/compat hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/emacs-lisp/compat /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/map-3.3.1/map hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/emacs-lisp/map /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/emacs-lisp/let-alist /nix/store/6y8s8xqy6rn9b42nf3rbg4bnf6b3kap0-emacs-packages-deps/share/emacs/site-lisp/elpa/seq-2.24/seq hides /nix/store/ss2l3dmx67wjjbrajz7fg9y9f48ialj5-emacs-pgtk-30.1/share/emacs/30.1/lisp/emacs-lisp/seq Features: (shadow emacsbug edebug emacs-news-mode minibuf-eldef js-mode-expansions js disass korea-util rg rg-info-hack rg-menu rg-ibuffer rg-result wgrep-rg wgrep rg-history rg-header grep editorconfig-tools editorconfig editorconfig-core editorconfig-core-handle editorconfig-fnmatch editorconfig-conf-mode conf-mode orgalist apropos embark-org embark-consult embark ob-ditaa org-colview org-crypt org-ctags org-habit org-mouse org-plot ox-texinfo org-ref-natbib-bbl-citeproc ess-tracebug ess-utils ess-custom cl-print debug backtrace vertico-quick mastodon-media mastodon-profile mastodon-auth mastodon-client plstore mastodon-tl mastodon mastodon-search mastodon-toot mastodon-iso persist mastodon-http dictionary external-completion dictionary-connection make-mode magit-annex magit-patch magit-subtree magit-gitignore magit-ediff ediff ediff-merg ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util man calc-yank calccomp calc-alg calc-menu calc-ext calc-aent calc calc-loaddefs rect calc-macs org-roam-dailies org-archive tramp-cache time-stamp tramp-sh shortdoc cape-keyword cape-char nix-mode nix-repl nix-shell nix-store nix-log nix-instantiate nix-shebang nix-format nix goto-chg latexenc eimp solar cal-dst misc dabbrev consult-org cal-move dcl-mode tempo epa-file password-store link-hint expand-region yaml-mode-expansions subword-mode-expansions text-mode-expansions cc-mode-expansions the-org-mode-expansions python-el-fgallina-expansions nxml-mode-expansions html-mode-expansions er-basic-expansions expand-region-core expand-region-custom csv-mode yaml-mode ace-window puni pulse consult-imenu csharp-mode c-ts-common cc-langs cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs goto-addr rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid nxml-mode nxml-outln nxml-rap visual-fill darkroom markdown-mode edit-indirect ffap tex-mode org-ref org-ref-core openalex request org-ref-glossary org-ref-bibtex sgml-mode avy doi-utils org-ref-utils org-ref-export citeproc citeproc-itemgetters citeproc-cite citeproc-biblatex citeproc-bibtex citeproc-subbibs citeproc-sort citeproc-name citeproc-formatters citeproc-proc citeproc-disamb citeproc-itemdata citeproc-generic-elements citeproc-macro citeproc-choose citeproc-date citeproc-number rst citeproc-context citeproc-prange citeproc-style citeproc-locale citeproc-term citeproc-rt citeproc-lib citeproc-s queue ox-pandoc ht org-ref-misc-links org-ref-label-link org-ref-ref-links org-ref-citation-links org-ref-bibliography-links hydra lv bibtex-completion biblio biblio-download biblio-dissemin biblio-ieee biblio-hal biblio-dblp biblio-crossref biblio-arxiv timezone biblio-doi biblio-core parsebib org-roam-export consult-org-roam consult-org-roam-buffer org-roam-migrate org-roam-log org-roam-mode org-roam-capture org-roam-id org-roam-node org-roam-db emacsql-sqlite-builtin sqlite org-roam-utils org-roam-compat org-roam emacsql-sqlite emacsql-sqlite-common emacsql emacsql-compiler vertico-directory consult qp pdf-sync pdf-annot facemenu pdf-history pdf-occur ibuf-ext ibuffer ibuffer-loaddefs tablist tablist-filter semantic/wisent/comp semantic/wisent semantic/wisent/wisent semantic/util-modes semantic/util semantic semantic/tag semantic/lex semantic/fw mode-local cedet pdf-outline pdf-links pdf-isearch let-alist pdf-misc pdf-tools cus-edit cus-start cus-load pdf-view pdf-cache pdf-info tq pdf-util pdf-macs network-stream url-http url-gw nsm url-auth gnus-gravatar gravatar dns url-cache sort smiley gnus-cite mm-archive mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check vterm tramp trampver tramp-integration files-x tramp-message tramp-compat tramp-loaddefs compile color term ehelp vterm-module term/xterm xterm vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs bug-reference magit-extras git-rebase magit-bookmark 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 imenu magit-diff smerge-mode diff git-commit log-edit add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor comp comp-cstr comp-run comp-common magit-mode transient benchmark magit-git magit-base magit-section cursor-sensor crm reposition misearch multi-isearch cap-words superword subword tabify mu4e mu4e-org mu4e-notification notifications mu4e-main smtpmail mu4e-view mu4e-mime-parts mu4e-headers mu4e-thread mu4e-actions mu4e-compose mu4e-draft gnus-msg mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill mu4e-contacts mu4e-update mu4e-folders mu4e-context mu4e-query-items mu4e-server mu4e-modeline mu4e-vars mu4e-helpers mu4e-config mu4e-window bookmark pp ido mu4e-obsolete help-fns radix-tree mule-util org-duration diary-lib diary-loaddefs cal-iso vc-git org-appear org-bulletproof org-clock-dbus org-clock org-modern org-num corg oc-basic disp-table 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 gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time gnus-spec gnus-int gnus-range org-mime ox-org message sendmail yank-media puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util text-property-search mail-utils range mm-util mail-prsvr wid-edit ol-docview doc-view jka-compr image-mode exif wdired noccur dired-subtree dired-narrow delsel dired-filter edmacro f dired-hacks-utils dired-aux dired-x dired dired-loaddefs ol-bibtex bibtex iso8601 ol-bbdb ol-w3m ol-doi org-link-doi hl-line face-remap ob-ruby ob-R ob-python python ob-plantuml ob-mermaid ob-shell shell warnings ox-gfm ox-md ox-odt rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox org-attach org-protocol org-edna org-capture org-agenda org-element org-persist xdg org-id org-element-ast inline avl-tree generator org-refile org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src reformatter sh-script smie treesit executable ob-comint org-pcomplete pcomplete comint ansi-osc org-list org-footnote org-faces org-entities time-date noutline outline ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs thingatpt cal-menu calendar cal-loaddefs org-version org-compat org-macs format-spec yasnippet whitespace display-line-numbers dumb-jump popup xref project flycheck-indicator flycheck find-func vlf-setup advice saveplace winum dash winner ring which-key vertico-prescient marginalia vertico-multiform vertico repeat minions jinx hl-todo diff-hl log-view pcvs-util vc-dir ewoc vc vc-dispatcher autorevert filenotify envrc inheritenv diff-mode track-changes ansi-color elec-pair ef-maris-dark-theme ef-themes corfu-popupinfo corfu-prescient prescient char-fold corfu-history corfu kmacro cape compat savehist cl-extra help-mode dbus xml server s async auth-source-pass finder-inf ace-window-autoloads adaptive-wrap-autoloads async-autoloads cape-autoloads catppuccin-theme-autoloads clojure-mode-autoloads consult-org-roam-autoloads consult-recoll-autoloads corfu-prescient-autoloads corfu-autoloads csv-mode-autoloads darkroom-autoloads devdocs-autoloads diff-hl-autoloads dired-filter-autoloads dired-narrow-autoloads dired-subtree-autoloads dired-hacks-utils-autoloads dracula-theme-autoloads dumb-jump-autoloads ef-themes-autoloads eimp-autoloads elm-mode-autoloads embark-consult-autoloads consult-autoloads embark-autoloads ement-autoloads emms-autoloads envrc-autoloads erc-hl-nicks-autoloads ess-autoloads expand-region-autoloads flycheck-indicator-autoloads flycheck-rust-autoloads flycheck-autoloads git-annex-autoloads go-mode-autoloads go-translate-autoloads goto-chg-autoloads graphviz-dot-mode-autoloads haskell-mode-autoloads highlight-indent-guides-autoloads hl-todo-autoloads http-autoloads indium-autoloads company-autoloads inf-ruby-autoloads inheritenv-autoloads jinx-autoloads js2-refactor-autoloads js2-mode-autoloads json-mode-autoloads json-process-client-autoloads json-snatcher-autoloads kaolin-themes-autoloads autothemer-autoloads khardel-autoloads link-hint-autoloads magit-annex-autoloads magit-autoloads pcase marginalia-autoloads markdown-mode-autoloads mastodon-autoloads mermaid-mode-autoloads minions-autoloads modus-themes-autoloads mu4e-autoloads multiple-cursors-autoloads nextflow-mode-autoloads groovy-mode-autoloads nix-mode-autoloads no-littering-autoloads noccur-autoloads nov-autoloads esxml-autoloads kv-autoloads ob-mermaid-autoloads org-appear-autoloads org-bulletproof-autoloads org-clock-csv-autoloads org-clock-dbus-autoloads org-edna-autoloads org-mime-autoloads org-modern-autoloads org-ref-autoloads citeproc-autoloads bibtex-completion-autoloads biblio-autoloads biblio-core-autoloads avy-autoloads hydra-autoloads lv-autoloads htmlize-autoloads org-roam-autoloads emacsql-autoloads org-tree-slide-autoloads orgalist-autoloads ox-gfm-autoloads ox-pandoc-autoloads ht-autoloads org-autoloads package-lint-autoloads parsebib-autoloads pass-autoloads f-autoloads password-store-otp-autoloads password-store-autoloads pdf-tools-autoloads persist-autoloads plantuml-mode-autoloads plz-autoloads poet-theme-autoloads popup-autoloads puni-autoloads easy-mmode purescript-mode-autoloads queue-autoloads rainbow-mode-autoloads reformatter-autoloads request-autoloads resize-window-autoloads rg-autoloads rotate-autoloads ruby-end-autoloads rust-mode-autoloads s-autoloads sage-shell-mode-autoloads rx deferred-autoloads scad-mode-autoloads separedit-autoloads edit-indirect-autoloads string-inflection-autoloads svg-lib-autoloads tablist-autoloads taxy-magit-section-autoloads taxy-autoloads magit-section-autoloads transient-autoloads tron-legacy-theme-autoloads typescript-mode-autoloads vertico-prescient-autoloads vertico-autoloads prescient-autoloads visual-fill-autoloads vlf-autoloads vterm-autoloads weyland-yutani-theme-autoloads wgrep-autoloads winum-autoloads dash-autoloads info with-editor-autoloads yaml-mode-autoloads yasnippet-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 icons 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/pgtk-win pgtk-win term/common-win touch-screen pgtk-dnd 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 dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo gtk pgtk multi-tty move-toolbar make-network-process native-compile emacs) Memory information: ((conses 16 2319955 744147) (symbols 48 73676 45) (strings 32 374965 33553) (string-bytes 1 33650409) (vectors 16 272547) (vector-slots 8 5012203 622028) (floats 8 23040 16435) (intervals 56 134224 5722) (buffers 992 222)) -- Peter J. Jones (he/him) blog: https://freerangebits.com social: https://fosstodon.org/@devalot code: https://github.com/pjones
bug-gnu-emacs <at> gnu.org
:bug#78097
; Package emacs
.
(Sat, 03 May 2025 08:57:01 GMT) Full text and rfc822 format available.Message #8 received at 78097 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: "Peter J. Jones" <mlists <at> devalot.com>, Stefan Monnier <monnier <at> iro.umontreal.ca> Cc: 78097 <at> debbugs.gnu.org Subject: Re: bug#78097: 30.1; editorconfig can pass nil to file-name-directory Date: Sat, 03 May 2025 11:56:31 +0300
> From: "Peter J. Jones" <mlists <at> devalot.com> > Date: Sun, 27 Apr 2025 14:58:50 +0200 > > When a function called from `editorconfig-get-local-variables-functions' > returns an alist, but there is no .editorconfig file in the directory > tree, the `editorconfig--get-dir-local-variables' function will pass nil > to `file-name-directory', causing an error (stringp nil). > > This happens because `editorconfig--get-dir-local-variables' calls > `editorconfig-core-get-nearest-editorconfig', which returns nil, and > passes that nil on to `file-name-directory'. > > The following patch fixes the problem: > > --- editorconfig.el.orig 2025-04-27 14:52:35.208707072 +0200 > +++ editorconfig.el 2025-04-27 14:53:19.423741999 +0200 > @@ -739,11 +739,10 @@ > ;; settings from each file individually and let hack-dir-local merge > ;; them because hack-dir-local doesn't have the notion of "unset", > ;; and because the conversion of `indent_size' depends on `tab_width'. > - (when alist > - (cons > - (file-name-directory (editorconfig-core-get-nearest-editorconfig > - buffer-file-name)) > - alist))))) > + (when-let* ((alist) > + (file (editorconfig-core-get-nearest-editorconfig > + buffer-file-name))) > + (cons (file-name-directory file) alist))))) > > ;;;###autoload > (define-minor-mode editorconfig-mode Thanks. Stefan, any comments? If the patch is okay, on what branch should it be installed?
bug-gnu-emacs <at> gnu.org
:bug#78097
; Package emacs
.
(Sat, 03 May 2025 14:15:02 GMT) Full text and rfc822 format available.Message #11 received at 78097 <at> debbugs.gnu.org (full text, mbox):
From: Stefan Monnier <monnier <at> iro.umontreal.ca> To: "Peter J. Jones" <mlists <at> devalot.com> Cc: 78097 <at> debbugs.gnu.org Subject: Re: bug#78097: 30.1; editorconfig can pass nil to file-name-directory Date: Sat, 03 May 2025 10:13:53 -0400
> When a function called from > `editorconfig-get-local-variables-functions' returns an alist, but > there is no .editorconfig file in the directory tree, Could you give a concrete example of how this can happen? > the `editorconfig--get-dir-local-variables' function will pass nil > to `file-name-directory', causing an error (stringp nil). > This happens because `editorconfig--get-dir-local-variables' calls > `editorconfig-core-get-nearest-editorconfig', which returns nil, and > passes that nil on to `file-name-directory'. Indeed. > The following patch fixes the problem: > > --- editorconfig.el.orig 2025-04-27 14:52:35.208707072 +0200 > +++ editorconfig.el 2025-04-27 14:53:19.423741999 +0200 > @@ -739,11 +739,10 @@ > ;; settings from each file individually and let hack-dir-local merge > ;; them because hack-dir-local doesn't have the notion of "unset", > ;; and because the conversion of `indent_size' depends on `tab_width'. > - (when alist > - (cons > - (file-name-directory (editorconfig-core-get-nearest-editorconfig > - buffer-file-name)) > - alist))))) > + (when-let* ((alist) > + (file (editorconfig-core-get-nearest-editorconfig > + buffer-file-name))) > + (cons (file-name-directory file) alist))))) Without knowing why `editorconfig-core-get-nearest-editorconfig` returns nil even though `alist` is non-nil, I can't judge if this is a real fix or just a quick workaround. Another quick workaround that has the advantage of not throwing away the `alist` would be something like the patch below. Stefan diff --git a/lisp/editorconfig.el b/lisp/editorconfig.el index 7cdd79fa3b0..69e95c9a006 100644 --- a/lisp/editorconfig.el +++ b/lisp/editorconfig.el @@ -736,8 +736,10 @@ editorconfig--get-dir-local-variables ;; and because the conversion of `indent_size' depends on `tab_width'. (when alist (cons - (file-name-directory (editorconfig-core-get-nearest-editorconfig - buffer-file-name)) + (let ((ecfile (editorconfig-core-get-nearest-editorconfig + buffer-file-name))) + ;; `ecfile' can be nil!?! (bug#78097) + (file-name-directory (or ecfile buffer-file-name))) alist))))) ;;;###autoload
bug-gnu-emacs <at> gnu.org
:bug#78097
; Package emacs
.
(Sun, 04 May 2025 15:56:04 GMT) Full text and rfc822 format available.Message #14 received at 78097 <at> debbugs.gnu.org (full text, mbox):
From: Stefan Monnier <monnier <at> iro.umontreal.ca> To: "Peter J. Jones" <mlists <at> devalot.com> Cc: 78097 <at> debbugs.gnu.org Subject: Re: bug#78097: 30.1; editorconfig can pass nil to file-name-directory Date: Sun, 04 May 2025 11:55:21 -0400
>> Could you give a concrete example of how this can happen? > > Yes. I want to have `delete-trailing-whitespace' in a `before-save' > hook by default but still allow editor config to remove it if > "trim_trailing_whitespace" is set to false in the current project. So I > wrote the following function and put it in > `editorconfig-get-local-variables-functions': > > (defun pjones:editorconfig-apply-trim-whitespace (props) > "Conditionally change the trim_trailing_whitespace setting. > > Enable whitespace trimming unless the editor configuration file > explicitly disables it. PROPS is the hash from the editor configuration > file." > (when (null (gethash 'trim_trailing_whitespace props)) > (puthash 'trim_trailing_whitespace "true" props) > (editorconfig--get-trailing-ws props))) I see, thanks. FWIW, the fact that `editorconfig-get-local-variables-functions' is run when there are no `.editorconfig` files is an accident. > Projects that don't have editor configuration files trigger the bug > where nil is passed to `file-name-directory'. IIUC the patch you sent silences the error but also has the effect that AFAICT it does not enable `delete-trailing-whitespace` in those files for which there is no `.editorconfig`, contrarily to what I understood to be your goal. Was that on purpose? Stefan
bug-gnu-emacs <at> gnu.org
:bug#78097
; Package emacs
.
(Sun, 04 May 2025 17:15:03 GMT) Full text and rfc822 format available.Message #17 received at 78097 <at> debbugs.gnu.org (full text, mbox):
From: "Peter J. Jones" <mlists <at> devalot.com> To: Stefan Monnier <monnier <at> iro.umontreal.ca> Cc: 78097 <at> debbugs.gnu.org Subject: Re: bug#78097: 30.1; editorconfig can pass nil to file-name-directory Date: Sun, 04 May 2025 14:21:39 +0200
On Sat, May 03 2025, Stefan Monnier wrote: >> When a function called from >> `editorconfig-get-local-variables-functions' returns an alist, but >> there is no .editorconfig file in the directory tree, > > Could you give a concrete example of how this can happen? Yes. I want to have `delete-trailing-whitespace' in a `before-save' hook by default but still allow editor config to remove it if "trim_trailing_whitespace" is set to false in the current project. So I wrote the following function and put it in `editorconfig-get-local-variables-functions': (defun pjones:editorconfig-apply-trim-whitespace (props) "Conditionally change the trim_trailing_whitespace setting. Enable whitespace trimming unless the editor configuration file explicitly disables it. PROPS is the hash from the editor configuration file." (when (null (gethash 'trim_trailing_whitespace props)) (puthash 'trim_trailing_whitespace "true" props) (editorconfig--get-trailing-ws props))) Projects that don't have editor configuration files trigger the bug where nil is passed to `file-name-directory'. Thank you.
bug-gnu-emacs <at> gnu.org
:bug#78097
; Package emacs
.
(Mon, 05 May 2025 07:19:03 GMT) Full text and rfc822 format available.Message #20 received at 78097 <at> debbugs.gnu.org (full text, mbox):
From: "Peter J. Jones" <mlists <at> devalot.com> To: Stefan Monnier <monnier <at> iro.umontreal.ca> Cc: 78097 <at> debbugs.gnu.org Subject: Re: bug#78097: 30.1; editorconfig can pass nil to file-name-directory Date: Mon, 05 May 2025 09:14:50 +0200
On Sun, May 04 2025, Stefan Monnier wrote: >>> Could you give a concrete example of how this can happen? >> >> Yes. I want to have `delete-trailing-whitespace' in a `before-save' >> hook by default but still allow editor config to remove it if >> "trim_trailing_whitespace" is set to false in the current project. So I >> wrote the following function and put it in >> `editorconfig-get-local-variables-functions': >> >> (defun pjones:editorconfig-apply-trim-whitespace (props) >> "Conditionally change the trim_trailing_whitespace setting. >> >> Enable whitespace trimming unless the editor configuration file >> explicitly disables it. PROPS is the hash from the editor configuration >> file." >> (when (null (gethash 'trim_trailing_whitespace props)) >> (puthash 'trim_trailing_whitespace "true" props) >> (editorconfig--get-trailing-ws props))) > > I see, thanks. > > FWIW, the fact that `editorconfig-get-local-variables-functions' is run > when there are no `.editorconfig` files is an accident. The reason I was using `editorconfig-get-local-variables-functions' is because both `editorconfig-after-apply-functions' and `editorconfig-hack-properties-functions' are documented to behave that way but are deprecated and `editorconfig-hack-properties-functions' reports that `editorconfig-get-local-variables-functions' should be used instead. If none of these hooks are available for this purpose can you recommend a way that I can achieve my goal? >> Projects that don't have editor configuration files trigger the bug >> where nil is passed to `file-name-directory'. > > IIUC the patch you sent silences the error but also has the effect that > AFAICT it does not enable `delete-trailing-whitespace` in those files > for which there is no `.editorconfig`, contrarily to what I understood > to be your goal. > > Was that on purpose? No. I was starting to suspect that it wasn't working and after seeing your patch I now know it's most definitely not working! I was so deep in the weeds trying to fix the "stringp nil" issue that I never went back to see if my fix actually worked. Sorry about that. Your patch makes a lot more sense than the non-functional hack I first posted. Thanks for the help! -- Peter J. Jones (he/him) blog: https://freerangebits.com social: https://fosstodon.org/@devalot code: https://github.com/pjones
bug-gnu-emacs <at> gnu.org
:bug#78097
; Package emacs
.
(Mon, 05 May 2025 13:57:01 GMT) Full text and rfc822 format available.Message #23 received at 78097 <at> debbugs.gnu.org (full text, mbox):
From: Stefan Monnier <monnier <at> iro.umontreal.ca> To: "Peter J. Jones" <mlists <at> devalot.com> Cc: 78097 <at> debbugs.gnu.org Subject: Re: bug#78097: 30.1; editorconfig can pass nil to file-name-directory Date: Mon, 05 May 2025 09:55:56 -0400
>> FWIW, the fact that `editorconfig-get-local-variables-functions' is run >> when there are no `.editorconfig` files is an accident. > The reason I was using `editorconfig-get-local-variables-functions' is > because both `editorconfig-after-apply-functions' and > `editorconfig-hack-properties-functions' are documented to behave that > way but are deprecated and `editorconfig-hack-properties-functions' > reports that `editorconfig-get-local-variables-functions' should be used > instead. > If none of these hooks are available for this purpose can you recommend > a way that I can achieve my goal? I'm afraid I don't have a ready answer for it. Maybe something like: (add-hook 'change-major-mode-after-body-hook #'my-global-file-defaults) (defun my-global-file-defaults () (when buffer-file-name (add-hook 'before-save-hook #'editorconfig--delete-trailing-whitespace nil t))) Obviously, Emacs lacks an official "delete-trailing-whitespace mode": the above should not have to rely on an editorconfig-specific function. 🙁 > No. I was starting to suspect that it wasn't working and after seeing > your patch I now know it's most definitely not working! I was so deep > in the weeds trying to fix the "stringp nil" issue that I never went > back to see if my fix actually worked. Sorry about that. We've all been there. 🙂 Thanks for confirming my suspicion. Stefan
bug-gnu-emacs <at> gnu.org
:bug#78097
; Package emacs
.
(Sat, 17 May 2025 08:16:02 GMT) Full text and rfc822 format available.Message #26 received at 78097 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: monnier <at> iro.umontreal.ca, "Peter J. Jones" <mlists <at> devalot.com> Cc: 78097 <at> debbugs.gnu.org Subject: Re: bug#78097: 30.1; editorconfig can pass nil to file-name-directory Date: Sat, 17 May 2025 11:15:39 +0300
Ping! How should we proceed with this issue? Was it resolved? > Cc: 78097 <at> debbugs.gnu.org > From: "Peter J. Jones" <mlists <at> devalot.com> > Date: Mon, 05 May 2025 09:14:50 +0200 > > On Sun, May 04 2025, Stefan Monnier wrote: > >>> Could you give a concrete example of how this can happen? > >> > >> Yes. I want to have `delete-trailing-whitespace' in a `before-save' > >> hook by default but still allow editor config to remove it if > >> "trim_trailing_whitespace" is set to false in the current project. So I > >> wrote the following function and put it in > >> `editorconfig-get-local-variables-functions': > >> > >> (defun pjones:editorconfig-apply-trim-whitespace (props) > >> "Conditionally change the trim_trailing_whitespace setting. > >> > >> Enable whitespace trimming unless the editor configuration file > >> explicitly disables it. PROPS is the hash from the editor configuration > >> file." > >> (when (null (gethash 'trim_trailing_whitespace props)) > >> (puthash 'trim_trailing_whitespace "true" props) > >> (editorconfig--get-trailing-ws props))) > > > > I see, thanks. > > > > FWIW, the fact that `editorconfig-get-local-variables-functions' is run > > when there are no `.editorconfig` files is an accident. > > The reason I was using `editorconfig-get-local-variables-functions' is > because both `editorconfig-after-apply-functions' and > `editorconfig-hack-properties-functions' are documented to behave that > way but are deprecated and `editorconfig-hack-properties-functions' > reports that `editorconfig-get-local-variables-functions' should be used > instead. > > If none of these hooks are available for this purpose can you recommend > a way that I can achieve my goal? > > >> Projects that don't have editor configuration files trigger the bug > >> where nil is passed to `file-name-directory'. > > > > IIUC the patch you sent silences the error but also has the effect that > > AFAICT it does not enable `delete-trailing-whitespace` in those files > > for which there is no `.editorconfig`, contrarily to what I understood > > to be your goal. > > > > Was that on purpose? > > No. I was starting to suspect that it wasn't working and after seeing > your patch I now know it's most definitely not working! I was so deep > in the weeds trying to fix the "stringp nil" issue that I never went > back to see if my fix actually worked. Sorry about that. > > Your patch makes a lot more sense than the non-functional hack I first > posted. > > Thanks for the help! > > -- > Peter J. Jones (he/him) > blog: https://freerangebits.com > social: https://fosstodon.org/@devalot > code: https://github.com/pjones > > > >
bug-gnu-emacs <at> gnu.org
:bug#78097
; Package emacs
.
(Sat, 17 May 2025 15:17:02 GMT) Full text and rfc822 format available.Message #29 received at 78097 <at> debbugs.gnu.org (full text, mbox):
From: Stefan Monnier <monnier <at> iro.umontreal.ca> To: "Peter J. Jones" <mlists <at> devalot.com> Cc: 78097 <at> debbugs.gnu.org Subject: Re: bug#78097: 30.1; editorconfig can pass nil to file-name-directory Date: Sat, 17 May 2025 11:15:54 -0400
>>> FWIW, the fact that `editorconfig-get-local-variables-functions' is run >>> when there are no `.editorconfig` files is an accident. >> The reason I was using `editorconfig-get-local-variables-functions' is >> because both `editorconfig-after-apply-functions' and >> `editorconfig-hack-properties-functions' are documented to behave that >> way but are deprecated and `editorconfig-hack-properties-functions' >> reports that `editorconfig-get-local-variables-functions' should be used >> instead. >> If none of these hooks are available for this purpose can you recommend >> a way that I can achieve my goal? > > I'm afraid I don't have a ready answer for it. > Maybe something like: > > (add-hook 'change-major-mode-after-body-hook #'my-global-file-defaults) > (defun my-global-file-defaults () > (when buffer-file-name > (add-hook 'before-save-hook > #'editorconfig--delete-trailing-whitespace nil t))) > > Obviously, Emacs lacks an official "delete-trailing-whitespace mode": > the above should not have to rely on an editorconfig-specific function. > 🙁 There is now a `delete-trailing-whitespace-mode` in `master, so the above snippet can be updated to something like: (add-hook 'change-major-mode-after-body-hook #'my-global-file-defaults) (defun my-global-file-defaults () (when buffer-file-name (if (fboundp 'delete-trailing-whitespace-mode) ;; Emacs≥31 (delete-trailing-whitespace-mode 1) (add-hook 'before-save-hook #'editorconfig--delete-trailing-whitespace nil t)))) Eli writes: > Ping! How should we proceed with this issue? Was it resolved? I think the above provides the OP with a good alternative solution. Their code relied on an accidental "feature" which is that `editorconfig-get-local-variables-functions` is run even if we found no `.editorconfig` settings. I think that in the absence of such settings, `editorconfig-mode` should have no effect, so I suggest we install the patch below. I'd lean towards pushing it to `master` rather than `emacs-30`. Stefan 2025-05-17 Stefan Monnier <monnier <at> iro.umontreal.ca> * lisp/editorconfig.el (editorconfig--get-dir-local-variables): Don't run `editorconfig-get-local-variables-functions` when we found no EditorConfig settings since that hook's purpose is "to convert EditorConfig settings to their Emacs equivalent". diff --git a/lisp/editorconfig.el b/lisp/editorconfig.el index bfc8ef46ed3..3658343cfac 100644 --- a/lisp/editorconfig.el +++ b/lisp/editorconfig.el @@ -709,7 +708,8 @@ editorconfig--get-dir-local-variables Meant to be used on `hack-dir-local-get-variables-functions'." (when (stringp buffer-file-name) (let* ((props (editorconfig-call-get-properties-function buffer-file-name)) - (alist (editorconfig--get-local-variables props))) + (alist (if (< 0 (hash-table-count props)) + (editorconfig--get-local-variables props)))) ;; FIXME: If there's `/foo/.editorconfig', `/foo/bar/.dir-locals.el', ;; and `/foo/bar/baz/.editorconfig', it would be nice to return two ;; pairs here, so that hack-dir-local can give different priorities
bug-gnu-emacs <at> gnu.org
:bug#78097
; Package emacs
.
(Sat, 17 May 2025 15:36:02 GMT) Full text and rfc822 format available.Message #32 received at 78097 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Stefan Monnier <monnier <at> iro.umontreal.ca> Cc: 78097 <at> debbugs.gnu.org, mlists <at> devalot.com Subject: Re: bug#78097: 30.1; editorconfig can pass nil to file-name-directory Date: Sat, 17 May 2025 18:35:25 +0300
> Cc: 78097 <at> debbugs.gnu.org > Date: Sat, 17 May 2025 11:15:54 -0400 > From: Stefan Monnier via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org> > > >>> FWIW, the fact that `editorconfig-get-local-variables-functions' is run > >>> when there are no `.editorconfig` files is an accident. > >> The reason I was using `editorconfig-get-local-variables-functions' is > >> because both `editorconfig-after-apply-functions' and > >> `editorconfig-hack-properties-functions' are documented to behave that > >> way but are deprecated and `editorconfig-hack-properties-functions' > >> reports that `editorconfig-get-local-variables-functions' should be used > >> instead. > >> If none of these hooks are available for this purpose can you recommend > >> a way that I can achieve my goal? > > > > I'm afraid I don't have a ready answer for it. > > Maybe something like: > > > > (add-hook 'change-major-mode-after-body-hook #'my-global-file-defaults) > > (defun my-global-file-defaults () > > (when buffer-file-name > > (add-hook 'before-save-hook > > #'editorconfig--delete-trailing-whitespace nil t))) > > > > Obviously, Emacs lacks an official "delete-trailing-whitespace mode": > > the above should not have to rely on an editorconfig-specific function. > > 🙁 > > There is now a `delete-trailing-whitespace-mode` in `master, so the > above snippet can be updated to something like: > > (add-hook 'change-major-mode-after-body-hook #'my-global-file-defaults) > (defun my-global-file-defaults () > (when buffer-file-name > (if (fboundp 'delete-trailing-whitespace-mode) ;; Emacs≥31 > (delete-trailing-whitespace-mode 1) > (add-hook 'before-save-hook > #'editorconfig--delete-trailing-whitespace nil t)))) > > Eli writes: > > Ping! How should we proceed with this issue? Was it resolved? > > I think the above provides the OP with a good alternative solution. > Their code relied on an accidental "feature" which is that > `editorconfig-get-local-variables-functions` is run even if we found no > `.editorconfig` settings. I think that in the absence of such settings, > `editorconfig-mode` should have no effect, so I suggest we install the > patch below. > > I'd lean towards pushing it to `master` rather than `emacs-30`. Fine by me, thanks.
Stefan Monnier <monnier <at> iro.umontreal.ca>
:"Peter J. Jones" <mlists <at> devalot.com>
:Message #37 received at 78097-done <at> debbugs.gnu.org (full text, mbox):
From: Stefan Monnier <monnier <at> iro.umontreal.ca> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 78097-done <at> debbugs.gnu.org, mlists <at> devalot.com Subject: Re: bug#78097: 30.1; editorconfig can pass nil to file-name-directory Date: Mon, 19 May 2025 18:34:47 -0400
> Fine by me, thanks. Done, closing, Stefan
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Tue, 17 Jun 2025 11:24:13 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.