From 5b6575b75deb35f9891fe45877fc39245aaaecc8 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 29 Aug 1996 01:25:34 +0000 Subject: [PATCH] (mail-mode-auto-fill): New function. (mail-mode): Put it into normal-auto-fill-function. --- lisp/mail/sendmail.el | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/lisp/mail/sendmail.el b/lisp/mail/sendmail.el index 93c33c19b2d..42d52af460e 100644 --- a/lisp/mail/sendmail.el +++ b/lisp/mail/sendmail.el @@ -229,7 +229,7 @@ actually occur.") (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 @@ actually occur.") (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 @@ C-c C-v mail-sent-via (add a Sent-via field for each To or CC)." (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 @@ C-c C-v mail-sent-via (add a Sent-via field for each To or CC)." "$\\|[ \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 @@ C-c C-v mail-sent-via (add a Sent-via field for each To or CC)." (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 @@ the user from the mailer." (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) -- 2.39.2