unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#68692: 29.1; File-local variable storage for strings with newlines
@ 2024-01-24 17:21 Karthik Chikmagalur
  2024-01-24 17:31 ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Karthik Chikmagalur @ 2024-01-24 17:21 UTC (permalink / raw)
  To: 68692


Storing file-local variables whose values are strings that include
newlines triggers an error when the file is opened.

To reproduce:

1. Create a file with this file local variable:

--8<---------------cut here---------------start------------->8---
(defvar testvar nil)
(find-file "/tmp/test.txt")
(insert "Some text\n\n")
(add-file-local-variable 'testvar "Data on\ntwo lines")
--8<---------------cut here---------------end--------------->8---

The buffer test.txt now looks like this:

--8<---------------cut here---------------start------------->8---
Some text

;; Local Variables:
;; testvar: "Data on
two lines"
;; End:
--8<---------------cut here---------------end--------------->8---

Saving and killing test.txt and repopening it causes the error:

--8<---------------cut here---------------start------------->8---
File mode specification error: (user-error Local variables entry is missing the prefix)
--8<---------------cut here---------------end--------------->8---

Turning on toggle-debug-on-error does not produce a backtrace.

Is it not possible to store strings with newlines as the values of
file-local variables? The elisp manual makes no mention of this
limitation in the file-local vars section -- perhaps I missed something?

Karthik

-------------------------------------------------------
System details:


In GNU Emacs 29.1 (build 1, x86_64-pc-linux-gnu, X toolkit, cairo
version 1.18.0, Xaw3d scroll bars)
Windowing system distributor 'The X.Org Foundation', version 11.0.12101009
System Description: NixOS 23.11 (Tapir)

Configured using:
 'configure
 --prefix=/nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1
 --disable-build-details --with-modules --with-x-toolkit=lucid
 --with-xft --with-cairo --with-native-compilation --with-tree-sitter
 --with-xinput2'

Configured features:
CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON
LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY
INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF
TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XAW3D XDBE XIM XINPUT2 XPM
LUCID ZLIB

Important settings:
  value of $EMACSLOADPATH: 
  value of $EMACSNATIVELOADPATH: 
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/site-start hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/site-lisp/site-start
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/transient-20231112.923/transient hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/transient
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-ditaa hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-ditaa
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-fold-core hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-fold-core
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-clock hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-clock
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-comint hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-comint
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-ref hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-ref
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-odt hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-odt
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-num hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-num
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-python hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-python
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-docview hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-docview
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/oc
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-fold hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-fold
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-java hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-java
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-sass hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-sass
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-footnote hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-footnote
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-eval hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-eval
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-refile hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-refile
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-R hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-R
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-sed hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-sed
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-compat hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-compat
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-js hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-js
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-gnus hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-gnus
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-eshell hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-eshell
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-lint hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-lint
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-awk hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-awk
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-id hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-id
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-attach-git hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-attach-git
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-src hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-src
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc-natbib hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/oc-natbib
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-md hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-md
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-agenda hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-agenda
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-html hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-html
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-shell hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-shell
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-ctags hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-ctags
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-maxima hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-maxima
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-ruby hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-ruby
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-habit hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-habit
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-eww hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-eww
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-inlinetask hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-inlinetask
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-tempo hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-tempo
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-julia hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-julia
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-processing hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-processing
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-duration hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-duration
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-archive hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-archive
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-timer hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-timer
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-sqlite hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-sqlite
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-groovy hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-groovy
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc-csl hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/oc-csl
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc-biblatex hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/oc-biblatex
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-scheme hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-scheme
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-mouse hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-mouse
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-indent hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-indent
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-loaddefs hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-loaddefs
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-crypt hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-crypt
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc-bibtex hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/oc-bibtex
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-octave hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-octave
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-eshell hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-eshell
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-pcomplete hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-pcomplete
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-element hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-element
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-core hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-core
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-man hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-man
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-haskell hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-haskell
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-sql hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-sql
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-publish hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-publish
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-matlab hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-matlab
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-plot hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-plot
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-css hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-css
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-attach hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-attach
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-perl hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-perl
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-clojure hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-clojure
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-dot hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-dot
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-screen hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-screen
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-texinfo hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-texinfo
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-macro hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-macro
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-irc hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-irc
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-C hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-C
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-ocaml hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-ocaml
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-calc hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-calc
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-w3m hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-w3m
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-rmail hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-rmail
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-macs hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-macs
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-gnuplot hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-gnuplot
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-lisp hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-lisp
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-version hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-version
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-persist hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-persist
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-colview hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-colview
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-datetree hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-datetree
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-cycle hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-cycle
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-koma-letter hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-koma-letter
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-beamer hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-beamer
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-lob hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-lob
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-lua hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-lua
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-list hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-list
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-icalendar hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-icalendar
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-lilypond hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-lilypond
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-mhe hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-mhe
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-bbdb hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-bbdb
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-plantuml hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-plantuml
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-man hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-man
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-doi hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-doi
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-latex hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-latex
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-mobile hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-mobile
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-feed hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-feed
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-faces hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-faces
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-entities hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-entities
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-keys hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-keys
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-tangle hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-tangle
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-org hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-org
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-forth hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-forth
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-goto hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-goto
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-makefile hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-makefile
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-table hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-table
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-bibtex hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-bibtex
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-emacs-lisp hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-emacs-lisp
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-protocol hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-protocol
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-ascii hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-ascii
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-fortran hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-fortran
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-latex hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-latex
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ol-info hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ol-info
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-capture hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-capture
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/org-table hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/org-table
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ob-exp hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ob-exp
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/ox-org hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/ox-org
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/org-9.6.12/oc-basic hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/org/oc-basic
/nix/store/x1n5gkd710d5f0hz9l48wfrh07f1672w-emacs-packages-deps/share/emacs/site-lisp/elpa/let-alist-1.0.6/let-alist hides /nix/store/0g4xxdsn4xp9qhgc4cylbksqpwsn51vc-emacs-29.1/share/emacs/29.1/lisp/emacs-lisp/let-alist

Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg rfc6068
epg-config gnus-util text-property-search time-date mm-decode mm-bodies
mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader cl-loaddefs
comp comp-cstr warnings icons subr-x rx cl-seq cl-macs gv cl-extra
help-mode bytecomp byte-compile cl-lib sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils rmc iso-transl tooltip cconv
eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd
fontset image regexp-opt fringe tabulated-list replace newcomment
text-mode 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 x-toolkit
xinput2 x multi-tty make-network-process native-compile emacs)

