# HG changeset patch # User Richard M. Stallman # Date 869299911 0 # Node ID d86beb823996cf2b5566825ba749d950c8ebc3e0 # Parent 3874dbc1bdcf4cd0169cfaf2552c3757167034c8 (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. diff -r 3874dbc1bdcf -r d86beb823996 lisp/mail/sendmail.el --- a/lisp/mail/sendmail.el Sat Jul 19 07:29:46 1997 +0000 +++ b/lisp/mail/sendmail.el Sat Jul 19 08:11:51 1997 +0000 @@ -346,6 +346,9 @@ (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 @@ 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 @@ (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 @@ (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."