Turned off ls-list for Cygwin to make Dired work for dirs with special files from WSL P9 FS.
--- a/.emacs-my Sun Dec 13 19:17:21 2020 +0200
+++ b/.emacs-my Sun Dec 13 20:00:18 2020 +0200
@@ -1381,13 +1381,24 @@
(require 'ls-lisp)
-;; If non-nil - use 'insert-directory-program', which I dislike.
+;; If non-nil - use 'insert-directory-program', means directory sorting and
+;; other options for `ls-lisp' do not have effect.
(setq ls-lisp-use-insert-directory-program nil)
(setq ls-lisp-ignore-case t)
(setq ls-lisp-dirs-first t)
(if (memq system-type '(windows-nt cygwin))
(setq ls-lisp-verbosity nil)
- (setq ls-lisp-verbosity '(links uid gid)))
+ (setq ls-lisp-verbosity '(links uid gid)))
+
+;; On Cygwin use actual "ls" executable. List implementation fails with:
+;; ls-lisp-insert-directory: Getting attributes: Input/output error, lock
+;; for some files, making it impossible to see directory contend in Dired even
+;; if only some files are problmatic (accessing special files from WSL P9 file system).
+(when (eq system-type 'cygwin)
+ (setq my-ls-dir-switches '("-a" "-g" "--no-group" "--dired" "--group-directories-first"))
+ (setq ls-lisp-use-insert-directory-program t)
+ (setq list-directory-verbose-switches my-ls-dir-switches)
+ (setq dired-listing-switches (mapconcat #'identity my-ls-dir-switches " ")))
;; Force use 'ls-lisp-format-time-list'.
(setq ls-lisp-use-localized-time-format t)
(setq ls-lisp-format-time-list