Memory information:
((conses 16 80602 8762)
 (symbols 48 7211 0)
 (strings 32 20816 2031)
 (string-bytes 1 680017)
 (vectors 16 15794)
 (vector-slots 8 330154 13837)
 (floats 8 29 22)
 (intervals 56 367 0)
 (buffers 984 12))





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#68692: 29.1; File-local variable storage for strings with newlines
  2024-01-24 17:21 bug#68692: 29.1; File-local variable storage for strings with newlines Karthik Chikmagalur
@ 2024-01-24 17:31 ` Eli Zaretskii
       [not found]   ` <877cjw3hwc.fsf@gmail.com>
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2024-01-24 17:31 UTC (permalink / raw)
  To: Karthik Chikmagalur; +Cc: 68692

> From: Karthik Chikmagalur <karthikchikmagalur@gmail.com>
> Date: Wed, 24 Jan 2024 09:21:47 -0800
> 
> 
> Storing file-local variables whose values are strings that include
> newlines triggers an error when the file is opened.

That's because you violated the supported format.

> The buffer test.txt now looks like this:
> 
> --8<---------------cut here---------------start------------->8---
> Some text
> 
> ;; Local Variables:
> ;; testvar: "Data on
> two lines"
> ;; End:
> --8<---------------cut here---------------end--------------->8---
> 
> Saving and killing test.txt and repopening it causes the error:
> 
> --8<---------------cut here---------------start------------->8---
> File mode specification error: (user-error Local variables entry is missing the prefix)
> --8<---------------cut here---------------end--------------->8---
> 
> Turning on toggle-debug-on-error does not produce a backtrace.
> 
> Is it not possible to store strings with newlines as the values of
> file-local variables? The elisp manual makes no mention of this
> limitation in the file-local vars section -- perhaps I missed something?

I think you missed this part in the Emacs user manual:

     A local variables list starts with a line containing the string
  ‘Local Variables:’, and ends with a line containing the string ‘End:’.
  In between come the variable names and values, one set per line, like
  this:

       /* Local Variables:  */
       /* mode: c           */
       /* comment-column: 0 */
       /* End:              */

  In this example, each line starts with the prefix ‘/*’ and ends with the
  suffix ‘*/’.

Note the last sentence.

The manual says a little after the above:

                                                If you want to split a
  long string value across multiple lines of the file, you can use
  backslash-newline, which is ignored in Lisp string constants; you should
  put the prefix and suffix on each line, even lines that start or end
  within the string, as they will be stripped off when processing the
  list.  Here is an example:

       # Local Variables:
       # compile-command: "cc foo.c -Dfoo=bar -Dhack=whatever \
       #   -Dmumble=blaah"
       # End:

Which I believe is what you are looking for.

