Subject: 27.2; dired-mode moves point to wrong positions while deleting non-empty directories

From: [email-masked]
Date: Thu, 03 Jun 2021 16:20:24 +0900

The form below creates a working directory and generate many non-empty
directories under the working directory, then displaye the working
directory in a dired-mode buffer.
  (let ((dir (make-temp-file "dir" t)))
    (dotimes (i 100)
      (let ((d (expand-file-name (format "d%03d" i) dir)))
        (make-directory d)
        (write-region "" nil (expand-file-name "file" d))
        ))
    (dired dir))
Mark all subdirectories to be deleted with typing 'C-u 100 d'.
Tell emacs to delete all marked directories with typing 'x'.
Emacs asks 'Delete D [100 files] (yes or no) ', and answer yes.
Then emacs asks like 'Recursively delete d000? (yes, no, all, quit, help) '
for each directory, and answer yes for each confirmation.
While these confirmations, emacs tries to move point to the 'D' marker of
the line of the asked directory.
But the real position of the point is different from the line.
Perhaps because the goal point value is changed with the deletion of the
lines of the directories which has been deleted.

Also, I think the point should be moved to the directory name, not marker.
Directory names are much more important than marker types and there is a
long distance between the marker and the name.

In GNU Emacs 27.2 (build 1, x86_64-w64-mingw32)
 of 2021-03-26 built on CIRROCUMULUS
Repository revision: deef5efafb70f4b171265b896505b92b6eef24e6
Repository branch: HEAD
Windowing system distributor 'Microsoft Corp.', version 10.0.19043
System Description: Microsoft Windows 10 Pro (v10.0.2009.19043.1023)

Recent messages:

Configured using:
 'configure --without-dbus --host=x86_64-w64-mingw32
 --without-compress-install 'CFLAGS=-O2 -static''

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY W32NOTIFY ACL GNUTLS LIBXML2
HARFBUZZ ZLIB TOOLKIT_SCROLL_BARS MODULES THREADS JSON PDUMPER LCMS2 GMP

Important settings:
  value of $LANG: JPN
  locale-coding-system: cp932

Major mode: Emacs-Lisp

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-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
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr term/bobcat emacsbug message rmc puny format-spec
rfc822 mml mml-sec password-cache epa derived epg epg-config gnus-util
rmail rmail-loaddefs text-property-search mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils dired dired-loaddefs
cl-print debug backtrace find-func mule-util info apropos goto-addr
thingatpt noutline outline easy-mmode view misearch multi-isearch
cl-extra seq byte-opt gv bytecomp byte-compile cconv help-fns radix-tree
help-mode easymenu time-date subr-x cl-loaddefs cl-lib japan-util
tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win w32-vars
term/common-win 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 w32notify w32 lcms2 multi-tty make-network-process
emacs)

Memory information:
((conses 16 73546 10832)
 (symbols 48 8298 1)
 (strings 32 24697 1901)
 (string-bytes 1 692843)
 (vectors 16 13822)
 (vector-slots 8 265412 15684)
 (floats 8 37 270)
 (intervals 56 1015 643)
 (buffers 1000 17))