diff -r 5924c33ab4ad -r e72b61b36451 .emacs-my --- 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