I don't think there's a bug in Emacs here.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#68692: 29.1; File-local variable storage for strings with newlines
       [not found]   ` <877cjw3hwc.fsf@gmail.com>
@ 2024-01-26  8:03     ` Eli Zaretskii
  2024-01-26 19:49       ` Karthik Chikmagalur
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2024-01-26  8:03 UTC (permalink / raw)
  To: Karthik Chikmagalur; +Cc: 68692-done

[Please use Reply All when replying, to have the bug tracker CC'ed.]

> From: Karthik Chikmagalur <karthikchikmagalur@gmail.com>
> Date: Thu, 25 Jan 2024 19:14:43 -0800
> 
> Hello Eli,
> 
> Please close this bug, I read the local variables section of the elisp
> manual but missed the Emacs one.

I'm therefore closing this bug.

> However, I have a question now.
> 
> > The manual says a little after the above:
> >
> >                                                 If you want to split a
> >   long string value across multiple lines of the file, you can use
> >   backslash-newline, which is ignored in Lisp string constants; you should
> >   put the prefix and suffix on each line, even lines that start or end
> >   within the string, as they will be stripped off when processing the
> >   list.  Here is an example:
> >
> >        # Local Variables:
> >        # compile-command: "cc foo.c -Dfoo=bar -Dhack=whatever \
> >        #   -Dmumble=blaah"
> >        # End:
> >
> > Which I believe is what you are looking for.
> >
> > I don't think there's a bug in Emacs here.
> 
> Is there a programmatic way (using elisp) to insert a local variable
> value that is a string that extends over multiple lines, as in my
> original example?  I can write a helper function to replace newlines
> with backslash-newlines, but determining the right suffix to add at the
> end of each line is tricky.

We have add-file-local-variable and modify-file-local-variable -- did
you try any of them?  If they don't handle this case, we need to fix
them so they do.

> I am addressing this right now by let-binding `print-escape-newlines' to
> t around calls to `add-file-local-variable', but perhaps there is a
> better way.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#68692: 29.1; File-local variable storage for strings with newlines
  2024-01-26  8:03     ` Eli Zaretskii
@ 2024-01-26 19:49       ` Karthik Chikmagalur
  2024-01-26 20:16         ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Karthik Chikmagalur @ 2024-01-26 19:49 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 68692-done

>> Is there a programmatic way (using elisp) to insert a local variable
>> value that is a string that extends over multiple lines, as in my
>> original example?  I can write a helper function to replace newlines
>> with backslash-newlines, but determining the right suffix to add at the
>> end of each line is tricky.
>
> We have add-file-local-variable and modify-file-local-variable -- did
> you try any of them?  If they don't handle this case, we need to fix
> them so they do.

Yes, I tried both, and they don't handle this case correctly. (My
original bug report used add-file-local-variable in the reproduction
instructions.)

Should this be filed as a bug, or should I email emacs-devel about this?
I don't know how to solve it beyond let-binding print-escape-newlines to
t in modify-file-local-variable -- I don't know if this can cause other
problems.

Karthik





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#68692: 29.1; File-local variable storage for strings with newlines
  2024-01-26 19:49       ` Karthik Chikmagalur
@ 2024-01-26 20:16         ` Eli Zaretskii
  0 siblings, 0 replies; 5+ messages in thread
From: Eli Zaretskii @ 2024-01-26 20:16 UTC (permalink / raw)
  To: Karthik Chikmagalur; +Cc: 68692

> From: Karthik Chikmagalur <karthikchikmagalur@gmail.com>
> Cc: 68692-done@debbugs.gnu.org
> Date: Fri, 26 Jan 2024 11:49:51 -0800
> 
> > We have add-file-local-variable and modify-file-local-variable -- did
> > you try any of them?  If they don't handle this case, we need to fix
> > them so they do.
> 
> Yes, I tried both, and they don't handle this case correctly. (My
> original bug report used add-file-local-variable in the reproduction
> instructions.)
> 
> Should this be filed as a bug, or should I email emacs-devel about this?

Please file a separate bug report with a recipe to reproduce the
problem, i.e. a recipe that shows how these functions fail to
update/add a variable whose value has an embedded newline.

Thanks.





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2024-01-26 20:16 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-24 17:21 bug#68692: 29.1; File-local variable storage for strings with newlines Karthik Chikmagalur
2024-01-24 17:31 ` Eli Zaretskii
     [not found]   ` <877cjw3hwc.fsf@gmail.com>
2024-01-26  8:03     ` Eli Zaretskii
2024-01-26 19:49       ` Karthik Chikmagalur
2024-01-26 20:16         ` Eli Zaretskii

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).