;;; dired.el --- directory-browsing commands
;; Copyright (C) 1985, 1986, 1992, 1993, 1994, 1995, 1996, 1997, 2000,
-;; 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;; 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
;; Maintainer: FSF
`dired-ls-F-marks-symlinks' concerning the `F' switch.
On systems such as MS-DOS and MS-Windows, which use `ls' emulation in Lisp,
some of the `ls' switches are not supported; see the doc string of
-`insert-directory' on `ls-lisp.el' for more details."
+`insert-directory' in `ls-lisp.el' for more details."
:type 'string
:group 'dired)
(run-hooks 'dired-before-readin-hook)
(if (consp buffer-undo-list)
(setq buffer-undo-list nil))
+ (make-local-variable 'file-name-coding-system)
+ (setq file-name-coding-system
+ (or coding-system-for-read file-name-coding-system))
(let (buffer-read-only
;; Don't make undo entries for readin.
(buffer-undo-list t))
;; treat top level dir extra (it may contain wildcards)
(dired-uncache
(if (consp dired-directory) (car dired-directory) dired-directory))
- (dired-readin)
+ ;; Run dired-after-readin-hook just once, below.
(let ((dired-after-readin-hook nil))
- ;; don't run that hook for each subdir...
+ (dired-readin)
(dired-insert-old-subdirs old-subdir-alist))
(dired-mark-remembered mark-alist) ; mark files that were marked
;; ... run the hook for the whole buffer, and only after markers
;; Modeline display of "by name" or "by date" guarantees the user a
;; match with the corresponding regexps. Non-matching switches are
;; shown literally.
- (setq mode-name
- (let (case-fold-search)
- (cond ((string-match dired-sort-by-name-regexp dired-actual-switches)
- "Dired by name")
- ((string-match dired-sort-by-date-regexp dired-actual-switches)
- "Dired by date")
- (t
- (concat "Dired " dired-actual-switches)))))
- (force-mode-line-update))
+ (when (eq major-mode 'dired-mode)
+ (setq mode-name
+ (let (case-fold-search)
+ (cond ((string-match
+ dired-sort-by-name-regexp dired-actual-switches)
+ "Dired by name")
+ ((string-match
+ dired-sort-by-date-regexp dired-actual-switches)
+ "Dired by date")
+ (t
+ (concat "Dired " dired-actual-switches)))))
+ (force-mode-line-update)))
(defun dired-sort-toggle-or-edit (&optional arg)
"Toggle between sort by date/name and refresh the dired buffer.
With optional second arg NO-REVERT, don't refresh the listing afterwards."
(dired-sort-R-check switches)
(setq dired-actual-switches switches)
- (if (eq major-mode 'dired-mode) (dired-sort-set-modeline))
+ (dired-sort-set-modeline)
(or no-revert (revert-buffer)))
(defvar dired-subdir-alist-pre-R nil