all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames
@ 2021-03-30  5:06 Vladimir Nikishkin
  2021-03-30  7:55 ` Michael Albinus
  0 siblings, 1 reply; 9+ messages in thread
From: Vladimir Nikishkin @ 2021-03-30  5:06 UTC (permalink / raw)
  To: 47493


Dear Emacs developers,

In order to avoid littering my file system with autosaves, I have the
following setting in my .emacs:

#+begin_src
(setq auto-save-file-name-transforms '((".*" "~/.emacs.d/autosave/" t)))
#+end_src

The t flag is the 'uniquify' flag, which roughly means "replace all
slashes by exclamation marks".

However, this way it is possible to create a file name that is invalid
for use in the file system tree, especially if the file you are editing
is deeply nested.

Would it be possible, to, maybe, add a flag "ensure-filesystem-correctness"?

Your sincerely,
Vladimir

In GNU Emacs 27.1 (build 1, x86_64-slackware-linux-gnu, GTK+ Version 3.24.24)
 of 2021-02-18 built on delllaptop.lockywolf.net
Windowing system distributor 'The X.Org Foundation', version 11.0.12010000
System Description: Slackware 14.2 x86_64 (post 14.2 -current)

Recent messages:
221 2.0.0 closing connection k127sm19044528pfd.63 - gsmtp
Successfully sent message via lockywolf-gmail account
Sending...done
[mu4e] Message sent
Quit
init.el has auto save data; consider M-x recover-this-file
Mark saved where search started
Mark set
(New file)
Mark set

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
--program-prefix= --program-suffix= --mandir=/usr/man
--infodir=/usr/info --without-gconf --without-gsettings --with-modules
--with-x --with-x-toolkit=gtk3 --with-xwidgets --with-pdumper=no
--with-dumping=unexec --build=x86_64-slackware-linux 'CFLAGS=-O2 -fPIC''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GLIB NOTIFY INOTIFY ACL GNUTLS
LIBXML2 FREETYPE HARFBUZZ XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 XDBE XIM
MODULES THREADS XWIDGETS JSON UNEXEC LCMS2 GMP

Important settings:
  value of $LC_COLLATE: C
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: mu4e-headers

Minor modes in effect:
  memento-mori-mode: t
  global-color-identifiers-mode: t
  erc-xdcc-mode: t
  erc-track-mode: t
  erc-spelling-mode: t
  erc-sound-mode: t
  erc-services-mode: t
  erc-ring-mode: t
  erc-page-mode: t
  erc-notifications-mode: t
  erc-notify-mode: t
  erc-networks-mode: t
  erc-netsplit-mode: t
  erc-menu-mode: t
  erc-match-mode: t
  erc-log-mode: t
  erc-list-mode: t
  erc-identd-mode: t
  erc-dcc-mode: t
  erc-pcomplete-mode: t
  erc-capab-identify-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-autojoin-mode: t
  erc-smiley-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-move-to-prompt-mode: t
  erc-readonly-mode: t
  erc-scrolltobottom-mode: t
  idle-org-agenda-mode: t
  hl-line-mode: t
  TeX-PDF-mode: t
  TeX-source-correlate-mode: t
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  async-bytecomp-package-mode: t
  shell-dirtrack-mode: t
  global-flycheck-mode: t
  gdb-many-windows: t
  global-company-mode: t
  company-mode: t
  auto-insert-mode: t
  global-srecode-minor-mode: t
  global-ede-mode: t
  global-semantic-mru-bookmark-mode: t
  global-semanticdb-minor-mode: t
  global-semantic-decoration-mode: t
  global-semantic-idle-completions-mode: t
  global-semantic-idle-scheduler-mode: t
  global-semantic-idle-summary-mode: t
  pdf-occur-global-minor-mode: t
  global-semantic-highlight-func-mode: t
  global-semantic-stickyfunc-mode: t
  global-semantic-show-parser-state-mode: t
  global-semantic-show-unmatched-syntax-mode: t
  global-semantic-highlight-edits-mode: t
  semantic-mode: t
  ido-ubiquitous-mode: t
  ido-everywhere: t
  global-auto-revert-mode: t
  electric-pair-mode: t
  global-display-line-numbers-mode: t
  global-display-fill-column-indicator-mode: t
  display-fill-column-indicator-mode: t
  global-hi-lock-mode: t
  hi-lock-mode: t
  savehist-mode: t
  recentf-mode: t
  super-save-mode: t
  xterm-mouse-mode: t
  override-global-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-layout-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  global-prettify-symbols-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  size-indication-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  auto-save-visited-mode: t
  abbrev-mode: t

Load-path shadows:
/home/lockywolf/.emacs.d/elpa/company-cmake-0.1/company-cmake hides /home/lockywolf/.emacs.d/elpa/company-20201028.136/company-cmake
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-publish hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-publish
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-odt hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-odt
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-texinfo hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-texinfo
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-man hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-man
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-md hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-md
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-latex hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-latex
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-html hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-html
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-ascii hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-ascii
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-timer hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-timer
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-tempo hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-tempo
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-table hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-table
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-src hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-src
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-refile hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-refile
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-protocol hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-protocol
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-plot hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-plot
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-pcomplete hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-pcomplete
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-org hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-org
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-icalendar hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-icalendar
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-beamer hides /home/lockywolf/.emacs.d/elpa/org-20201109/ox-beamer
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-version hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-version
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-num hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-num
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-mouse hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-mouse
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-mobile hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-mobile
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-macs hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-macs
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-macro hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-macro
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-loaddefs hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-loaddefs
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-list hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-list
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-lint hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-lint
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-keys hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-keys
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-install hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-install
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-inlinetask hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-inlinetask
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-indent hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-indent
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-id hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-id
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-habit hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-habit
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-goto hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-goto
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-footnote hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-footnote
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-feed hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-feed
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-faces hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-faces
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-entities hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-entities
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-element hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-element
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-duration hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-duration
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-datetree hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-datetree
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-ctags hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-ctags
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-crypt hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-crypt
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-compat hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-compat
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-colview hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-colview
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-clock hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-clock
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-capture hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-capture
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-attach hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-attach
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-attach-git hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-attach-git
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org hides /home/lockywolf/.emacs.d/elpa/org-20201109/org
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-archive hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-archive
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-agenda hides /home/lockywolf/.emacs.d/elpa/org-20201109/org-agenda
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-w3m hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-w3m
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-rmail hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-rmail
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-mhe hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-mhe
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-irc hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-irc
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-info hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-info
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-gnus hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-gnus
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-eww hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-eww
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-eshell hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-eshell
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-docview hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-docview
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-bibtex hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-bibtex
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-bbdb hides /home/lockywolf/.emacs.d/elpa/org-20201109/ol-bbdb
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-vala hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-vala
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-tangle hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-tangle
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-table hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-table
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-stan hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-stan
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-sqlite hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-sqlite
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-sql hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-sql
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-shen hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-shen
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-shell hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-shell
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-sed hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-sed
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-screen hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-screen
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-scheme hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-scheme
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-sass hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-sass
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ruby hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-ruby
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ref hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-ref
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-python hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-python
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-processing hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-processing
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-plantuml hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-plantuml
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-picolisp hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-picolisp
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-perl hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-perl
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-org hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-org
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-octave hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-octave
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ocaml hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-ocaml
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-mscgen hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-mscgen
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-maxima hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-maxima
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-matlab hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-matlab
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-makefile hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-makefile
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-lua hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-lua
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-lob hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-lob
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-lisp hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-lisp
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-lilypond hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-lilypond
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ledger hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-ledger
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-latex hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-latex
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-java hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-java
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-js hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-js
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-hledger hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-hledger
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-haskell hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-haskell
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-groovy hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-groovy
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-gnuplot hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-gnuplot
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-fortran hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-fortran
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-forth hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-forth
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-exp hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-exp
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-eval hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-eval
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-eshell hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-eshell
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-io hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-io
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-emacs-lisp hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-emacs-lisp
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ebnf hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-ebnf
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-dot hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-dot
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ditaa hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-ditaa
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-css hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-css
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-core hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-core
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-coq hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-coq
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-comint hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-comint
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-clojure hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-clojure
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-calc hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-calc
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-awk hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-awk
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-asymptote hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-asymptote
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-abc hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-abc
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-R hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-R
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-J hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-J
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-C hides /home/lockywolf/.emacs.d/elpa/org-20201109/ob-C
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox hides /usr/share/emacs/27.1/lisp/org/ox
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-texinfo hides /usr/share/emacs/27.1/lisp/org/ox-texinfo
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-publish hides /usr/share/emacs/27.1/lisp/org/ox-publish
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-org hides /usr/share/emacs/27.1/lisp/org/ox-org
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-odt hides /usr/share/emacs/27.1/lisp/org/ox-odt
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-md hides /usr/share/emacs/27.1/lisp/org/ox-md
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-man hides /usr/share/emacs/27.1/lisp/org/ox-man
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-icalendar hides /usr/share/emacs/27.1/lisp/org/ox-icalendar
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-html hides /usr/share/emacs/27.1/lisp/org/ox-html
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-ascii hides /usr/share/emacs/27.1/lisp/org/ox-ascii
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-timer hides /usr/share/emacs/27.1/lisp/org/org-timer
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-tempo hides /usr/share/emacs/27.1/lisp/org/org-tempo
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-table hides /usr/share/emacs/27.1/lisp/org/org-table
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-protocol hides /usr/share/emacs/27.1/lisp/org/org-protocol
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-plot hides /usr/share/emacs/27.1/lisp/org/org-plot
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-pcomplete hides /usr/share/emacs/27.1/lisp/org/org-pcomplete
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-num hides /usr/share/emacs/27.1/lisp/org/org-num
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-latex hides /usr/share/emacs/27.1/lisp/org/ox-latex
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ox-beamer hides /usr/share/emacs/27.1/lisp/org/ox-beamer
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org hides /usr/share/emacs/27.1/lisp/org/org
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-version hides /usr/share/emacs/27.1/lisp/org/org-version
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-src hides /usr/share/emacs/27.1/lisp/org/org-src
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-mouse hides /usr/share/emacs/27.1/lisp/org/org-mouse
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-mobile hides /usr/share/emacs/27.1/lisp/org/org-mobile
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-macs hides /usr/share/emacs/27.1/lisp/org/org-macs
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-macro hides /usr/share/emacs/27.1/lisp/org/org-macro
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-loaddefs hides /usr/share/emacs/27.1/lisp/org/org-loaddefs
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-list hides /usr/share/emacs/27.1/lisp/org/org-list
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-lint hides /usr/share/emacs/27.1/lisp/org/org-lint
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-keys hides /usr/share/emacs/27.1/lisp/org/org-keys
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-install hides /usr/share/emacs/27.1/lisp/org/org-install
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-inlinetask hides /usr/share/emacs/27.1/lisp/org/org-inlinetask
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-indent hides /usr/share/emacs/27.1/lisp/org/org-indent
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-id hides /usr/share/emacs/27.1/lisp/org/org-id
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-habit hides /usr/share/emacs/27.1/lisp/org/org-habit
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-goto hides /usr/share/emacs/27.1/lisp/org/org-goto
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-footnote hides /usr/share/emacs/27.1/lisp/org/org-footnote
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-feed hides /usr/share/emacs/27.1/lisp/org/org-feed
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-faces hides /usr/share/emacs/27.1/lisp/org/org-faces
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-entities hides /usr/share/emacs/27.1/lisp/org/org-entities
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-element hides /usr/share/emacs/27.1/lisp/org/org-element
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-duration hides /usr/share/emacs/27.1/lisp/org/org-duration
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-datetree hides /usr/share/emacs/27.1/lisp/org/org-datetree
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-ctags hides /usr/share/emacs/27.1/lisp/org/org-ctags
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-crypt hides /usr/share/emacs/27.1/lisp/org/org-crypt
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-compat hides /usr/share/emacs/27.1/lisp/org/org-compat
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-colview hides /usr/share/emacs/27.1/lisp/org/org-colview
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-clock hides /usr/share/emacs/27.1/lisp/org/org-clock
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-capture hides /usr/share/emacs/27.1/lisp/org/org-capture
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-attach hides /usr/share/emacs/27.1/lisp/org/org-attach
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-attach-git hides /usr/share/emacs/27.1/lisp/org/org-attach-git
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-archive hides /usr/share/emacs/27.1/lisp/org/org-archive
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/org-agenda hides /usr/share/emacs/27.1/lisp/org/org-agenda
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol hides /usr/share/emacs/27.1/lisp/org/ol
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-w3m hides /usr/share/emacs/27.1/lisp/org/ol-w3m
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-rmail hides /usr/share/emacs/27.1/lisp/org/ol-rmail
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-mhe hides /usr/share/emacs/27.1/lisp/org/ol-mhe
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-irc hides /usr/share/emacs/27.1/lisp/org/ol-irc
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-info hides /usr/share/emacs/27.1/lisp/org/ol-info
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-gnus hides /usr/share/emacs/27.1/lisp/org/ol-gnus
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-eww hides /usr/share/emacs/27.1/lisp/org/ol-eww
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-eshell hides /usr/share/emacs/27.1/lisp/org/ol-eshell
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-docview hides /usr/share/emacs/27.1/lisp/org/ol-docview
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-bibtex hides /usr/share/emacs/27.1/lisp/org/ol-bibtex
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ol-bbdb hides /usr/share/emacs/27.1/lisp/org/ol-bbdb
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob hides /usr/share/emacs/27.1/lisp/org/ob
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-vala hides /usr/share/emacs/27.1/lisp/org/ob-vala
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-tangle hides /usr/share/emacs/27.1/lisp/org/ob-tangle
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-table hides /usr/share/emacs/27.1/lisp/org/ob-table
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-stan hides /usr/share/emacs/27.1/lisp/org/ob-stan
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-sqlite hides /usr/share/emacs/27.1/lisp/org/ob-sqlite
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-sql hides /usr/share/emacs/27.1/lisp/org/ob-sql
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-shen hides /usr/share/emacs/27.1/lisp/org/ob-shen
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-shell hides /usr/share/emacs/27.1/lisp/org/ob-shell
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-sed hides /usr/share/emacs/27.1/lisp/org/ob-sed
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-screen hides /usr/share/emacs/27.1/lisp/org/ob-screen
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-scheme hides /usr/share/emacs/27.1/lisp/org/ob-scheme
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-sass hides /usr/share/emacs/27.1/lisp/org/ob-sass
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ruby hides /usr/share/emacs/27.1/lisp/org/ob-ruby
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ref hides /usr/share/emacs/27.1/lisp/org/ob-ref
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-python hides /usr/share/emacs/27.1/lisp/org/ob-python
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-processing hides /usr/share/emacs/27.1/lisp/org/ob-processing
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-plantuml hides /usr/share/emacs/27.1/lisp/org/ob-plantuml
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-picolisp hides /usr/share/emacs/27.1/lisp/org/ob-picolisp
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-perl hides /usr/share/emacs/27.1/lisp/org/ob-perl
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-org hides /usr/share/emacs/27.1/lisp/org/ob-org
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-octave hides /usr/share/emacs/27.1/lisp/org/ob-octave
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ocaml hides /usr/share/emacs/27.1/lisp/org/ob-ocaml
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-mscgen hides /usr/share/emacs/27.1/lisp/org/ob-mscgen
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-maxima hides /usr/share/emacs/27.1/lisp/org/ob-maxima
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-matlab hides /usr/share/emacs/27.1/lisp/org/ob-matlab
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-makefile hides /usr/share/emacs/27.1/lisp/org/ob-makefile
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-lua hides /usr/share/emacs/27.1/lisp/org/ob-lua
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-lob hides /usr/share/emacs/27.1/lisp/org/ob-lob
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-lisp hides /usr/share/emacs/27.1/lisp/org/ob-lisp
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-lilypond hides /usr/share/emacs/27.1/lisp/org/ob-lilypond
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ledger hides /usr/share/emacs/27.1/lisp/org/ob-ledger
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-latex hides /usr/share/emacs/27.1/lisp/org/ob-latex
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-js hides /usr/share/emacs/27.1/lisp/org/ob-js
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-java hides /usr/share/emacs/27.1/lisp/org/ob-java
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-io hides /usr/share/emacs/27.1/lisp/org/ob-io
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-hledger hides /usr/share/emacs/27.1/lisp/org/ob-hledger
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-haskell hides /usr/share/emacs/27.1/lisp/org/ob-haskell
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-groovy hides /usr/share/emacs/27.1/lisp/org/ob-groovy
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-gnuplot hides /usr/share/emacs/27.1/lisp/org/ob-gnuplot
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-fortran hides /usr/share/emacs/27.1/lisp/org/ob-fortran
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-forth hides /usr/share/emacs/27.1/lisp/org/ob-forth
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-exp hides /usr/share/emacs/27.1/lisp/org/ob-exp
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-eval hides /usr/share/emacs/27.1/lisp/org/ob-eval
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-eshell hides /usr/share/emacs/27.1/lisp/org/ob-eshell
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-emacs-lisp hides /usr/share/emacs/27.1/lisp/org/ob-emacs-lisp
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ebnf hides /usr/share/emacs/27.1/lisp/org/ob-ebnf
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-dot hides /usr/share/emacs/27.1/lisp/org/ob-dot
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-ditaa hides /usr/share/emacs/27.1/lisp/org/ob-ditaa
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-css hides /usr/share/emacs/27.1/lisp/org/ob-css
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-core hides /usr/share/emacs/27.1/lisp/org/ob-core
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-coq hides /usr/share/emacs/27.1/lisp/org/ob-coq
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-comint hides /usr/share/emacs/27.1/lisp/org/ob-comint
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-clojure hides /usr/share/emacs/27.1/lisp/org/ob-clojure
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-calc hides /usr/share/emacs/27.1/lisp/org/ob-calc
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-awk hides /usr/share/emacs/27.1/lisp/org/ob-awk
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-asymptote hides /usr/share/emacs/27.1/lisp/org/ob-asymptote
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-abc hides /usr/share/emacs/27.1/lisp/org/ob-abc
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-R hides /usr/share/emacs/27.1/lisp/org/ob-R
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-J hides /usr/share/emacs/27.1/lisp/org/ob-J
/home/lockywolf/.emacs.d/elpa/org-plus-contrib-20210208/ob-C hides /usr/share/emacs/27.1/lisp/org/ob-C
/home/lockywolf/.emacs.d/elpa/flim-20201111.1312/sasl hides /usr/share/emacs/27.1/lisp/net/sasl
/home/lockywolf/.emacs.d/elpa/map-2.1/map hides /usr/share/emacs/27.1/lisp/emacs-lisp/map

Features:
(shadow misearch multi-isearch ffap emacsbug gnutls network-stream
mailalias time-stamp sort bbdb-com mail-extr cal-china lunar solar
cal-dst cal-bahai cal-islam cal-hebrew holidays hol-loaddefs face-remap
bbdb-mu4e org-duration org-eldoc geiser-mode geiser-xref geiser-compile
geiser-debug geiser-gambit geiser-chibi geiser-mit geiser-chez
geiser-chicken geiser-racket geiser-guile info-look geiser-repl
geiser-image geiser-company geiser-doc geiser-menu geiser-edit
geiser-completion geiser-autodoc geiser-eval geiser-connection
geiser-syntax geiser-log geiser-popup view sh-script smie executable
ol-eww ol-rmail ol-mhe ol-irc ol-info ol-gnus nnir ol-docview ol-bbdb
ol-w3m company-oddmuse company-keywords company-etags company-gtags
company-dabbrev-code company-dabbrev company-files company-clang
company-capf company-cmake company-semantic company-template
company-bbdb init diary-lib diary-loaddefs memento-mori rainbow-mode
color-identifiers-mode python tramp-sh tramp tramp-loaddefs trampver
tramp-integration files-x tramp-compat ls-lisp org-fancy-priorities
prettify-greek form-feed hamburger-menu tmm erc-xdcc erc-track
erc-spelling erc-sound erc-services erc-ring erc-page
erc-desktop-notifications erc-notify erc-networks erc-netsplit erc-menu
erc-match erc-log erc-list erc-identd erc-dcc erc-pcomplete erc-capab
erc-button erc-fill erc-stamp erc-join manoj-dark-theme sauron-ams-org
sauron-elfeed sauron-identica sauron-jabber sauron-mu4e
sauron-twittering sauron-notifications notifications sauron-org
sauron-erc erc-goodies erc erc-backend erc-compat erc-loaddefs
sauron-dbus sauron cl idle-org-agenda org2blog ox-wp metaweblog xml-rpc
url-http url-auth url-gw nsm hydra lv htmlize org-journal org-crypt
cal-iso org-sidebar org-ql-search org-ql-view ov org-super-agenda ht f
org-ql peg ts org-habit org-agenda s dash-functional org-mru-clock
org-capture org-refile ox-beamer ox-org 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-clock ob-fortran ob-shell ob-latex ob-scheme
geiser-impl help-fns radix-tree geiser-custom geiser-base ob-C
ob-plantuml org-tempo tempo org-protocol ox-youtube org-ebib
org-bibtex-extras ol-bibtex ox-bibtex pinentry elfeed-protocol
elfeed-protocol-ttrss elfeed-protocol-owncloud elfeed-protocol-newsblur
elfeed-protocol-fever elfeed-protocol-common elfeed-show elfeed-search
semantic/tag-file semantic/db-file data-debug cedet-files elfeed-csv
elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib xml-query bbdb
bbdb-site timezone gnus-dired mu4e desktop frameset mu4e-org mu4e-main
mu4e-view mu4e-headers mu4e-compose mu4e-context mu4e-draft mu4e-actions
rfc2368 mu4e-mark mu4e-message flow-fill mu4e-proc mu4e-utils mu4e-lists
mule-util mu4e-vars mu4e-meta smtpmail-multi smtpmail sendmail khardel
yaml-mode vdirel org-vcard ebib helm helm-global-bindings helm-easymenu
helm-source eieio-compat helm-multi-match helm-lib ivy delsel ivy-faces
ivy-overlay colir color ebib-reading-list ebib-notes org-element org ob
ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-footnote org-src
ob-comint org-pcomplete org-list org-faces org-entities org-version
ob-emacs-lisp ob-core ob-eval org-table org-keys org-loaddefs cal-menu
calendar cal-loaddefs gnus-sum gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo parse-time iso8601
gnus-spec gnus-int gnus-range gnus-win ol org-compat org-macs avl-tree
ebib-filters ebib-keywords ebib-utils ebib-db parsebib hl-line bib-cite
auctex-latexmk tex-buf latex latex-flymake flymake-proc flymake
tex-ispell tex-style tex auctex cdlatex texmathp bibretrieve
bibtex-utils reftex reftex-loaddefs reftex-vars bibtex flycheck-plantuml
plantuml-mode geiser paredit-menu paredit scheme-complete scheme
lockywolf-helm flycheck-clang-analyzer f90 magit-bookmark
magit-submodule magit-obsolete magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log which-func magit-diff
smerge-mode diff diff-mode magit-core magit-autorevert magit-margin
magit-transient magit-process magit-mode git-commit transient magit-git
magit-section magit-utils crm log-edit message rmc rfc822 mml mml-sec
epa derived epg epg-config mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader pcvs-util add-log with-editor
async-bytecomp async shell pcomplete vc vc-dispatcher flycheck rx dash
flyspell-correct flyspell ispell gdb-mi bindat gud hideshow foldout
noutline outline company pcase hippie-exp autoinsert ediff ediff-merg
ediff-mult ediff-wind ediff-diff ediff-help ediff-init ediff-util ggtags
etags fileloop generator xref project ewoc srecode/mode semantic/senator
srecode/insert srecode/filters srecode/args ede/speedbar ede/files ede
ede/detect ede/base ede/auto ede/source eieio-speedbar semantic/sb
speedbar sb-image dframe eieio-custom srecode/find srecode/map
srecode/ctxt srecode/compile srecode/dictionary srecode/fields
srecode/table srecode semantic/mru-bookmark semantic/db-mode
semantic/decorate/mode semantic/decorate pulse semantic/bovine/c hideif
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine
cc-vars cc-defs semantic/bovine/c-by semantic/lex-spp semantic/idle
semantic/bovine/gcc semantic/dep semantic/bovine semantic/analyze/refs
semantic/db-find semantic/db-ref semantic/analyze semantic/sort
semantic/scope semantic/analyze/fcn semantic/db eieio-base semantic/ctxt
semantic/format ezimage semantic/tag-ls semantic/find eshell esh-cmd
esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util
eww mm-url gnus nnheader gnus-util time-date thingatpt url-queue url
url-proxy url-privacy url-expand url-methods url-history mailcap shr
url-cookie url-domsuf url-util puny svg dom djvu 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 find-func
cedet pdf-isearch let-alist pdf-misc imenu pdf-tools pdf-view pdf-cache
pdf-info tq pdf-util advice format-spec doc-view jka-compr image-mode
exif ps-print ps-print-loaddefs ps-def lpr woman warnings man server
secrets dbus ido-completing-read+ memoize minibuf-eldef ido xml locate
arc-mode archive-mode dired-x dired dired-loaddefs compile comint
ansi-color ring autorevert filenotify elec-pair display-line-numbers
display-fill-column-indicator hi-lock mic-paren shackle trace windmove
edmacro kmacro bookmark text-property-search pp savehist recentf
tree-widget super-save rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils diminish image-file cl-extra help-mode
xt-mouse use-package-ensure-system-package system-packages cus-edit
cus-start cus-load wid-edit use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
easy-mmode use-package-core init-custom finder-inf tex-site
org2blog-autoloads slime-autoloads w3m-load info package easymenu
browse-url url-handlers url-parse auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq
byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite charscript charprop case-table epa-hook
jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 dynamic-setting
font-render-setting xwidget-internal move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 1246928 62707)
 (symbols 48 90359 2)
 (strings 32 316708 19022)
 (string-bytes 1 10065431)
 (vectors 16 130871)
 (vector-slots 8 2900600 239530)
 (floats 8 1474 597)
 (intervals 56 21518 848)
 (buffers 1000 36))

-- 
Vladimir Nikishkin (MiEr, lockywolf)
(Laptop)





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

* bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames
  2021-03-30  5:06 bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames Vladimir Nikishkin
@ 2021-03-30  7:55 ` Michael Albinus
  2021-04-06 18:40   ` Michael Albinus
  0 siblings, 1 reply; 9+ messages in thread
From: Michael Albinus @ 2021-03-30  7:55 UTC (permalink / raw)
  To: Vladimir Nikishkin; +Cc: 47493

Vladimir Nikishkin <lockywolf@gmail.com> writes:

> Dear Emacs developers,

Hi Vladimir,

> In order to avoid littering my file system with autosaves, I have the
> following setting in my .emacs:
>
> #+begin_src
> (setq auto-save-file-name-transforms '((".*" "~/.emacs.d/autosave/" t)))
> #+end_src
>
> The t flag is the 'uniquify' flag, which roughly means "replace all
> slashes by exclamation marks".
>
> However, this way it is possible to create a file name that is invalid
> for use in the file system tree, especially if the file you are editing
> is deeply nested.

Could you pls show an example of such invalid file name?

> Would it be possible, to, maybe, add a flag "ensure-filesystem-correctness"?

Maybe we could have a flag which means "convert the directory part of a
file name into sha1" (or whatever `secure-hash' provides).

