Subject: 28.1; ardired: poor management of links under windows
From: Pascal Quesseveur <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Tue, 21 Jun 2022 17:24:32 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

I open a dired buffer on a dir named "C:/Users/Public/Applis"
containing a symbolic link named "Dir01" (the link has been created on
Windows 10 with command mklink /D). In dired Dir01 is followed by ->
and the name of the real directory.

In 27.1 when I hit i (dired-maybe-insert-subdir) on Dir01, it opens
content of Dir01 in the current dired buffer. In 28.1, emacs displays
an error message:

C:/Users/Public/Applis/Dir01 not in this directory tree

There is a change in (dired-insert-subdir-validate). To verify the
directory emacs now calls (file-in-directory-p) instead of
(dired-in-this-tree-p). And:

(dired-in-this-tree-p "C:/Users/Public/Applis/Dir01/" "C:/Users/Public/")
-> 0

(file-in-directory-p "C:/Users/Public/Applis/Dir01/" "C:/Users/Public/")
-> nil

In GNU Emacs 28.1 (build 2, x86_64-w64-mingw32)
 of 2022-04-21 built on AVALON
Windowing system distributor 'Microsoft Corp.', version 10.0.19044
System Description: Microsoft Windows 10 Pro (v10.0.2009.19044.1766)

Configured using:
 'configure --with-modules --without-dbus --with-native-compilation
 --without-compress-install CFLAGS=-O2'

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

(NATIVE_COMP present but libgccjit not available)

Important settings:
  value of $LANG: FRA
  locale-coding-system: cp1252

Major mode: Summary

Minor modes in effect:
  display-time-mode: t
  shell-dirtrack-mode: t
  icomplete-mode: t
  auto-image-file-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-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
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
c:/Users/Public/emacs-site/lisp/bbdb/bbdb-vcard-export hides c:/Users/Public/emacs-site/lisp/utils/bbdb-vcard-export
c:/Users/Public/emacs-site/lisp/utils/wdired hides c:/Program Files/Emacs/emacs-28.1/share/emacs/28.1/lisp/wdired
c:/Users/Public/emacs-site/lisp/utils/ls-lisp hides c:/Program Files/Emacs/emacs-28.1/share/emacs/28.1/lisp/ls-lisp
c:/Users/Public/emacs-site/lisp/utils/iimage hides c:/Program Files/Emacs/emacs-28.1/share/emacs/28.1/lisp/iimage
c:/Users/Public/emacs-site/lisp/utils/calculator hides c:/Program Files/Emacs/emacs-28.1/share/emacs/28.1/lisp/calculator
c:/Users/Public/emacs-site/lisp/utils/table hides c:/Program Files/Emacs/emacs-28.1/share/emacs/28.1/lisp/textmodes/table
c:/Users/Public/emacs-site/lisp/remember/remember hides c:/Program Files/Emacs/emacs-28.1/share/emacs/28.1/lisp/textmodes/remember
c:/Users/Public/emacs-site/lisp/utils/rlogin hides c:/Program Files/Emacs/emacs-28.1/share/emacs/28.1/lisp/net/rlogin
c:/Users/Public/emacs-site/lisp/dictionary-1.8.7/dictionary hides c:/Program Files/Emacs/emacs-28.1/share/emacs/28.1/lisp/net/dictionary

