+2010-12-04 Chong Yidong <cyd@stupidchicken.com>
+
+ * dired.el (dired-use-ls-dired): Set default to a special
+ "unspecified" value.
+ (dired-insert-directory): When called the first time, check
+ whether "ls --dired" succeeds and set dired-use-ls-dired (Bug#7546).
+
2010-12-04 Tak Ota <Takaaki.Ota@am.sony.com>
* replace.el: Add "collect" feature to occur.
"/etc/chown")))
"Name of chown command (usually `chown' or `/etc/chown').")
-(defvar dired-use-ls-dired (not (not (string-match "gnu" system-configuration)))
- "Non-nil means Dired should use `ls --dired'.")
+(defvar dired-use-ls-dired 'unspecified
+ "Non-nil means Dired should use \"ls --dired\".
+The special value of `unspecified' means to check explicitly, and
+save the result in this variable. This is performed the first
+time `dired-insert-directory' is called.")
(defvar dired-chmod-program "chmod"
"Name of chmod command (usually `chmod').")
(let ((opoint (point))
(process-environment (copy-sequence process-environment))
end)
- (if (or dired-use-ls-dired (file-remote-p dir))
+ (if (or (if (eq dired-use-ls-dired 'unspecified)
+ ;; Check whether "ls --dired" gives exit code 0, and
+ ;; save the answer in `dired-use-ls-dired'.
+ (setq dired-use-ls-dired
+ (eq (call-process insert-directory-program nil nil nil "--dired")
+ 0))
+ dired-use-ls-dired)
+ (file-remote-p dir))
(setq switches (concat "--dired " switches)))
;; We used to specify the C locale here, to force English month names;
;; but this should not be necessary any more,