branch: externals/mpdired commit 7f617d8f3342aa56e4e6dcca2f40efc75aab0c8b Author: Manuel Giraud <man...@ledu-giraud.fr> Commit: Manuel Giraud <man...@ledu-giraud.fr>
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)