> Your sincerely,
> Vladimir

Best regards, Michael.





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

* bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames
  2021-03-30  7:55 ` Michael Albinus
@ 2021-04-06 18:40   ` Michael Albinus
  2021-04-06 20:57     ` Glenn Morris
  2021-05-08 12:34     ` Lars Ingebrigtsen
  0 siblings, 2 replies; 9+ messages in thread
From: Michael Albinus @ 2021-04-06 18:40 UTC (permalink / raw)
  To: Vladimir Nikishkin; +Cc: 47493

[-- Attachment #1: Type: text/plain, Size: 439 bytes --]

Michael Albinus <michael.albinus@gmx.de> writes:

Hi,

>> Would it be possible, to, maybe, add a flag "ensure-filesystem-correctness"?
>
> Maybe we could have a flag which means "convert the directory part of a
> file name into sha1" (or whatever `secure-hash' provides).

Nobody has commented. Well, in a couple of days I will push the appended
patch, unless there are objections.

>> Your sincerely,
>> Vladimir

Best regards, Michael.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 2036 bytes --]

*** /tmp/ediffH8hUs7	2021-04-06 20:36:48.215610320 +0200
--- /home/albinus/src/emacs/lisp/files.el	2021-04-06 20:36:13.439660165 +0200
***************
*** 392,397 ****
--- 392,403 ----
  changed to `!' to prevent clashes.  This will not work
  correctly if your filesystem truncates the resulting name.

+ If the optional element UNIQUIFY is a symbol returned by function
+ `secure-hash-algorithms', the auto-save file name is constructed
+ by taking the directory part of the replaced file-name,
+ concatenated with the buffer file name run through `secure-hash'
+ instead.  This returns a valid name for your filesystem any way.
+
  All the transforms in the list are tried, in the order they are listed.
  When one transform applies, its result is final;
  no further transforms are tried.
***************
*** 6593,6606 ****
  			uniq (car (cddr (car list)))))
  	      (setq list (cdr list)))
  	    (if result
! 		(if uniq
! 		    (setq filename (concat
! 				    (file-name-directory result)
! 				    (subst-char-in-string
! 				     ?/ ?!
! 				     (replace-regexp-in-string "!" "!!"
! 							       filename))))
! 		  (setq filename result)))
  	    (setq result
  		  (if (and (eq system-type 'ms-dos)
  			   (not (msdos-long-file-names)))
--- 6599,6618 ----
  			uniq (car (cddr (car list)))))
  	      (setq list (cdr list)))
  	    (if result
!                 (setq filename
!                       (cond
!                        ((member uniq (secure-hash-algorithms))
!                         (concat
!                          (file-name-directory result)
!                          (secure-hash uniq filename)))
!                        (uniq
!                         (concat
! 			 (file-name-directory result)
! 			 (subst-char-in-string
! 			  ?/ ?!
! 			  (replace-regexp-in-string
!                            "!" "!!" filename))))
! 		       (t result))))
  	    (setq result
  		  (if (and (eq system-type 'ms-dos)
  			   (not (msdos-long-file-names)))

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

* bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames
  2021-04-06 18:40   ` Michael Albinus
