From f016f257f9156c19e8e2288db45a04932bc020c9 Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Sat, 16 May 2020 11:44:48 +0300 Subject: [PATCH] mu4e: support 'no trash flag' for all mark-for-trash Use a non-macro implementation for mu4e-(view|headers)-mark-for-trash, and honor the no-trash flag. Fixes #1687. --- mu4e/mu4e-headers.el | 15 ++++++--------- mu4e/mu4e-view.el | 11 ++--------- 2 files changed, 8 insertions(+), 18 deletions(-) diff --git a/mu4e/mu4e-headers.el b/mu4e/mu4e-headers.el index 054ccaf8..34590235 100644 --- a/mu4e/mu4e-headers.el +++ b/mu4e/mu4e-headers.el @@ -806,7 +806,6 @@ after the end of the search results." (mu4e~headers-defun-mark-for flag) (mu4e~headers-defun-mark-for move) (mu4e~headers-defun-mark-for read) -(mu4e~headers-defun-mark-for trash) (mu4e~headers-defun-mark-for unflag) (mu4e~headers-defun-mark-for untrash) (mu4e~headers-defun-mark-for unmark) @@ -816,20 +815,18 @@ after the end of the search results." (defvar mu4e-move-to-trash-patterns '() "List of regexps to match for moving to trash instead of flagging them. This is particularly useful for mailboxes that don't use the -trash flag like Gmail. See `mu4e-headers-mark-or-move-to-trash' -and `mu4e-view-mark-or-move-to-trash'.") +trash flag like Gmail. See `mu4e-view-mark-for-trash'.") -(defun mu4e-headers-mark-or-move-to-trash () +(defun mu4e-headers-mark-for-trash () "Mark message for \"move\" to the trash folder if the message maildir matches any regexp in `mu4e-move-to-trash-patterns'. -Otherwise mark with the \"trash\" flag. -Also see `mu4e-view-mark-or-move-to-trash'." +Otherwise mark with the \"trash\" flag." (interactive) (let ((msg-dir (mu4e-message-field (mu4e-message-at-point) :maildir))) (if (not (seq-filter (lambda (re) (string-match re msg-dir)) mu4e-move-to-trash-patterns)) - (mu4e-headers-mark-for-trash) + (mu4e-headers-mark-and-next 'trash) (mu4e-mark-set 'move (if (functionp mu4e-trash-folder) (funcall mu4e-trash-folder (mu4e-message-at-point)) (mu4e-get-trash-folder (mu4e-message-at-point)))) @@ -895,8 +892,8 @@ Also see `mu4e-view-mark-or-move-to-trash'." (define-key map "y" 'mu4e-select-other-view) ;; marking/unmarking ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - (define-key map (kbd "") 'mu4e-headers-mark-or-move-to-trash) - (define-key map (kbd "d") 'mu4e-headers-mark-or-move-to-trash) + (define-key map (kbd "") 'mu4e-headers-mark-for-trash) + (define-key map (kbd "d") 'mu4e-headers-mark-for-trash) (define-key map (kbd "") 'mu4e-headers-mark-for-delete) (define-key map (kbd "") 'mu4e-headers-mark-for-delete) (define-key map (kbd "D") 'mu4e-headers-mark-for-delete) diff --git a/mu4e/mu4e-view.el b/mu4e/mu4e-view.el index ded6ef46..077ee405 100644 --- a/mu4e/mu4e-view.el +++ b/mu4e/mu4e-view.el @@ -873,7 +873,7 @@ FUNC should be a function taking two arguments: (define-key map "A" (mu4e~native-def mu4e-view-attachment-action)) ;; marking/unmarking - (define-key map "d" 'mu4e-view-mark-or-move-to-trash) + (define-key map "d" 'mu4e-view-mark-for-trash) (define-key map (kbd "") 'mu4e-view-mark-for-delete) (define-key map (kbd "") 'mu4e-view-mark-for-delete) (define-key map (kbd "D") 'mu4e-view-mark-for-delete) @@ -1614,8 +1614,8 @@ list." (put ',funcname 'definition-name ',mark)))) (mu4e~view-defun-mark-for move) -(mu4e~view-defun-mark-for trash) (mu4e~view-defun-mark-for refile) +(mu4e~view-defun-mark-for trash) (mu4e~view-defun-mark-for delete) (mu4e~view-defun-mark-for flag) (mu4e~view-defun-mark-for unflag) @@ -1631,13 +1631,6 @@ list." (mu4e~view-in-headers-context (mu4e-mark-execute-all))) -(defun mu4e-view-mark-or-move-to-trash (&optional n) - "See `mu4e-headers-mark-or-move-to-trash'." - (interactive "P") - (mu4e~view-in-headers-context - (mu4e-headers-mark-or-move-to-trash) - (mu4e~headers-move (or n 1)))) - ;;; URL handling (defun mu4e~view-get-urls-num (prompt &optional multi)