summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1997-07-19 08:11:51 +0000
committerRichard M. Stallman <rms@gnu.org>1997-07-19 08:11:51 +0000
commitc5981ed5d334a93690a8b4964bf5d30f58924775 (patch)
treedf246c5289e5b1ae3c58baa6af390fd7e482777f
parent4a5d6e2249d39cc6b218bd1dbdde55877200d266 (diff)
downloademacs-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.
-rw-r--r--lisp/mail/sendmail.el25
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."