diff --git a/mu4e/mu4e-compose.el b/mu4e/mu4e-compose.el index 701ed93d..0ed93abc 100644 --- a/mu4e/mu4e-compose.el +++ b/mu4e/mu4e-compose.el @@ -329,13 +329,19 @@ base filename without any Maildir decoration. Returns the path for the sent message, either in the sent or trash folder, or nil if the message should be removed after sending." - (when-let ((sent-dir - (pcase mu4e-sent-messages-behavior - ('delete nil) - ('trash (mu4e-get-trash-folder parent)) - ('sent (mu4e-get-sent-folder parent)) - ((pred functionp) (funcall mu4e-sent-messages-behavior)) - (_ (mu4e-error "Error in `mu4e-sent-messages-behavior'"))))) + (when-let ((sent-behavior + ;; We can't call `functionp' since at least 'delete is a function. + (pcase mu4e-sent-messages-behavior + ((or 'delete 'trash 'sent) mu4e-sent-messages-behavior) + ((pred functionp mu4e-sent-messages-behavior) + (funcall mu4e-sent-messages-behavior)) + (_ mu4e-sent-messages-behavior))) + (sent-dir + (pcase sent-behavior + ('delete nil) + ('trash (mu4e-get-trash-folder parent)) + ('sent (mu4e-get-sent-folder parent)) + (_ (mu4e-error "Error in `mu4e-sent-messages-behavior'"))))) (mu4e-join-paths (mu4e-root-maildir) sent-dir "cur" (format "%s%s2,S" base-name mu4e-maildir-info-delimiter))))