From feba2bb377c8fa7e8b415848c6dd920e6f56546f Mon Sep 17 00:00:00 2001 From: djcb Date: Mon, 29 Oct 2012 12:25:07 +0200 Subject: [PATCH] * mu4e: fix target == nil case in mu4e-mark-set (thanks to Jonas Bernoulli) Previously when TARGET was nil, point was moved which changed the region that is later used to determine the messages to be marked. --- mu4e/mu4e-mark.el | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mu4e/mu4e-mark.el b/mu4e/mu4e-mark.el index 28ab625a..9a00c376 100644 --- a/mu4e/mu4e-mark.el +++ b/mu4e/mu4e-mark.el @@ -177,15 +177,17 @@ otherwise return nil." (defun mu4e-mark-set (mark &optional target) "Mark the header at point, or, if region is active, mark all headers in the region. Optionally, provide TARGET (for moves)." + (unless target + (setq target (mu4e~mark-get-target mark target))) (if (not (use-region-p)) ;; single message - (mu4e-mark-at-point mark (or target (mu4e~mark-get-target mark target))) + (mu4e-mark-at-point mark target) ;; mark all messages in the region. (save-excursion (let ((cant-go-further) (eor (region-end))) (goto-char (region-beginning)) (while (and (<= (point) eor) (not cant-go-further)) - (mu4e-mark-at-point mark (or target (mu4e~mark-get-target mark target))) + (mu4e-mark-at-point mark target) (setq cant-go-further (not (mu4e-headers-next)))))))) (defun mu4e-mark-restore (docid)