Features:
(shadow emacsbug supercite regi shr-color color grep skeleton latexenc
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
org-agenda ox-html table comp comp-cstr warnings quail ox-ascii
ox-publish ox tex-mode mule-util canlock sh-script smie executable
rfc2104 mailalias bbdb-gui url-http url-gw url-auth url-cache
gnus-icalendar org-capture org-refile vcard flow-fill mm-archive sort
smiley gnus-cite gnus-async gnus-bcklg qp gnus-ml gnus-topic nndraft
nnmh gnus-agent gnus-srvr gnus-score score-mode nnvirtual gnus-msg
nnml utf-7 gnutls nnfolder gnus-cache network-stream nsm nntp tabify
time-stamp org-element avl-tree generator ol-eww eww xdg url-queue
mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect gnus-search
ol-docview doc-view jka-compr image-mode exif ol-bibtex ol-bbdb ol-w3m
ol-doi org-link-doi 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 oc-basic bibtex ol org-keys oc org-compat org-macs
org-loaddefs bookmark misearch multi-isearch eieio-opt cl-extra
speedbar ezimage dframe find-func shortdoc help-fns radix-tree
help-mode dired-aux autorevert filenotify gnus-dired emms-info-libtag
emms-player-vlc emms-player-mpv emms-player-mplayer
emms-playlist-limit emms-volume emms-volume-mixerctl emms-volume-pulse
emms-volume-amixer emms-i18n emms-stream-info emms-mode-line-icon
emms-playlist-sort emms-last-played emms-playing-time
emms-player-simple emms-streams emms-show-all emms-tag-editor
emms-mark emms-mode-line emms-info-ogginfo emms-info-mp3info emms-info
later-do emms-playlist-mode emms-source-playlist emms-source-file
locate music-list music-album emms-setup emms emms-compat time
highlight-current-line color-theme smtpmail sendmail tumblesocks
tumblesocks-view tumblesocks-compose markdown-mode noutline outline
htmlize tumblesocks-user tumblesocks-api oauth sasl sasl-anonymous
sasl-login sasl-plain hex-util hmac-sha1 plantuml-mode pcase dash
thingatpt html2help footnote rx muse-odf muse-xml muse-help
muse-bbcode muse-blosxom muse-wiki muse-texinfo texnfo-upd texinfo
texinfo-loaddefs muse-latex muse-html muse-docbook muse-xml-common
cus-edit pp cus-load muse-publish muse-project muse-protocols info
muse-regexps muse muse-nested-tags muse-mode u-vm-color
org-import-icalendar icalendar diary-lib diary-loaddefs bbdb-gnus
gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr
kinsoku svg dom browse-url gnus-group gnus-undo gnus-start gnus-dbus
dbus xml gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo
gnus-spec gnus-int gnus-range gnus-win gnus nnheader bbdb-snarf
mail-extr bbdb-com message rmc puny dired-explore dired-sort-menu
wid-edit acid dired-arc file-op dired-x dired dired-loaddefs rfc822
mml mml-sec gnus-util rmail rmail-loaddefs mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums
mail-prsvr mailabbrev mail-utils gmm-utils mailheader
bbdb-vcard-export bbdb-export bbdb-autoloads bbdb timezone tramp
tramp-loaddefs trampver tramp-integration files-x tramp-compat shell
pcomplete parse-time iso8601 time-date format-spec which idb gud
easy-mmode compile text-property-search comint ansi-color ring
qproj-opascal jsee javadoc-lookup ido jserial jswat qproj-java jdok
tempo url url-proxy url-privacy url-expand url-methods url-history
url-cookie url-domsuf url-util url-parse auth-source eieio eieio-core
eieio-loaddefs password-cache json subr-x map seq byte-opt bytecomp
byte-compile cconv url-vars mailcap xml-parse doxymacs qproj-cpp qproj
server dos-indent generic generic-x cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs lunar solar
cal-dst cal-tex cal-iso cal-menu calendar cal-loaddefs epa-file epa
derived epg rfc6068 epg-config ps-mule ipp cl-seq cl-macs cl gv
printing ps-print ps-print-loaddefs ps-def lpr icomplete advice
image-file image-converter edmacro kmacro cl-loaddefs cl-lib
iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode 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
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 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 emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window 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 native-compile
emacs)

Memory information:
((conses 16 851356 90733)
 (symbols 48 45899 8)
 (strings 32 223457 7090)
 (string-bytes 1 7713665)
 (vectors 16 83262)
 (vector-slots 8 1871044 124382)
 (floats 8 1340 610)
 (intervals 56 21295 650)
 (buffers 992 60))

-- 
Pascal Quesseveur