branch: externals/mpdired
commit 7f617d8f3342aa56e4e6dcca2f40efc75aab0c8b
Author: Manuel Giraud <[email protected]>
Commit: Manuel Giraud <[email protected]>
toggle marks
---
mpdired.el | 39 ++++++++++++++++++++++++++++-----------
1 file changed, 28 insertions(+), 11 deletions(-)
diff --git a/mpdired.el b/mpdired.el
index 7f1c93b869..6708debeb6 100644
--- a/mpdired.el
+++ b/mpdired.el
@@ -62,6 +62,7 @@
"u" 'mpdired-unmark-at-point
"<DEL>" 'mpdired-previous-unmark
"d" 'mpdired-mark-deletion-at-point
+ "t" 'mpdired-toggle-marks
;; Only in the queue view
"x" 'mpdired-flagged-delete
"D" 'mpdired-delete)
@@ -587,27 +588,43 @@
(delete-char 1)
(insert-char mark))
(put-text-property (mpdired--bol) (line-end-position) 'mark mark)
+ (mpdired--reset-face)))
+
+(defun mpdired--clear-mark ()
+ (let ((inhibit-read-only t))
+ (remove-text-properties (mpdired--bol) (line-end-position) '(mark face))
(mpdired--reset-face)
- (mpdired-next-line)))
+ (save-excursion
+ (goto-char (line-beginning-position))
+ (delete-char 1)
+ (insert-char ? ))))
(defun mpdired-mark-at-point ()
(interactive)
- (mpdired--mark ?*))
+ (mpdired--mark ?*)
+ (mpdired-next-line))
(defun mpdired-mark-deletion-at-point ()
(interactive)
- (mpdired--mark ?d))
+ (mpdired--mark ?d)
+ (mpdired-next-line))
+
+(defun mpdired-toggle-marks ()
+ (interactive)
+ (save-excursion
+ (goto-char (point-min))
+ (let ((max (point-max)))
+ (while (< (point) max)
+ (let ((mark (get-text-property (mpdired--bol) 'mark)))
+ (if (and mark (char-equal mark ?*))
+ (mpdired--clear-mark)
+ (mpdired--mark ?*)))
+ (forward-line)))))
(defun mpdired-unmark-at-point ()
(interactive)
- (let ((inhibit-read-only t))
- (remove-text-properties (mpdired--bol) (line-end-position) '(mark face))
- (mpdired--reset-face)
- (save-excursion
- (goto-char (line-beginning-position))
- (delete-char 1)
- (insert-char ? ))
- (mpdired-next-line)))
+ (mpdired--clear-mark)
+ (mpdired-next-line))
(defun mpdired-previous-unmark ()
(interactive)