diff options
author | Richard M. Stallman <rms@gnu.org> | 1997-07-19 08:11:51 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1997-07-19 08:11:51 +0000 |
commit | c5981ed5d334a93690a8b4964bf5d30f58924775 (patch) | |
tree | df246c5289e5b1ae3c58baa6af390fd7e482777f /lisp/mail/sendmail.el | |
parent | 4a5d6e2249d39cc6b218bd1dbdde55877200d266 (diff) | |
download | emacs-c5981ed5d334a93690a8b4964bf5d30f58924775.tar.gz |
(mail-mode): Set adaptive-fill-regexp specially to cater to supercite.
(mail-indent-citation): Take region args.
(mail-yank-original, mail-yank-region): Pass the args.
Diffstat (limited to 'lisp/mail/sendmail.el')
-rw-r--r-- | lisp/mail/sendmail.el | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index f4c75e020f7..a200e9a2d83 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el @@ -346,6 +346,9 @@ C-c C-v mail-sent-via (add a Sent-via field for each To or CC)." (setq normal-auto-fill-function 'mail-mode-auto-fill) (make-local-variable 'fill-paragraph-function) (setq fill-paragraph-function 'mail-mode-fill-paragraph) + (make-local-variable 'adaptive-fill-regexp) + (setq adaptive-fill-regexp + (concat "[ \t]+[a-z0-9A-Z]+> *\\|" adaptive-fill-regexp)) ;; `-- ' precedes the signature. `-----' appears at the start of the ;; lines that delimit forwarded messages. ;; Lines containing just >= 3 dashes, perhaps after whitespace, @@ -1008,22 +1011,26 @@ Numeric argument means justify as well." justifyp t))) -(defun mail-indent-citation () +(defun mail-indent-citation (beg end) "Modify text just inserted from a message to be cited. The inserted text should be the region. When this function returns, the region is again around the modified text. Normally, indent each nonblank line `mail-indentation-spaces' spaces. However, if `mail-yank-prefix' is non-nil, insert that prefix on each line." - (mail-yank-clear-headers (region-beginning) (region-end)) + (if (> beg end) + (let ((temp beg)) + (setq beg end end temp))) + (mail-yank-clear-headers beg end) (if (null mail-yank-prefix) - (indent-rigidly (region-beginning) (region-end) - mail-indentation-spaces) + (indent-rigidly beg end mail-indentation-spaces) (save-excursion - (goto-char (region-beginning)) - (while (< (point) (region-end)) + (goto-char beg) + (setq end (set-marker (make-marker) end)) + (while (< (point) end) (insert mail-yank-prefix) - (forward-line 1))))) + (forward-line 1)) + (set-marker end nil)))) (defun mail-yank-original (arg) "Insert the message being replied to, if any (in rmail). @@ -1055,7 +1062,7 @@ and don't delete any header fields." (run-hooks 'mail-citation-hook) (if mail-yank-hooks (run-hooks 'mail-yank-hooks) - (mail-indent-citation))))) + (mail-indent-citation (point) (mark)))))) ;; This is like exchange-point-and-mark, but doesn't activate the mark. ;; It is cleaner to avoid activation, even though the command ;; loop would deactivate the mark because we inserted text. @@ -1108,7 +1115,7 @@ and don't delete any header fields." (run-hooks 'mail-citation-hook) (if mail-yank-hooks (run-hooks 'mail-yank-hooks) - (mail-indent-citation)))))))) + (mail-indent-citation (point) (mark))))))))) (defun mail-attach-file (&optional file) "Insert a file at the end of the buffer, with separator lines around it." |