Mercurial > emacs
changeset 66626:8d60d23ffa33
* mh-comp.el (mh-redist-full-contents) Convert defvar to defcustom.
(mh-smail, mh-extract-rejected-mail, mh-forward, mh-redistribute)
(mh-reply, mh-send, mh-send-other-window)
(mh-fill-paragraph-function): Sync docstrings with manual.
* mh-customize.el (mh-redist-full-contents-flag): Convert defvar to
defcustom.
(mh-compose-forward-as-mime-flag)
(mh-compose-letter-function, mh-forward-subject-format)
(mh-insert-x-mailer-flag, mh-reply-default-reply-to)
(mh-reply-show-message-flag, mh-letter-mode-hook): Sync docstrings
with manual.
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Wed, 02 Nov 2005 01:13:07 +0000 |
parents | a6851dd5148b |
children | d4bc6b8ae712 |
files | lisp/mh-e/ChangeLog lisp/mh-e/mh-comp.el lisp/mh-e/mh-customize.el |
diffstat | 3 files changed, 206 insertions(+), 106 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/mh-e/ChangeLog Tue Nov 01 23:21:39 2005 +0000 +++ b/lisp/mh-e/ChangeLog Wed Nov 02 01:13:07 2005 +0000 @@ -1,5 +1,21 @@ 2005-11-01 Bill Wohler <wohler@newt.com> + * mh-comp.el (mh-redist-full-contents) Convert defvar to + defcustom. + (mh-smail, mh-extract-rejected-mail, mh-forward, mh-redistribute) + (mh-reply, mh-send, mh-send-other-window) + (mh-fill-paragraph-function): Sync docstrings with manual. + (mh-edit-again, mh-extract-rejected-mail, mh-redistribute): Rename + msg argument to message (to make for a better docstring). + + * mh-customize.el (mh-redist-full-contents-flag): Convert defvar + to defcustom. + (mh-compose-forward-as-mime-flag) + (mh-compose-letter-function, mh-forward-subject-format) + (mh-insert-x-mailer-flag, mh-reply-default-reply-to) + (mh-reply-show-message-flag, mh-letter-mode-hook): Sync docstrings + with manual. + * mh-print.el (mh-ps-spool-buffer, mh-ps-spool-a-msg) (mh-ps-print-msg): Remove debugging messages. (mh-ps-print-msg-show, mh-ps-print-msg-show)
--- a/lisp/mh-e/mh-comp.el Tue Nov 01 23:21:39 2005 +0000 +++ b/lisp/mh-e/mh-comp.el Wed Nov 02 01:13:07 2005 +0000 @@ -86,11 +86,6 @@ "Name of the MH send program. Some sites need to change this because of a name conflict.") -(defvar mh-redist-full-contents nil - "Non-nil if the `dist' command needs whole letter for redistribution. -This is the case only when `send' is compiled with the BERK option. -If MH will not allow you to redist a previously redist'd msg, set to nil.") - (defvar mh-redist-background nil "If non-nil redist will be done in background like send. This allows transaction log to be visible if -watch, -verbose or -snoop are @@ -195,24 +190,29 @@ ;;;###autoload (defun mh-smail () - "Compose and send mail with the MH mail system. -This function is an entry point to MH-E, the Emacs interface to the MH mail -system. - + "Compose a message with the MH mail system. See `mh-send' for more details on composing mail." (interactive) (mh-find-path) (call-interactively 'mh-send)) +;;;###autoload +(defun mh-smail-other-window () + "Compose a message with the MH mail system in other window. +See `mh-send' for more details on composing mail." + (interactive) + (mh-find-path) + (call-interactively 'mh-send-other-window)) + (defvar mh-error-if-no-draft nil) ;raise error over using old draft ;;;###autoload (defun mh-smail-batch (&optional to subject other-headers &rest ignored) - "Set up a mail composition draft with the MH mail system. -This function is an entry point to MH-E, the Emacs interface to the MH mail -system. This function does not prompt the user for any header fields, and thus + "Compose a message with the MH mail system. + +This function does not prompt the user for any header fields, and thus is suitable for use by programs that want to create a mail buffer. Users -should use `mh-smail' to compose mail. +should use \\[mh-smail] to compose mail. Optional arguments for setting certain fields include TO, SUBJECT, and OTHER-HEADERS. Additional arguments are IGNORED." @@ -245,10 +245,25 @@ (setq other-headers (cdr other-headers))))) ;;;###mh-autoload -(defun mh-edit-again (msg) - "Clean up a draft or a message MSG previously sent and make it resendable. -Default is the current message. -The variable `mh-new-draft-cleaned-headers' specifies the headers to remove. +(defun mh-edit-again (message) + "Edit a MESSAGE to send it again. + +If you don't complete a draft for one reason or another, and if the draft +buffer is no longer available, you can pick your draft up again with this +command. If you don't use a draft folder, your last \"draft\" file will be +used. If you use draft folders, you'll need to visit the draft folder with +\"\\[mh-visit-folder] drafts <RET>\", use \\[mh-next-undeleted-msg] to move to +the appropriate message, and then use \\[mh-edit-again] to prepare the message +for editing. + +This command can also be used to take messages that were sent to you and to +send them to more people. + +Don't use this command to re-edit a message from a Mailer-Daemon who +complained that your mail wasn't posted for some reason or another (see +`mh-extract-rejected-mail'). + +The default message is the current message. See also `mh-send'." (interactive (list (mh-get-msg-num t))) @@ -256,8 +271,9 @@ (config (current-window-configuration)) (draft (cond ((and mh-draft-folder (equal from-folder mh-draft-folder)) - (pop-to-buffer (find-file-noselect (mh-msg-filename msg)) t) - (rename-buffer (format "draft-%d" msg)) + (pop-to-buffer (find-file-noselect (mh-msg-filename message)) + t) + (rename-buffer (format "draft-%d" message)) ;; Make buffer writable... (setq buffer-read-only nil) ;; If buffer was being used to display the message reinsert @@ -267,7 +283,7 @@ (insert-file-contents buffer-file-name)) (buffer-name)) (t - (mh-read-draft "clean-up" (mh-msg-filename msg) nil))))) + (mh-read-draft "clean-up" (mh-msg-filename message) nil))))) (mh-clean-msg-header (point-min) mh-new-draft-cleaned-headers nil) (mh-insert-header-separator) (goto-char (point-min)) @@ -278,16 +294,20 @@ (mh-letter-adjust-point))) ;;;###mh-autoload -(defun mh-extract-rejected-mail (msg) - "Extract message MSG returned by the mail system and make it resendable. -Default is the current message. The variable `mh-new-draft-cleaned-headers' -gives the headers to clean out of the original message. +(defun mh-extract-rejected-mail (message) + "Edit a MESSAGE that was returned by the mail system. + +This command prepares the message for editing by removing the Mailer-Daemon +envelope and unneeded header fields. Fix whatever addressing problem you had, +and send the message again with \\[mh-send-letter]. + +The default message is the current message. See also `mh-send'." (interactive (list (mh-get-msg-num t))) (let ((from-folder mh-current-folder) (config (current-window-configuration)) - (draft (mh-read-draft "extraction" (mh-msg-filename msg) nil))) + (draft (mh-read-draft "extraction" (mh-msg-filename message) nil))) (goto-char (point-min)) (cond ((re-search-forward mh-rejected-letter-start nil t) (skip-chars-forward " \t\n") @@ -298,7 +318,7 @@ (mh-insert-header-separator) (goto-char (point-min)) (save-buffer) - (mh-compose-and-send-mail draft "" from-folder msg + (mh-compose-and-send-mail draft "" from-folder message (mh-get-header-field "To:") (mh-get-header-field "From:") (mh-get-header-field "Cc:") @@ -307,14 +327,20 @@ ;;;###mh-autoload (defun mh-forward (to cc &optional range) - "Forward messages to the recipients TO and CC. -Use optional RANGE argument to specify a message or sequence to forward. -Default is the displayed message. + "Forward message(s). + +You are prompted for the TO and CC recipients. You are given a draft to edit +that looks like it would if you had run the MH command \"forw\". You are given +a chance to add some text. -Check the documentation of `mh-interactive-range' to see how RANGE is read in -interactive use. +You can forward several messages by using a RANGE. All of the messages in the +range are inserted into your draft. Check the documentation of +`mh-interactive-range' to see how RANGE is read in interactive use. -See also `mh-send'." +The default message is the current message. + +See also `mh-compose-forward-as-mime-flag', `mh-forward-subject-format', +and `mh-send'." (interactive (list (mh-interactive-read-address "To: ") (mh-interactive-read-address "Cc: ") (mh-interactive-range "Forward"))) @@ -398,33 +424,30 @@ (setq from (substring from (1+ comment) (1- (length from))))))) (format mh-forward-subject-format from subject)) -;;;###autoload -(defun mh-smail-other-window () - "Compose and send mail in other window with the MH mail system. -This function is an entry point to MH-E, the Emacs interface to the MH mail -system. +;;;###mh-autoload +(defun mh-redistribute (to cc &optional message) + "Redistribute a message. -See `mh-send' for more details on composing mail." - (interactive) - (mh-find-path) - (call-interactively 'mh-send-other-window)) +This command is similar in function to forwarding mail, but it does not allow +you to edit the message, nor does it add your name to the \"From\" header +field. It appears to the recipient as if the message had come from the +original sender. When you run this command, you are prompted for the TO and CC +recipients. The default MESSAGE is the current message. -;;;###mh-autoload -(defun mh-redistribute (to cc &optional msg) - "Redistribute displayed message to recipients TO and CC. -Use optional argument MSG to redistribute another message. -Depending on how your copy of MH was compiled, you may need to change the -setting of the variable `mh-redist-full-contents'. See its documentation." +Also investigate the \\[mh-edit-again] command for another way to redistribute +messages. + +See also `mh-redist-full-contents-flag'." (interactive (list (mh-read-address "Redist-To: ") (mh-read-address "Redist-Cc: ") (mh-get-msg-num t))) - (or msg - (setq msg (mh-get-msg-num t))) + (or message + (setq message (mh-get-msg-num t))) (save-window-excursion (let ((folder mh-current-folder) (draft (mh-read-draft "redistribution" - (if mh-redist-full-contents - (mh-msg-filename msg) + (if mh-redist-full-contents-flag + (mh-msg-filename message) nil) nil))) (mh-goto-header-end 0) @@ -438,17 +461,18 @@ (message "Redistributing...") (let ((env "mhdist=1")) ;; Setup environment... - (setq env (concat env " mhaltmsg=" (if mh-redist-full-contents - buffer-file-name - (mh-msg-filename msg folder)))) - (unless mh-redist-full-contents + (setq env (concat env " mhaltmsg=" + (if mh-redist-full-contents-flag + buffer-file-name + (mh-msg-filename message folder)))) + (unless mh-redist-full-contents-flag (setq env (concat env " mhannotate=1"))) ;; Redistribute... (if mh-redist-background (mh-exec-cmd-env-daemon env mh-send-prog nil buffer-file-name) (mh-exec-cmd-error env mh-send-prog "-push" buffer-file-name)) ;; Annotate... - (mh-annotate-msg msg folder mh-note-dist + (mh-annotate-msg message folder mh-note-dist "-component" "Resent:" "-text" (format "\"%s %s\"" to cc))) (kill-buffer draft) @@ -481,21 +505,48 @@ ;;;###mh-autoload (defun mh-reply (message &optional reply-to includep) - "Reply to MESSAGE. -Default is the displayed message. -If the optional argument REPLY-TO is not given, prompts for type of addresses -to reply to: - from sender only, - to sender and primary recipients, - cc/all sender and all recipients. -If optional prefix argument INCLUDEP provided, then include the message -in the reply using filter `mhl.reply' in your MH directory. -If the file named by `mh-repl-formfile' exists, it is used as a skeleton for -the reply. If REPLY-TO is cc or all and you're using either the nmh or GNU -mailutils variants and the file names by `mh-repl-group-formfile' exists, it -is used instead. + "Reply to a MESSAGE. + +When you reply to a message, you are first prompted with \"Reply to whom?\" +\(unless the optional argument REPLY-TO is provided). You have several choices +here. + + Response Reply Goes To + + from The person who sent the message. This is the default, + so <RET> is sufficient. + + to Replies to the sender, plus all recipients in the + \"To:\" header field. + + all + cc Forms a reply to the sender, plus all recipients. -See also `mh-send'." +Depending on your answer, \"repl\" is given a different argument to form your +reply. Specifically, a choice of \"from\" or none at all runs \"repl -nocc +all\", and a choice of \"to\" runs \"repl -cc to\". Finally, either \"cc\" or +\"all\" runs \"repl -cc all -nocc me\". + +Two windows are then created. One window contains the message to which you are +replying in an MH-Show buffer. Your draft, in MH-Letter mode +\(see `mh-letter-mode'), is in the other window. + +If you supply a prefix argument INCLUDEP, the message you are replying to is +inserted in your reply after having first been run through \"mhl\" with the +format file \"mhl.reply\". + +Alternatively, you can customize the option `mh-yank-behavior' and choose one +of its \"Automatically\" variants to do the same thing. If you do so, the +prefix argument has no effect. + +Another way to include the message automatically in your draft is to use +\"repl: -filter repl.filter\" in your MH profile. + +If you wish to customize the header or other parts of the reply draft, please +see \"repl\" and \"mh-format\". + +See also `mh-reply-show-message-flag', `mh-reply-default-reply-to', and +`mh-send'." (interactive (list (mh-get-msg-num t) (let ((minibuffer-help-form @@ -560,14 +611,19 @@ ;;;###mh-autoload (defun mh-send (to cc subject) - "Compose and send a letter. -Do not call this function from outside MH-E; use \\[mh-smail] instead. + "Compose a message. + +Your letter appears in an Emacs buffer whose mode is MH-Letter (see +`mh-letter-mode'). -The file named by `mh-comp-formfile' will be used as the form. -The letter is composed in `mh-letter-mode'; see its documentation for more -details. -If `mh-compose-letter-function' is defined, it is called on the draft and -passed three arguments: TO, CC, and SUBJECT." +The arguments TO, CC, and SUBJECT can be used to prefill the draft fields or +suppress the prompts if `mh-compose-prompt-flag' is on. They are also passed +to the function set in the option `mh-compose-letter-function'. + +See also `mh-insert-x-mailer-flag' and `mh-letter-mode-hook'. + +Outside of an MH-Folder buffer (`mh-folder-mode'), you must call either +\\[mh-smail] or \\[mh-smail-other-window] to compose a new message." (interactive (list (mh-interactive-read-address "To: ") (mh-interactive-read-address "Cc: ") @@ -578,15 +634,10 @@ ;;;###mh-autoload (defun mh-send-other-window (to cc subject) - "Compose and send a letter in another window. -Do not call this function from outside MH-E; use \\[mh-smail-other-window] -instead. + "Compose a message in another window. -The file named by `mh-comp-formfile' will be used as the form. -The letter is composed in `mh-letter-mode'; see its documentation for more -details. -If `mh-compose-letter-function' is defined, it is called on the draft and -passed three arguments: TO, CC, and SUBJECT." +See `mh-send' for more information and a description of how the TO, CC, and +SUBJECT arguments are used." (interactive (list (mh-interactive-read-address "To: ") (mh-interactive-read-address "Cc: ") @@ -860,7 +911,7 @@ (defun mh-fill-paragraph-function (arg) "Fill paragraph at or after point. Prefix ARG means justify as well. This function enables `fill-paragraph' to -work better in MH-Letter mode." +work better in MH-Letter mode (see `mh-letter-mode')." (interactive "P") (let ((fill-paragraph-function) (fill-prefix)) (if (mh-in-header-p)
--- a/lisp/mh-e/mh-customize.el Tue Nov 01 23:21:39 2005 +0000 +++ b/lisp/mh-e/mh-customize.el Wed Nov 02 01:13:07 2005 +0000 @@ -1039,13 +1039,26 @@ ;;; Sending Mail (:group 'mh-sending-mail) (defcustom mh-compose-forward-as-mime-flag t - "Non-nil means that messages are forwarded as a MIME part." + "*Non-nil means that messages are forwarded as attachments. + +By default, this option is on which means that the forwarded messages are +included as attachments. If you would prefer to forward your messages verbatim +\(as text, inline), then turn off this option. Forwarding messages verbatim +works well for short, textual messages, but your recipient won't be able to +view any non-textual attachments that were in the forwarded message. Be aware +that if you have \"forw: -mime\" in your MH profile, then forwarded messages +will always be included as attachments regardless of the settings of this +option." :type 'boolean :group 'mh-sending-mail) (defcustom mh-compose-letter-function nil - "Invoked when setting up a letter draft. -It is passed three arguments: TO recipients, SUBJECT, and CC recipients." + "Invoked when starting a new draft. + +However, it is the last function called before you edit your message. The +consequence of this is that you can write a function to write and send the +message for you. This function is passed three arguments: the contents of the +TO, SUBJECT, and CC header fields." :type '(choice (const nil) function) :group 'mh-sending-mail) @@ -1055,36 +1068,56 @@ :group 'mh-sending-mail) (defcustom mh-forward-subject-format "%s: %s" - "*Format to generate the Subject: line contents for a forwarded message. -The two string arguments to the format are the sender of the original -message and the original subject line." + "*Format string for forwarded message subject. + +This option is a string which includes two escapes (\"%s\"). The first \"%s\" +is replaced with the sender of the original message, and the second one is +replaced with the original \"Subject:\"." :type 'string :group 'mh-sending-mail) (defcustom mh-insert-x-mailer-flag t - "*Non-nil means append an X-Mailer field to the header." + "*Non-nil means append an \"X-Mailer:\" header field to the header. + +This header field includes the version of MH-E and Emacs that you are using. +If you don't want to participate in our marketing, you can turn this option +off." + :type 'boolean + :group 'mh-sending-mail) + +(defcustom mh-redist-full-contents-flag nil + "*Non-nil means the \"dist\" command needs entire letter for redistribution. + +This option must be turned on if \"dist\" requires the whole letter for +redistribution, which is the case if \"send\" is compiled with the BERK option +\(which many people abhor). If you find that MH will not allow you to +redistribute a message that has been redistributed before, turn off this +option." :type 'boolean :group 'mh-sending-mail) (defcustom mh-reply-default-reply-to nil "*Sets the person or persons to whom a reply will be sent. -If nil, prompt for recipient. If non-nil, then \\<mh-folder-mode-map>`\\[mh-reply]' will use this -value and it should be one of \"from\", \"to\", \"cc\", or \"all\". -The values \"cc\" and \"all\" do the same thing." + +This option is set to \"Prompt\" by default so that you are prompted for the +recipient of a reply. If you find that most of the time that you specify +\"cc\" when you reply to a message, set this option to \"cc\". Other choices +include \"from\", \"to\", or \"all\". You can always edit the recipients in +the draft." :type '(choice (const :tag "Prompt" nil) - (const "from") (const "to") - (const "cc") (const "all")) + (const "from") + (const "to") + (const "cc") + (const "all")) :group 'mh-sending-mail) (defcustom mh-reply-show-message-flag t - "*Non-nil means the show buffer is displayed using \\<mh-letter-mode-map>\\[mh-reply]. + "*Non-nil means the MH-Show buffer is displayed when replying. -The setting of this variable determines whether the MH `show-buffer' is -displayed with the current message when using `mh-reply' without a prefix -argument. Set it to nil if you already include the message automatically -in your draft using - repl: -filter repl.filter -in your ~/.mh_profile file." +If you include the message automatically, you can hide the MH-Show +buffer by turning off this option. + +See also `mh-reply'." :type 'boolean :group 'mh-sending-mail) @@ -2162,7 +2195,7 @@ :group 'mh-letter) (defcustom mh-letter-mode-hook nil - "Invoked in `mh-letter-mode' on a new letter." + "Invoked by `mh-letter-mode' on a new letter." :type 'hook :group 'mh-hooks :group 'mh-sending-mail)