;;; dired.el --- directory-browsing commands -*- lexical-binding: t -*-
-;; Copyright (C) 1985-1986, 1992-1997, 2000-2012
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1985-1986, 1992-1997, 2000-2013 Free Software
+;; Foundation, Inc.
;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
;; Maintainer: FSF
"Controls marking of renamed files.
If t, files keep their previous marks when they are renamed.
If a character, renamed files (whether previously marked or not)
-are afterward marked with that character."
+are afterward marked with that character.
+This option affects only files renamed by `dired-do-rename' and
+`dired-do-rename-regexp'. See `wdired-keep-marker-rename'
+if you want to do the same for files renamed in WDired mode."
:type '(choice (const :tag "Keep" t)
- (character :tag "Mark"))
+ (character :tag "Mark" :value ?R))
:group 'dired-mark)
(defcustom dired-keep-marker-copy ?C
(let* ((all-of-them
(save-excursion
(dired-map-over-marks
- (dired-get-filename localp)
+ (dired-get-filename localp 'no-error-if-not-filep)
arg nil distinguish-one-marked)))
result)
(if (not filter)
(insert dired-marker-char)))
(forward-line 1))))
-(defun dired-mark (arg)
- "Mark the current (or next ARG) files.
+(defun dired-mark (arg &optional interactive)
+ "Mark the file at point in the Dired buffer.
+If the region is active, mark all files in the region.
+Otherwise, with a prefix arg, mark files on the next ARG lines.
+
If on a subdir headerline, mark all its files except `.' and `..'.
-If the region is active in Transient Mark mode, mark all files
-in the active region.
Use \\[dired-unmark-all-files] to remove all marks
and \\[dired-unmark] on a subdir to remove the marks in
this subdir."
- (interactive "P")
+ (interactive (list current-prefix-arg t))
(cond
;; Mark files in the active region.
- ((and transient-mark-mode mark-active)
+ ((and interactive (use-region-p))
(save-excursion
(let ((beg (region-beginning))
(end (region-end)))
(prefix-numeric-value arg)
(function (lambda () (delete-char 1) (insert dired-marker-char))))))))
-(defun dired-unmark (arg)
- "Unmark the current (or next ARG) files.
+(defun dired-unmark (arg &optional interactive)
+ "Unmark the file at point in the Dired buffer.
+If the region is active, unmark all files in the region.
+Otherwise, with a prefix arg, unmark files on the next ARG lines.
+
If looking at a subdir, unmark all its files except `.' and `..'.
If the region is active in Transient Mark mode, unmark all files
in the active region."
- (interactive "P")
+ (interactive (list current-prefix-arg t))
(let ((dired-marker-char ?\040))
- (dired-mark arg)))
+ (dired-mark arg interactive)))
-(defun dired-flag-file-deletion (arg)
+(defun dired-flag-file-deletion (arg &optional interactive)
"In Dired, flag the current line's file for deletion.
-With prefix arg, repeat over several lines.
+If the region is active, flag all files in the region.
+Otherwise, with a prefix arg, flag files on the next ARG lines.
+
If on a subdir headerline, flag all its files except `.' and `..'.
If the region is active in Transient Mark mode, flag all files
in the active region."
- (interactive "P")
+ (interactive (list current-prefix-arg t))
(let ((dired-marker-char dired-del-marker))
- (dired-mark arg)))
+ (dired-mark arg interactive)))
(defun dired-unmark-backward (arg)
"In Dired, move up lines and remove marks or deletion flags there.
(setq dired-actual-switches
(replace-match "" t t dired-actual-switches 3))))
;; Now, if we weren't sorting by date before, add the -t switch.
+ ;; Some simple-minded ls implementations (eg ftp servers) only
+ ;; allow a single option string, so try not to add " -t" if possible.
(unless sorting-by-date
- (setq dired-actual-switches (concat dired-actual-switches " -t"))))
+ (setq dired-actual-switches
+ (concat dired-actual-switches
+ (if (string-match-p "\\`-[[:alnum:]]+\\'"
+ dired-actual-switches)
+ "t"
+ " -t")))))
(dired-sort-set-mode-line)
(revert-buffer))
;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command
;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown
;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff
-;;;;;; dired-diff) "dired-aux" "dired-aux.el" "244227ae609852d3dc10ab3fc40ba9ab")
+;;;;;; dired-diff) "dired-aux" "dired-aux.el" "066bb17769887a7fbc0490003f59e4b3")
;;; Generated autoloads from dired-aux.el
(autoload 'dired-diff "dired-aux" "\
;;;***
\f
;;;### (autoloads (dired-do-relsymlink dired-jump-other-window dired-jump)
-;;;;;; "dired-x" "dired-x.el" "a4e6844421c2c5e6fde90e959fbcc26f")
+;;;;;; "dired-x" "dired-x.el" "ce753ade80ea9f4e64ab3569e3a5421e")
;;; Generated autoloads from dired-x.el
(autoload 'dired-jump "dired-x" "\