diff options
author | Juri Linkov <juri@jurta.org> | 2012-09-19 02:18:06 +0300 |
---|---|---|
committer | Juri Linkov <juri@jurta.org> | 2012-09-19 02:18:06 +0300 |
commit | 42917e790eb8e92e40dc79e34846d6598279ca61 (patch) | |
tree | 954c7fd1b9ce93d73a9a7494fdea0cf4f3a04ffa /lisp | |
parent | 20f70ede43c938dd9c3c67f231ae6c645464f16e (diff) | |
download | emacs-42917e790eb8e92e40dc79e34846d6598279ca61.tar.gz |
* lisp/dired.el (dired-mark): If the region is active in Transient Mark
mode, mark all files in the active region. Doc fix.
(dired-unmark, dired-flag-file-deletion, dired-unmark-backward):
Doc fix.
Fixes: debbugs:10624
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 7 | ||||
-rw-r--r-- | lisp/dired.el | 33 |
2 files changed, 33 insertions, 7 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 43eddd7c699..66927960d25 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,12 @@ 2012-09-18 Juri Linkov <juri@jurta.org> + * dired.el (dired-mark): If the region is active in Transient Mark + mode, mark all files in the active region. Doc fix. + (dired-unmark, dired-flag-file-deletion, dired-unmark-backward): + Doc fix. (Bug#10624) + +2012-09-18 Juri Linkov <juri@jurta.org> + * dired-aux.el (dired-do-chxxx, dired-do-chmod): Default file attributes for M-n are pulled from the file at point. (dired-do-chgrp, dired-do-chown, dired-do-touch): Doc fix. diff --git a/lisp/dired.el b/lisp/dired.el index df1b5698f12..abbd5acaf4f 100644 --- a/lisp/dired.el +++ b/lisp/dired.el @@ -3097,21 +3097,37 @@ argument or confirmation)." (defun dired-mark (arg) "Mark the current (or next ARG) files. 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") - (if (dired-get-subdir) - (save-excursion (dired-mark-subdir-files)) + (cond + ;; Mark files in the active region. + ((and transient-mark-mode mark-active) + (save-excursion + (let ((beg (region-beginning)) + (end (region-end))) + (dired-mark-files-in-region + (progn (goto-char beg) (line-beginning-position)) + (progn (goto-char end) (line-beginning-position)))))) + ;; Mark subdir files from the subdir headerline. + ((dired-get-subdir) + (save-excursion (dired-mark-subdir-files))) + ;; Mark the current (or next ARG) files. + (t (let ((inhibit-read-only t)) (dired-repeat-over-lines (prefix-numeric-value arg) - (function (lambda () (delete-char 1) (insert dired-marker-char))))))) + (function (lambda () (delete-char 1) (insert dired-marker-char)))))))) (defun dired-unmark (arg) "Unmark the current (or next ARG) files. -If looking at a subdir, unmark all its files except `.' and `..'." +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") (let ((dired-marker-char ?\040)) (dired-mark arg))) @@ -3119,8 +3135,9 @@ If looking at a subdir, unmark all its files except `.' and `..'." (defun dired-flag-file-deletion (arg) "In Dired, flag the current line's file for deletion. With prefix arg, repeat over several lines. - -If on a subdir headerline, mark all its files except `.' and `..'." +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") (let ((dired-marker-char dired-del-marker)) (dired-mark arg))) @@ -3128,7 +3145,9 @@ If on a subdir headerline, mark all its files except `.' and `..'." (defun dired-unmark-backward (arg) "In Dired, move up lines and remove marks or deletion flags there. Optional prefix ARG says how many lines to unmark/unflag; default -is one line." +is one line. +If the region is active in Transient Mark mode, unmark all files +in the active region." (interactive "p") (dired-unmark (- arg))) |