@ 2021-04-06 20:57     ` Glenn Morris
  2021-04-07  8:24       ` Michael Albinus
  2021-05-08 12:34     ` Lars Ingebrigtsen
  1 sibling, 1 reply; 9+ messages in thread
From: Glenn Morris @ 2021-04-06 20:57 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Vladimir Nikishkin, 47493

Michael Albinus wrote:

> Nobody has commented. 

You asked for an example of why this was needed; I was waiting to hear
the answer.

> + If the optional element UNIQUIFY is a symbol returned by function
> + `secure-hash-algorithms', the auto-save file name is constructed
> + by taking the directory part of the replaced file-name,
> + concatenated with the buffer file name run through `secure-hash'
> + instead.  This returns a valid name for your filesystem any way.

Grammar tweaks:

If UNIQUIFY is one of the members of `secure-hash-algorithms',
Emacs constructs the nondirectory part of the auto-save file name by
applying that `secure-hash' to the buffer file name. This avoids any
risk of excessively long file names.





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

* bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames
  2021-04-06 20:57     ` Glenn Morris
@ 2021-04-07  8:24       ` Michael Albinus
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Albinus @ 2021-04-07  8:24 UTC (permalink / raw)
  To: Glenn Morris; +Cc: Vladimir Nikishkin, 47493

Glenn Morris <rgm@gnu.org> writes:

Hi Glenn,

>> Nobody has commented.
>
> You asked for an example of why this was needed; I was waiting to hear
> the answer.

Same here. However, the docstring of auto-save-file-name-transforms
speaks about the problem, so I believe it is a real one.

>> + If the optional element UNIQUIFY is a symbol returned by function
>> + `secure-hash-algorithms', the auto-save file name is constructed
>> + by taking the directory part of the replaced file-name,
>> + concatenated with the buffer file name run through `secure-hash'
>> + instead.  This returns a valid name for your filesystem any way.
>
> Grammar tweaks:
>
> If UNIQUIFY is one of the members of `secure-hash-algorithms',
> Emacs constructs the nondirectory part of the auto-save file name by
> applying that `secure-hash' to the buffer file name. This avoids any
> risk of excessively long file names.

Thanks!

Best regards, Michael.





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

* bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames
  2021-04-06 18:40   ` Michael Albinus
  2021-04-06 20:57     ` Glenn Morris
@ 2021-05-08 12:34     ` Lars Ingebrigtsen
  2021-05-08 12:42       ` Michael Albinus
  1 sibling, 1 reply; 9+ messages in thread
From: Lars Ingebrigtsen @ 2021-05-08 12:34 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Vladimir Nikishkin, 47493

Michael Albinus <michael.albinus@gmx.de> writes:

>> Maybe we could have a flag which means "convert the directory part of a
>> file name into sha1" (or whatever `secure-hash' provides).
>
> Nobody has commented. Well, in a couple of days I will push the appended
> patch, unless there are objections.

