diff --git a/mu4e/mu4e-compose.el b/mu4e/mu4e-compose.el index a7352390..ebaa42e5 100644 --- a/mu4e/mu4e-compose.el +++ b/mu4e/mu4e-compose.el @@ -900,11 +900,17 @@ buffer buried." ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -(defun mu4e-compose-goto-top () +(defun mu4e-compose-goto-top (&optional arg) "Go to the beginning of the message or buffer. Go to the beginning of the message or, if already there, go to the -beginning of the buffer." - (interactive) +beginning of the buffer. + +Push mark at previous position, unless either a \\[universal-argument] prefix +is supplied, or Transient Mark mode is enabled and the mark is active." + (interactive "P") + (or arg + (region-active-p) + (push-mark)) (let ((old-position (point))) (message-goto-body) (when (equal (point) old-position) @@ -913,11 +919,17 @@ beginning of the buffer." (define-key mu4e-compose-mode-map (vector 'remap 'beginning-of-buffer) 'mu4e-compose-goto-top) -(defun mu4e-compose-goto-bottom () +(defun mu4e-compose-goto-bottom (&optional arg) "Go to the end of the message or buffer. Go to the end of the message (before signature) or, if already there, go to the -end of the buffer." - (interactive) +end of the buffer. + +Push mark at previous position, unless either a \\[universal-argument] prefix +is supplied, or Transient Mark mode is enabled and the mark is active." + (interactive "P") + (or arg + (region-active-p) + (push-mark)) (let ((old-position (point)) (message-position (save-excursion (message-goto-body) (point)))) (goto-char (point-max))