From f73af44dc0db7e6667ec743d751b14877454c538 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Fri, 21 Jul 2017 11:10:39 +0200 Subject: Make composing new mails simpler * skip headers * inserert greeting * move to first quotable block in replies --- mail.el | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 mail.el diff --git a/mail.el b/mail.el new file mode 100644 index 0000000..906ac1f --- /dev/null +++ b/mail.el @@ -0,0 +1,38 @@ +;; simplify mail handling +(defun _xcpu-current-line-empty-p () + (eq 0 (string-match-p "^$" (thing-at-point 'line)))) + +(defun _xcpu-current-line-banner-p () + (eq 0 (string-match-p "^On" (thing-at-point 'line)))) + +(defun _xcpu-current-line-quoted-empty-p () + (eq 0 (string-match-p "^\\(> *\\)$" (thing-at-point 'line)))) + +(defun _xcpu-current-line-quoted-p () + (eq 0 (string-match-p "^\\(> *\\)" (thing-at-point 'line)))) + +(defun xcpu-reply-mail () + "Skip over header and look for first paragraph to reply to when answering mail" + (interactive) + (goto-char 1) + ;; Skip the email header + (while (not (_xcpu-current-line-empty-p)) + (forward-line 1) + (beginning-of-line) + ) + (forward-line 1) + ;; Insert greeting if reply or new mail + (when (or + (_xcpu-current-line-banner-p) + (_xcpu-current-line-empty-p)) + (forward-line -1) + (insert "\nHi,") + (forward-line 2) + ;; search for first quoted line that is empty + (when (_xcpu-current-line-quoted-p) + (while (not (_xcpu-current-line-quoted-empty-p)) + (forward-line 1) + (beginning-of-line) + )) + ) +) -- cgit v1.2.3