emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/mpdired 7f617d8f33 064/133: toggle marks


From: ELPA Syncer
Subject: [elpa] externals/mpdired 7f617d8f33 064/133: toggle marks
Date: Sun, 10 Mar 2024 15:59:36 -0400 (EDT)

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]