summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnus-conf.el2
-rw-r--r--mail.el57
2 files changed, 57 insertions, 2 deletions
diff --git a/gnus-conf.el b/gnus-conf.el
index 5ffca03..9347818 100644
--- a/gnus-conf.el
+++ b/gnus-conf.el
@@ -34,7 +34,7 @@
(setq gnus-select-method '(nnnil ""))
(setq gnus-secondary-select-methods
'((nntp "news.gmane.io")
- (nnmaildir "gmail" (directory "~/.nnmaildir/gmail"))
+ ;; (nnmaildir "gmail" (directory "~/.nnmaildir/gmail"))
(nnmaildir "durand" (directory "~/.nnmaildir/mymail"))
;; (nndiary "diary")
;; (nnmaildir "sent" (directory "~/.nnmaildir"))
diff --git a/mail.el b/mail.el
index 11c8514..a99a4bf 100644
--- a/mail.el
+++ b/mail.el
@@ -14,7 +14,7 @@
(setq mu4e-confirm-quit nil)
;; mbsync works a lot better!
(setq mu4e-get-mail-command
- "mbsync mymail-inbox mymail-sent gmail-inbox gmail-sent")
+ "mbsync mymail-inbox mymail-sent")
(setq mu4e-change-filenames-when-moving t)
(setq mu4e-view-show-addresses t) ; show full addresses!
(setq mu4e-view-show-images t)
@@ -249,3 +249,58 @@ and produce the quoted message."
(define-key message-mode-map (vector 3 ?q) #'durand-quote-message)
(define-key gnus-summary-mode-map (vector 3 ?q) #'durand-quote-message)
(define-key gnus-article-mode-map (vector 3 ?q) #'durand-quote-message)
+
+;;; Fix the quotation style
+
+(defun durand-fix-quotation (&optional just-use-durand)
+ "Fix the quotation style.
+If JUST-USE-DURAND is non-nil, just use \"Durand\" as the
+person."
+ (interactive "P")
+ (save-match-data
+ (save-excursion
+ (let* ((beg (region-beginning))
+ (end (region-end))
+ (end (progn (goto-char end) (point-marker)))
+ (person (cond (just-use-durand "Durand")
+ ((read-string "Name: ")))))
+ (goto-char beg)
+ (while (< (point) (marker-position end))
+ (cond
+ ((re-search-forward
+ (rx-to-string '(seq ">>" eol))
+ (marker-position end)
+ t)
+ (replace-match "" nil nil nil 0)))
+ (forward-line 1))
+ (goto-char beg)
+ (while (< (point) (marker-position end))
+ (cond ((looking-at (rx-to-string
+ '(seq bol (zero-or-more (in space))
+ (group
+ (one-or-more
+ ">>"
+ (one-or-more (in space)))
+ (group (one-or-more (not (in ">\n"))))
+ (one-or-more
+ ">>"
+ (one-or-more (in space)))))
+ t))
+ (let ((middle-text (match-string 2)))
+ (replace-match
+ (format "%s> %s" person middle-text) t t nil 1)))
+ ((looking-at (rx-to-string
+ '(seq bol (one-or-more (in space))
+ (group
+ (one-or-more
+ ">>"
+ (one-or-more (in space)))))
+ t))
+ (replace-match (format "%s> " person) t t nil 1)))
+ (forward-line 1))
+ (fill-region beg (marker-position end))
+ (message "Processing...Done")))))
+
+(define-key message-mode-map (vector 3 ?f) #'durand-fix-quotation)
+(define-key gnus-summary-mode-map (vector 3 ?f) #'durand-fix-quotation)
+(define-key gnus-article-mode-map (vector 3 ?f) #'durand-fix-quotation)