Please don't shoot me! ;-) I can't see a good reason that send-hooks are ignored in batch mode. This certainly screws up my ability to send batch mail, because I have the sequence:
1. send-hook sets $from based on recipient 2. send-hook2 sets outgoing server based on $from This is broken for me in mutt's batch mode, because #1 never fires. Consequently I always get my default $from and default outgoing server. Some pre-reading comments on this patch: 1. It turns out that pre-setting msg->env->from isn't necessary once you remove the out-of-line batch mode. msg->env->from is set later based on the same conditions, and nothing prior to that code needs it. 2. While touching these conditional lines, I also cleaned them up a bit: - if (option (OPTSIGONTOP) && (! (flags & (SENDMAILX | SENDKEY)) && Editor && mutt_strcmp (Editor, "builtin") != 0)) + if (option (OPTSIGONTOP) && ! (flags & (SENDMAILX|SENDKEY|SENDBATCH)) && mutt_strcmp (Editor, "builtin") != 0) The two cleanups here are: * don't pre-test Editor; that's the point of mutt_strcmp * remove a superfluous and misleading set of parens Comments please? Thanks, Aron # HG changeset patch # User Aron Griffis <[EMAIL PROTECTED]> # Date 1216766567 14400 # Branch HEAD # Node ID de94c225a70173ca324fb1a1757369ddde845c73 # Parent f72fce68ca1922a321ee7351f656c4f7e1670947 make send-hooks work for batch mode Handle SENDBATCH inline with the normal sending code, instead of handling it separately. This allows send-hooks to run, along with removing 15 unnecessary lines of code. Signed-off-by: Aron Griffis <[EMAIL PROTECTED]> diff -r f72fce68ca19 -r de94c225a701 send.c --- a/send.c Wed Jul 02 18:26:17 2008 +0200 +++ b/send.c Tue Jul 22 18:42:47 2008 -0400 @@ -1217,24 +1217,7 @@ msg->env->from = set_reverse_name (cur->env); } - if (!msg->env->from && option (OPTUSEFROM) && !(flags & (SENDPOSTPONED|SENDRESEND))) - { - msg->env->from = mutt_default_from (); - if (!(flags & SENDBATCH)) - killfrom = 1; /* $use_from will be re-checked after send-hooks */ - } - - if (flags & SENDBATCH) - { - mutt_copy_stream (stdin, tempfp); - if (option (OPTHDRS)) - { - process_user_recips (msg->env); - process_user_header (msg->env); - } - mutt_expand_aliases_env (msg->env); - } - else if (! (flags & (SENDPOSTPONED|SENDRESEND))) + if (! (flags & (SENDPOSTPONED|SENDRESEND))) { if ((flags & (SENDREPLY | SENDFORWARD)) && ctx && envelope_defaults (msg->env, ctx, cur, flags) == -1) @@ -1249,7 +1232,7 @@ if (flags & SENDREPLY) mutt_fix_reply_recipients (msg->env); - if (! (flags & SENDMAILX) && + if (! (flags & (SENDMAILX|SENDBATCH)) && ! (option (OPTAUTOEDIT) && option (OPTEDITHDRS)) && ! ((flags & SENDREPLY) && option (OPTFASTREPLY))) { @@ -1305,8 +1288,10 @@ if (option (OPTHDRS)) process_user_header (msg->env); + if (flags & SENDBATCH) + mutt_copy_stream (stdin, tempfp); - if (option (OPTSIGONTOP) && (! (flags & (SENDMAILX | SENDKEY)) && Editor && mutt_strcmp (Editor, "builtin") != 0)) + if (option (OPTSIGONTOP) && ! (flags & (SENDMAILX|SENDKEY|SENDBATCH)) && mutt_strcmp (Editor, "builtin") != 0) append_signature (tempfp); /* include replies/forwarded messages, unless we are given a template */ @@ -1314,7 +1299,7 @@ && generate_body (tempfp, msg, flags, ctx, cur) == -1) goto cleanup; - if (!option (OPTSIGONTOP) && (! (flags & (SENDMAILX | SENDKEY)) && Editor && mutt_strcmp (Editor, "builtin") != 0)) + if (!option (OPTSIGONTOP) && ! (flags & (SENDMAILX|SENDKEY|SENDBATCH)) && mutt_strcmp (Editor, "builtin") != 0) append_signature (tempfp); /* @@ -1322,7 +1307,7 @@ * can take effect. */ - if (WithCrypto && !(flags & SENDMAILX)) + if (WithCrypto && !(flags & (SENDMAILX|SENDBATCH))) { if (option (OPTCRYPTAUTOSIGN)) msg->security |= SIGN;