As far as I can tell, the patch wasn't pushed?

> + If the optional element UNIQUIFY is a symbol returned by function
> + `secure-hash-algorithms', the auto-save file name is constructed
> + by taking the directory part of the replaced file-name,
> + concatenated with the buffer file name run through `secure-hash'
> + instead.  This returns a valid name for your filesystem any way.

Vladimir didn't have any examples for invalid file names, apparently,
but it looks like a good change to me.  (I.e., being able to opt in to
using a hash instead of !!-ing.)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames
  2021-05-08 12:34     ` Lars Ingebrigtsen
@ 2021-05-08 12:42       ` Michael Albinus
  2021-05-09  9:58         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 9+ messages in thread
From: Michael Albinus @ 2021-05-08 12:42 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Vladimir Nikishkin, 47493

Lars Ingebrigtsen <larsi@gnus.org> writes:

Hi Lars,

> Michael Albinus <michael.albinus@gmx.de> writes:
>
>>> Maybe we could have a flag which means "convert the directory part of a
>>> file name into sha1" (or whatever `secure-hash' provides).
>>
>> Nobody has commented. Well, in a couple of days I will push the appended
>> patch, unless there are objections.
>
> As far as I can tell, the patch wasn't pushed?

No. It is in my todo queue, but I wanted to check first, whether Tramp
needs some changes in its own implementation of make-auto-save-file-name

