Subject: bug#64606: 29.0.91; Error when editing partial matched files with dired editable mode

From: Aditya Yadav <[email-masked]>
Date: Fri, 14 Jul 2023 02:49:23 +0530

This bug was reported to a package but is bug in dired ->
https://github.com/oantolin/embark/issues/650

Let say in the current dir it is the following structure
.
├── star1
│   └── letter1
├── star2
│   └── letter2
└── star3
    └── letter3

When i open dired with the command partial match `./s/l`

  -rw-rw-r-- 1 aditya-yadav 6 2023-07-13 22:32 star1/letter1
  -rw-rw-r-- 1 aditya-yadav 6 2023-07-13 22:32 star2/letter2
  -rw-rw-r-- 1 aditya-yadav 6 2023-07-13 22:32 star3/letter3

When i try to rename a file with dired editable mode and when i write the
changes
Dired errors out and closes the buffer although the rename of the file is
successful

Aside from the partial match you can go to that directory with the above
structure and run
(dired '("." "star1/letter1" "star2/letter2" "star3/letter3"))
from eshell to get the same result

Debug on error output:-

Debugger entered--Lisp error: (file-missing "Reading directory" "No such
file or directory" "star1/letter1")
  #<subr insert-directory>("star1/letter1" "--dired -AGFhlv
--group-directories-first --time-s..." nil nil)
  ls-lisp--insert-directory(#<subr insert-directory> "star1/letter1"
"--dired -AGFhlv --group-directories-first --time-s..." nil nil)
  apply(ls-lisp--insert-directory #<subr insert-directory> ("star1/letter1"
"--dired -AGFhlv --group-directories-first --time-s..." nil nil))
  insert-directory("star1/letter1" "--dired -AGFhlv
--group-directories-first --time-s..." nil nil)
  dired-insert-directory("/home/aditya-yadav/Personal/Demo/" "-AGFhlv
--group-directories-first --time-style=lon..." ("star1/letter1"
"star2/letter2" "star3/letter3") nil t)
  dired-readin-insert()
  #<subr F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_47>()
  combine-change-calls-1(1 227 #<subr
F616e6f6e796d6f75732d6c616d626461_anonymous_lambda_47>)
  dired-readin()
  dired-revert(nil nil)
  revert-buffer()
  wdired-finish-edit()
  funcall-interactively(wdired-finish-edit)
  evil-ex-call-command(nil #("w" 0 1 (ex-index 1)) nil)
  evil-ex-execute(#("w" 0 1 (ex-index 1)))
  evil-ex(nil)
  funcall-interactively(evil-ex nil)
  command-execute(evil-ex)

In GNU Emacs 29.0.91 (build 1, x86_64-unknown-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.16.0) of 2023-07-04 built on void-live
Windowing system distributor 'The X.Org Foundation', version 11.0.12301002
System Description: Void Linux

Configured using:
 'configure --with-x-toolkit=gtk3 --prefix=/usr --sysconfdir=/etc
 --sbindir=/usr/bin --bindir=/usr/bin --mandir=/usr/share/man
 --infodir=/usr/share/info --localstatedir=/var
 --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu
 '--libdir=${exec_prefix}/lib64' --with-file-notification=inotify
 --with-modules --with-jpeg --with-tiff --with-gif --with-png --with-xpm
 --with-rsvg --with-imagemagick --with-xml2 --with-gnutls --with-sound
 --without-m17n-flt --with-json --with-harfbuzz --with-cairo
 --with-libgmp --with-native-compilation --with-treesitter
 'CFLAGS=-fno-PIE -mtune=generic -O2 -pipe
 -ffile-prefix-map=/builddir/emacs-29.0.91=.' 'CPPFLAGS= '
 'LDFLAGS=-no-pie -Wl,--as-needed ''

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ
IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS
TREE_SITTER X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB

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

Major mode: Dired

Minor modes in effect:
  hl-line-mode: t
  global-flycheck-eglot-mode: t
  global-org-modern-mode: t
  marginalia-mode: t
  vertico-mode: t
  corfu-popupinfo-mode: t
  global-corfu-mode: t
  global-git-gutter-mode: t
  global-git-commit-mode: t
  global-auto-revert-mode: 1
  server-mode: t
  global-flycheck-mode: t
  all-the-icons-dired-mode: t
  all-the-icons-completion-mode: t
  display-battery-mode: t
  doom-modeline-mode: t
  which-key-mode: t
  emms-mode-line-mode: t
  emms-playing-time-display-mode: t
  emms-playing-time-mode: t
  global-tempel-abbrev-mode: t
  tempel-abbrev-mode: t
  global-undo-tree-mode: t
  global-evil-collection-unimpaired-mode: t
  evil-collection-unimpaired-mode: t
  general-override-mode: t
  evil-mode: t
  evil-local-mode: t
  shell-dirtrack-mode: t
  elpaca-use-package-mode: t
  override-global-mode: t
  electric-pair-mode: t
  global-display-line-numbers-mode: t
  display-line-numbers-mode: t
  save-place-mode: t
  recentf-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/aditya-yadav/.config/emacs/elpaca/builds/external-completion/external-completion
hides /usr/share/emacs/29.0.91/lisp/external-completion
/home/aditya-yadav/.config/emacs/elpaca/builds/jsonrpc/jsonrpc hides
/usr/share/emacs/29.0.91/lisp/jsonrpc
/home/aditya-yadav/.config/emacs/elpaca/builds/eglot/eglot hides
/usr/share/emacs/29.0.91/lisp/progmodes/eglot
/home/aditya-yadav/.config/emacs/elpaca/builds/flymake/flymake hides
/usr/share/emacs/29.0.91/lisp/progmodes/flymake
/home/aditya-yadav/.config/emacs/elpaca/builds/project/project hides
/usr/share/emacs/29.0.91/lisp/progmodes/project
/home/aditya-yadav/.config/emacs/elpaca/builds/xref/xref hides
/usr/share/emacs/29.0.91/lisp/progmodes/xref
/home/aditya-yadav/.config/emacs/elpaca/builds/let-alist/let-alist hides
/usr/share/emacs/29.0.91/lisp/emacs-lisp/let-alist
/home/aditya-yadav/.config/emacs/elpaca/builds/eldoc/eldoc hides
/usr/share/emacs/29.0.91/lisp/emacs-lisp/eldoc

Features:
(shadow mail-extr evil-collection-wdired wdired dabbrev cl-print em-unix
em-term evil-collection-term term ehelp em-script em-ls em-hist em-pred
em-extpipe em-cmpl em-dirs esh-var em-basic em-banner em-alias
evil-collection-eshell em-prompt esh-mode eshell esh-cmd esh-ext esh-opt
esh-proc esh-io esh-arg esh-module esh-groups dired-aux hl-line emacsbug
mule-util pulse flycheck-eglot evil-collection-eglot eglot
external-completion jsonrpc evil-collection-flymake flymake-proc flymake
evil-collection-ert ert ewoc rainbow-delimiters evil-collection-vc-git
vc-git vc-dispatcher org-indent oc-basic ol-eww evil-collection-eww eww
url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect
gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr
pixel-fill kinsoku url-file svg gnus-group gnus-undo gnus-start
gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec
gnus-int gnus-range gnus-win evil-collection-gnus gnus nnheader range
ol-docview evil-collection-doc-view doc-view jka-compr ol-bibtex bibtex
ol-bbdb ol-w3m ol-doi org-link-doi time denote org-modern toc-org
org-cliplink org-cliplink-transport org-cliplink-string em-glob esh-util
embark-consult evil-collection-consult consult magit-bookmark
evil-collection-bookmark bookmark orderless marginalia
evil-collection-vertico vertico evil-collection-embark embark-org embark
cape corfu-popupinfo evil-collection-corfu corfu evil-multiedit iedit
iedit-lib smart-compile git-gutter-fringe fringe-helper git-gutter
evil-collection-magit magit-submodule magit-blame magit-stash
magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone
magit-remote magit-commit magit-sequence magit-notes magit-worktree
magit-tag magit-merge magit-branch magit-reset magit-files magit-refs
magit-status magit evil-collection-package-menu package browse-url
url-handlers magit-repos magit-apply magit-wip magit-log which-func
magit-diff smerge-mode evil-collection-diff-mode diff-mode git-commit
evil-collection-log-edit log-edit message sendmail yank-media rfc822 mml
mml-sec evil-collection-epa epa epg rfc6068 epg-config gnus-util
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader
pcvs-util add-log magit-core magit-autorevert autorevert filenotify
magit-margin magit-transient magit-process with-editor server magit-mode
transient magit-git magit-base evil-collection-magit-section
magit-section cursor-sensor crm treesit-langs treesit-faces
treesit-langs-build evil-collection-tar-mode tar-mode
evil-collection-arc-mode arc-mode archive-mode web-mode disp-table
evil-collection-restclient restclient rustic-flycheck let-alist
rustic-spellcheck rustic-expand rustic-lsp rustic-playground
rustic-rustfix rustic-racer etags fileloop evil-collection-xref xref
rustic-babel rustic-rustfmt rustic-comint rustic-clippy rustic-doc
rustic-popup rustic-cargo rustic-compile spinner evil-collection-compile
compile text-property-search xterm-color evil-collection-markdown-mode
markdown-mode color rustic-interaction rustic rust-utils rust-mode
evil-collection-flycheck flycheck project evil-nerd-commenter
evil-nerd-commenter-operator evil-nerd-commenter-sdk sgml-mode facemenu
dom all-the-icons-dired all-the-icons-completion
evil-collection-dashboard dashboard dashboard-widgets ffap all-the-icons
all-the-icons-faces data-material data-weathericons data-octicons
data-fileicons data-faicons data-alltheicons battery doom-modeline
doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path
nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon
nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon
nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon
nerd-icons-data-powerline nerd-icons-data-octicon
nerd-icons-data-pomicon nerd-icons-data-ipsicon doom-dracula-theme
doom-themes-ext-visual-bell face-remap doom-themes doom-themes-base
evil-collection-which-key which-key fontaine unicode-fonts
evil-collection-helpful helpful cc-langs cc-vars cc-defs
evil-collection-imenu imenu trace evil-collection-edebug edebug
evil-collection-debug debug backtrace info-look evil-collection-info
info f f-shortdoc help-fns radix-tree evil-collection-elisp-refs
elisp-refs s dash network-stream puny nsm emms-mpris dbus
emms-librefm-stream xml emms-librefm-scrobbler emms-playlist-limit
emms-i18n emms-history emms-score emms-stream-info
emms-metaplaylist-mode emms-bookmarks emms-cue emms-mode-line-icon
emms-browser sort emms-volume emms-volume-sndioctl emms-volume-mixerctl
emms-volume-pulse emms-volume-amixer emms-playlist-sort emms-last-played
emms-player-xine emms-player-mpd tq emms-lyrics emms-url emms-streams
emms-show-all emms-tag-editor emms-tag-tracktag emms-mark emms-mode-line
emms-cache emms-info-native bindat emms-info-exiftool emms-info-tinytag
emms-info-metaflac emms-info-opusinfo emms-info-ogginfo
emms-info-mp3info emms-playlist-mode emms-player-vlc emms-player-mpv
emms-playing-time emms-info emms-later-do emms-player-mplayer
emms-player-simple emms-source-playlist emms-source-file locate
emms-setup evil-collection-emms emms emms-compat tempel-collection
tempel compat undo-tree diff queue evil-collection-unimpaired
evil-collection-tabulated-list evil-collection-tab-bar
evil-collection-simple evil-collection-replace
evil-collection-process-menu evil-collection-outline evil-collection-org
evil-collection-indent evil-collection-image image-mode
evil-collection-dired dired dired-loaddefs exif evil-collection-help
evil-collection-elisp-mode evil-collection-eldoc evil-collection-elpaca
elpaca-ui derived url url-proxy url-privacy url-expand url-methods
url-history url-cookie generate-lisp-file url-domsuf url-util mailcap
evil-collection-custom evil-collection-comint evil-collection-calendar
evil-collection-buff-menu evil-collection annalist general evil
evil-integration evil-maps evil-commands reveal evil-jumps
evil-command-window evil-search evil-ex evil-types evil-macros
evil-repeat evil-states evil-core comp comp-cstr warnings evil-common
thingatpt rect evil-digraphs evil-vars edmacro kmacro denote-autoloads
org-modern-autoloads toc-org-autoloads org-cliplink-autoloads
embark-consult-autoloads consult-autoloads orderless-autoloads
marginalia-autoloads vertico-autoloads embark-autoloads cape-autoloads
corfu-autoloads rainbow-delimiters-autoloads evil-multiedit-autoloads
iedit-autoloads smart-compile-autoloads git-gutter-fringe-autoloads
fringe-helper-autoloads git-gutter-autoloads magit-autoloads
magit-section-autoloads git-commit-autoloads with-editor-autoloads
treesit-langs-autoloads web-mode-autoloads restclient-autoloads
rustic-autoloads xterm-color-autoloads spinner-autoloads
markdown-mode-autoloads rust-mode-autoloads flycheck-eglot-autoloads
eglot-autoloads external-completion-autoloads flymake-autoloads
eldoc-autoloads jsonrpc-autoloads flycheck-autoloads let-alist-autoloads
pkg-info-autoloads epl-autoloads project-autoloads xref-autoloads
evil-nerd-commenter-autoloads all-the-icons-dired-autoloads
all-the-icons-completion-autoloads all-the-icons-autoloads
doom-modeline-autoloads shrink-path-autoloads nerd-icons-autoloads
doom-themes-autoloads which-key-autoloads dashboard-autoloads
fontaine-autoloads unicode-fonts-autoloads ucs-utils-autoloads
font-utils-autoloads persistent-soft-autoloads list-utils-autoloads
pcache-autoloads helpful-autoloads elisp-refs-autoloads f-autoloads
s-autoloads dash-autoloads emms-autoloads tempel-collection-autoloads
tempel-autoloads compat-autoloads undo-tree-autoloads queue-autoloads
evil-collection-autoloads annalist-autoloads general-autoloads
evil-autoloads goto-chg-autoloads org-agenda org-element org-persist xdg
org-id avl-tree generator org-refile org ob ob-tangle ob-ref ob-lob
ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list
org-footnote org-faces org-entities noutline outline ob-emacs-lisp
ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys
oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-version
org-compat org-macs advice treesit url-parse url-vars tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat rx shell
pcomplete comint ansi-osc ansi-color ring parse-time iso8601 time-date
ls-lisp format-spec auth-source eieio eieio-core password-cache json map
byte-opt elpaca-use-package use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
easy-mmode use-package-core bytecomp byte-compile
elpaca-use-package-autoloads cl-extra help-mode elpaca pcase cl-seq
cl-macs elpaca-process subr-x elpaca-autoloads elec-pair
display-line-numbers saveplace recentf tree-widget early-init gv
cus-edit pp cus-load icons wid-edit cl-loaddefs cl-lib 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 lcms2 dynamic-setting system-font-setting font-render-setting
cairo move-toolbar gtk x-toolkit xinput2 x multi-tty
make-network-process native-compile emacs)

Memory information:
((conses 16 1185631 1071318)
 (symbols 48 61545 51)
 (strings 32 358187 121166)
 (string-bytes 1 9534524)
 (vectors 16 106489)
 (vector-slots 8 2018876 1218855)
 (floats 8 1485 4266)
 (intervals 56 4008 6600)
 (buffers 984 23))

-- 
Aditya Yadav
[email-masked]