changeset 15962:37baba8d7fbc

(mail-mode-auto-fill): New function. (mail-mode): Put it into normal-auto-fill-function.
author Richard M. Stallman <rms@gnu.org>
date Thu, 29 Aug 1996 01:25:34 +0000
parents e26f5c2b75a6
children 5b10dc4cd791
files lisp/mail/sendmail.el
diffstat 1 files changed, 28 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mail/sendmail.el	Thu Aug 29 00:51:51 1996 +0000
+++ b/lisp/mail/sendmail.el	Thu Aug 29 01:25:34 1996 +0000
@@ -229,7 +229,7 @@
 
 (defvar mail-send-hook nil
   "Normal hook run before sending mail, in Mail mode.")
-
+
 (defun sendmail-sync-aliases ()
   (let ((modtime (nth 5 (file-attributes mail-personal-alias-file))))
     (or (equal mail-alias-modtime modtime)
@@ -299,7 +299,7 @@
   (or to subject in-reply-to
       (set-buffer-modified-p nil))
   (run-hooks 'mail-setup-hook))
-
+
 ;;;###autoload
 (defun mail-mode ()
   "Major mode for editing mail to be sent.
@@ -328,6 +328,8 @@
   (setq font-lock-defaults '(mail-font-lock-keywords t))
   (make-local-variable 'paragraph-separate)
   (make-local-variable 'paragraph-start)
+  (make-local-variable 'normal-auto-fill-function)
+  (setq normal-auto-fill-function 'mail-mode-auto-fill)
   ;; `-- ' precedes the signature.  `-----' appears at the start of the
   ;; lines that delimit forwarded messages.
   ;; Lines containing just >= 3 dashes, perhaps after whitespace,
@@ -339,6 +341,25 @@
 				   "$\\|[ \t]*[-_][-_][-_]+$\\|-- $\\|-----\\|"
 				   paragraph-separate))
   (run-hooks 'text-mode-hook 'mail-mode-hook))
+
+(defun mail-mode-auto-fill ()
+  "Carry out Auto Fill for Mail mode.
+If within the headers, this makes the new lines into continuation lines."
+  (if (< (point)
+	 (save-excursion
+	   (goto-char (point-min))
+	   (if (search-forward mail-header-separator nil t)
+	       (point)
+	     0)))
+      (let ((old-line-start (save-excursion (beginning-of-line) (point))))
+	(if (do-auto-fill)
+	    (save-excursion
+	      (beginning-of-line)
+	      (while (not (eq (point) old-line-start))
+		(insert "   ")
+		(forward-line -1))
+	      t)))
+    (do-auto-fill)))
 
 ;;; Set up keymap.
 
@@ -409,6 +430,8 @@
 (define-key mail-mode-map [menu-bar headers to]
   '("To" . mail-to))
 
+;; User-level commands for sending.
+
 (defun mail-send-and-exit (arg)
   "Send message like `mail-send', then, if no errors, exit from mail buffer.
 Prefix arg means don't delete this window."
@@ -477,6 +500,9 @@
 	    (progn
 	      (set-buffer-modified-p nil)
 	      (delete-auto-save-file-if-necessary t))))))
+
+;; This does the real work of sending a message via sendmail.
+;; It is called via the variable send-mail-function.
 
 (defun sendmail-send-it ()
   (require 'mail-utils)