>> + If the optional element UNIQUIFY is a symbol returned by function
>> + `secure-hash-algorithms', the auto-save file name is constructed
>> + by taking the directory part of the replaced file-name,
>> + concatenated with the buffer file name run through `secure-hash'
>> + instead.  This returns a valid name for your filesystem any way.
>
> Vladimir didn't have any examples for invalid file names, apparently,
> but it looks like a good change to me.  (I.e., being able to opt in to
> using a hash instead of !!-ing.)

The patch is planned to be pushed, once I find the time to fix that
remaining question. Or does somebody else want to eat this cookie?

Best regards, Michael.





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

* bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames
  2021-05-08 12:42       ` Michael Albinus
@ 2021-05-09  9:58         ` Lars Ingebrigtsen
  2021-05-10 11:46           ` Michael Albinus
  0 siblings, 1 reply; 9+ messages in thread
From: Lars Ingebrigtsen @ 2021-05-09  9:58 UTC (permalink / raw)
  To: Michael Albinus; +Cc: Vladimir Nikishkin, 47493

Michael Albinus <michael.albinus@gmx.de> writes:

> The patch is planned to be pushed, once I find the time to fix that
> remaining question. Or does somebody else want to eat this cookie?

I think this cookie is all yours.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





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

* bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames
  2021-05-09  9:58         ` Lars Ingebrigtsen
@ 2021-05-10 11:46           ` Michael Albinus
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Albinus @ 2021-05-10 11:46 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Vladimir Nikishkin, 47493-done

Version: 28.1

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Michael Albinus <michael.albinus@gmx.de> writes:
>
>> The patch is planned to be pushed, once I find the time to fix that
>> remaining question. Or does somebody else want to eat this cookie?
>
> I think this cookie is all yours.

Eaten. Closing the bug.

Best regards, Michael.





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

end of thread, other threads:[~2021-05-10 11:46 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-03-30  5:06 bug#47493: 27.1; auto-save-file-name-transforms with uniquify should not create invalid filenames Vladimir Nikishkin
2021-03-30  7:55 ` Michael Albinus
2021-04-06 18:40   ` Michael Albinus
2021-04-06 20:57     ` Glenn Morris
2021-04-07  8:24       ` Michael Albinus
2021-05-08 12:34     ` Lars Ingebrigtsen
2021-05-08 12:42       ` Michael Albinus
2021-05-09  9:58         ` Lars Ingebrigtsen
2021-05-10 11:46           ` Michael Albinus

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.