Satoshi Yoshida wrote:
> Add to .emacs
>
> (autoload 'mu-cite-original "mu-cite" nil t)
> (setq message-cite-function #'mu-cite-original)
>
> Add to .gnus.el
>
> (setq mu-cite-prefix-format '("> "))
> (setq mu-cite-cited-prefix-regexp "\\(^[^[:blank:]\n<>]+>+[[:blank:]]*\
> \\)")
> (setq mu-cite-top-format '(from " writes:\n\n"))
> (add-hook 'mu-cite-post-cite-hook
> (lambda ()
> (save-excursion
> (goto-char (point-min))
> (replace-regexp "^\n-- \n\\(.*\n\\)*" "")
> (goto-char (point-min))
> (replace-regexp "^\\([^[:blank:]\n<>]+>.*\\)" "> \\1")
> (goto-char (point-min))
> (replace-regexp "^\\([^\n>].+\n\n\\)\\(>[[:blank:]]+\n\
> \\)+" "\\1")
> (goto-char (point-min))
> (replace-regexp "^> >" ">>")
> (goto-char (point-min))
> (replace-regexp "^> -- .*\n\\(>.*\n\\)*" "")
> (goto-char (point-min))
> (replace-regexp "^\\(>[[:blank:]]+\n\\)+> \\(best\
> \\( regards\\| wishes\\)?\\|cheers\\|\\(good\\)?bye\\|good luck\
> \\|\\(kind \\|warm\\(est\\)? \\)?regards\\|respectfully\\|\
> \\(yours \\)?sincerely\\( yours\\)?\\|thank you\\( very much\\)?\
> \\|\\(many \\)?thanks\\( in advance\\| very much\\)?\
> \\),[[:blank:]]*\n\\(>.*\n\\)*" "")
> (goto-char (point-min))
> (replace-regexp "^\\(>[[:blank:]]+\n\\)+> [[:blank:]]*\
> \\(-+[[:blank:]]*\\)?[[:alpha:]]+[[:blank:]]*\n\\(>[[:blank:]]+\n\
> \\)*\\'" "")
> (goto-char (point-min))
> (replace-regexp "^\\(>[>[:blank:]]+\n\\)+\\'" "")
> (ignore-errors
> (goto-char (point-max))
> (insert-file-contents "~/.signature")
> (insert "\n-- \n"))
> (goto-line 1)
> (delete-blank-lines)
> (set-window-start () 1))))
For modular, idiomatic Elisp the TODO list would be:
1. Split into functions with names that explain what they do.
2. Instead of `replace-regexp', use
(while (re-search-forward RE nil t)
(replace-match STR) )
See the docstrings for those three functions.
--
underground experts united
https://dataswamp.org/~incal