diff --git a/mu4e/mu4e-headers.el b/mu4e/mu4e-headers.el index 8e88c0be..99a98164 100644 --- a/mu4e/mu4e-headers.el +++ b/mu4e/mu4e-headers.el @@ -423,15 +423,14 @@ after the end of the search results." (defmacro mu4e~headers-defun-mark-for (mark) "Define a function mu4e~headers-mark-MARK." - (let ((funcname (intern (concat "mu4e-headers-mark-for-" (symbol-name mark)))) - (docstring (concat "Mark header at point with " (symbol-name mark) "."))) - `(defun ,funcname () ,docstring - (interactive) - (mu4e-headers-mark-and-next (quote ,mark))))) + (let ((funcname (intern (format "mu4e-headers-mark-for-%s" mark))) + (docstring (format "Mark header at point with %s." mark))) + `(progn + (defun ,funcname () ,docstring + (interactive) + (mu4e-headers-mark-and-next ',mark)) + (put ',funcname 'definition-name ',mark)))) -;; define our mark functions; there must be some way to do this in a loop but -;; since `mu4e~headers-defun-mark-func' is a macro, the argument must be a -;; literal value. (mu4e~headers-defun-mark-for refile) (mu4e~headers-defun-mark-for something) (mu4e~headers-defun-mark-for delete) diff --git a/mu4e/mu4e-view.el b/mu4e/mu4e-view.el index 1481ea4a..7b25bcf1 100644 --- a/mu4e/mu4e-view.el +++ b/mu4e/mu4e-view.el @@ -1105,18 +1105,14 @@ list." (defmacro mu4e~view-defun-mark-for (mark) "Define a function mu4e-view-mark-for-MARK." - (let ((funcname (intern (concat "mu4e-view-mark-for-" (symbol-name mark)))) - (docstring (format "Mark the current message for %s." - (symbol-name mark)))) - `(defun ,funcname () ,docstring - (interactive) - (mu4e~view-in-headers-context - (mu4e-headers-mark-and-next (quote ,mark)))))) - -;; would be cool to do something like the following, but somehow, I can't get -;; the quoting right... -;; (dolist (mark '(move trash refile delete flag unflag unmark deferred)) -;; (mu4e~view-defun-mark-for mark)) + (let ((funcname (intern (format "mu4e-view-mark-for-%s" mark))) + (docstring (format "Mark the current message for %s." mark))) + `(progn + (defun ,funcname () ,docstring + (interactive) + (mu4e~view-in-headers-context + (mu4e-headers-mark-and-next ',mark))) + (put ',funcname 'definition-name ',mark)))) (mu4e~view-defun-mark-for move) (mu4e~view-defun-mark-for trash)