<<< Date Index >>>     <<< Thread Index >>>

[PATCH] send2-hook



(Resending.)

The attached patch adds a command named "send2-hook".  send2-hook is
executed even when recalling or resending messages, and is triggered
by any change to the message that can be done from the compose menu.

Use case: Set the $sendmail or $envelope_from variables according to
the sender of the message, even when that sender is changed from the
compose screen.

I would welcome suggestions for a better name; other comments are,
of course, also welcome.

Greetings from the mid-Atlantic,
-- 
Thomas Roessler · Personal soap box at <http://log.does-not-exist.org/>.
Binary files /tmp/mutt-dev/account.o and mutt-dev/account.o differ
Binary files /tmp/mutt-dev/addrbook.o and mutt-dev/addrbook.o differ
Binary files /tmp/mutt-dev/alias.o and mutt-dev/alias.o differ
Binary files /tmp/mutt-dev/attach.o and mutt-dev/attach.o differ
Binary files /tmp/mutt-dev/base64.o and mutt-dev/base64.o differ
Binary files /tmp/mutt-dev/browser.o and mutt-dev/browser.o differ
Binary files /tmp/mutt-dev/buffy.o and mutt-dev/buffy.o differ
Binary files /tmp/mutt-dev/charset.o and mutt-dev/charset.o differ
Binary files /tmp/mutt-dev/color.o and mutt-dev/color.o differ
Binary files /tmp/mutt-dev/commands.o and mutt-dev/commands.o differ
Binary files /tmp/mutt-dev/complete.o and mutt-dev/complete.o differ
diff -ur /tmp/mutt-dev/compose.c mutt-dev/compose.c
--- /tmp/mutt-dev/compose.c     2004-08-30 16:12:15.000000000 -0400
+++ mutt-dev/compose.c  2004-11-29 10:12:45.693224915 -0500
@@ -527,16 +527,20 @@
        break;
       case OP_COMPOSE_EDIT_FROM:
        menu->redraw = edit_address_list (HDR_FROM, &msg->env->from);
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
        break;
       case OP_COMPOSE_EDIT_TO:
        menu->redraw = edit_address_list (HDR_TO, &msg->env->to);
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
       case OP_COMPOSE_EDIT_BCC:
        menu->redraw = edit_address_list (HDR_BCC, &msg->env->bcc);
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
        break;
       case OP_COMPOSE_EDIT_CC:
        menu->redraw = edit_address_list (HDR_CC, &msg->env->cc);
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);    
+        break;
       case OP_COMPOSE_EDIT_SUBJECT:
        if (msg->env->subject)
          strfcpy (buf, msg->env->subject, sizeof (buf));
@@ -550,9 +554,11 @@
          if (msg->env->subject)
            mutt_paddstr (W, msg->env->subject);
        }
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
       case OP_COMPOSE_EDIT_REPLY_TO:
        menu->redraw = edit_address_list (HDR_REPLYTO, &msg->env->reply_to);
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
        break;
       case OP_COMPOSE_EDIT_FCC:
        strfcpy (buf, fcc, sizeof (buf));
@@ -565,13 +571,15 @@
          fccSet = 1;
        }
        MAYBE_REDRAW (menu->redraw);
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
       case OP_COMPOSE_EDIT_MESSAGE:
        if (Editor && (mutt_strcmp ("builtin", Editor) != 0) && !option 
(OPTEDITHDRS))
        {
          mutt_edit_file (Editor, msg->content->filename);
          mutt_update_encoding (msg->content);
          menu->redraw = REDRAW_CURRENT | REDRAW_STATUS;
+         mutt_message_hook (NULL, msg, M_SEND2HOOK);
          break;
        }
        /* fall through */
@@ -611,7 +619,8 @@
          menu->max = idxlen;
        }
 
-       menu->redraw = REDRAW_FULL;
+        menu->redraw = REDRAW_FULL;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
        break;
 
 
@@ -642,7 +651,8 @@
          unset_option(OPTNEEDREDRAW);
        }
        
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
 
       case OP_COMPOSE_ATTACH_FILE:
@@ -688,7 +698,8 @@
 
          menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
        }
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
       case OP_COMPOSE_ATTACH_MESSAGE:
        {
@@ -794,7 +805,8 @@
          Sort = oldSort;
          SortAux = oldSortAux;
        }
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
       case OP_DELETE:
        CHECK_COUNT;
@@ -813,7 +825,8 @@
          msg->content = idx[0]->content;
 
         menu->redraw |= REDRAW_STATUS;
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
 #define CURRENT idx[menu->current]->content
       
@@ -831,6 +844,7 @@
         else
          mutt_message (_("The current attachment will be converted."));
        menu->redraw = REDRAW_CURRENT;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
         break;
       }
 #undef CURRENT
@@ -847,7 +861,8 @@
          mutt_str_replace (&idx[menu->current]->content->description, buf);
          menu->redraw = REDRAW_CURRENT;
        }
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
       case OP_COMPOSE_UPDATE_ENCODING:
         CHECK_COUNT;
@@ -866,6 +881,7 @@
           mutt_update_encoding(idx[menu->current]->content);
          menu->redraw = REDRAW_CURRENT | REDRAW_STATUS;
        }
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
         break;
       
       case OP_COMPOSE_TOGGLE_DISPOSITION:
@@ -884,7 +900,8 @@
 
          menu->redraw = REDRAW_CURRENT;
        }
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
       case OP_COMPOSE_EDIT_ENCODING:
        CHECK_COUNT;
@@ -902,9 +919,14 @@
          else
            mutt_error _("Invalid encoding.");
        }
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
       case OP_COMPOSE_SEND_MESSAGE:
+
+        /* Note: We don't invoke send2-hook here, since we want to leave
+        * users an opportunity to change settings from the ":" prompt.
+        */
       
         if(check_attachments(idx, idxlen) != 0)
         {
@@ -936,6 +958,7 @@
        mutt_edit_file (NONULL(Editor), idx[menu->current]->content->filename);
        mutt_update_encoding (idx[menu->current]->content);
        menu->redraw = REDRAW_CURRENT | REDRAW_STATUS;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
        break;
 
       case OP_COMPOSE_TOGGLE_UNLINK:
@@ -951,6 +974,7 @@
          menu->current++;
 # endif
        menu->redraw = REDRAW_INDEX;
+        /* No send2hook since this doesn't change the message. */
        break;
 
       case OP_COMPOSE_GET_ATTACHMENT:
@@ -968,6 +992,7 @@
         else if (mutt_get_tmp_attachment(idx[menu->current]->content) == 0)
          menu->redraw = REDRAW_CURRENT;
 
+        /* No send2hook since this doesn't change the message. */
         break;
       
       case OP_COMPOSE_RENAME_FILE:
@@ -994,7 +1019,8 @@
            mutt_stamp_attachment(idx[menu->current]->content);
          
        }
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
       case OP_COMPOSE_NEW_MIME:
        {
@@ -1061,7 +1087,8 @@
            menu->redraw = REDRAW_FULL;
          }
        }
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);    
+        break;
 
       case OP_COMPOSE_EDIT_MIME:
        CHECK_COUNT;
@@ -1070,24 +1097,28 @@
          mutt_update_encoding (idx[menu->current]->content);
          menu->redraw = REDRAW_FULL;
        }
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
       case OP_VIEW_ATTACH:
       case OP_DISPLAY_HEADERS:
        CHECK_COUNT;
        mutt_attach_display_loop (menu, op, NULL, NULL, NULL, &idx, &idxlen, 
NULL, 0);
        menu->redraw = REDRAW_FULL;
+        /* no send2hook, since this doesn't modify the message */
        break;
 
       case OP_SAVE:
        CHECK_COUNT;
        mutt_save_attachment_list (NULL, menu->tagprefix, menu->tagprefix ?  
msg->content : idx[menu->current]->content, NULL, menu);
        MAYBE_REDRAW (menu->redraw);
+        /* no send2hook, since this doesn't modify the message */
        break;
 
       case OP_PRINT:
        CHECK_COUNT;
        mutt_print_attachment_list (NULL, menu->tagprefix, menu->tagprefix ? 
msg->content : idx[menu->current]->content);
+        /* no send2hook, since this doesn't modify the message */
        break;
 
       case OP_PIPE:
@@ -1095,8 +1126,9 @@
         CHECK_COUNT;
        mutt_pipe_attachment_list (NULL, menu->tagprefix, menu->tagprefix ? 
msg->content : idx[menu->current]->content, op == OP_FILTER);
        if (op == OP_FILTER) /* cte might have changed */
-         menu->redraw = menu->tagprefix ? REDRAW_FULL : REDRAW_CURRENT; 
+         menu->redraw = menu->tagprefix ? REDRAW_FULL : REDRAW_CURRENT;
         menu->redraw |= REDRAW_STATUS;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
        break;
 
       case OP_EXIT:
@@ -1191,7 +1223,8 @@
        }
        msg->security = crypt_pgp_send_menu (msg, &menu->redraw);
        redraw_crypt_lines (msg);
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
 
       case OP_FORGET_PASSPHRASE:
@@ -1216,13 +1249,15 @@
        }
        msg->security = crypt_smime_send_menu(msg, &menu->redraw);
        redraw_crypt_lines (msg);
-       break;
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
+        break;
 
 
 #ifdef MIXMASTER
       case OP_COMPOSE_MIX:
       
        mix_make_chain (&msg->chain, &menu->redraw);
+        mutt_message_hook (NULL, msg, M_SEND2HOOK);
         break;
 #endif
 
Binary files /tmp/mutt-dev/compose.o and mutt-dev/compose.o differ
Binary files /tmp/mutt-dev/copy.o and mutt-dev/copy.o differ
Binary files /tmp/mutt-dev/cryptglue.o and mutt-dev/cryptglue.o differ
Binary files /tmp/mutt-dev/crypt-mod.o and mutt-dev/crypt-mod.o differ
Binary files /tmp/mutt-dev/crypt-mod-pgp-classic.o and 
mutt-dev/crypt-mod-pgp-classic.o differ
Binary files /tmp/mutt-dev/crypt-mod-smime-classic.o and 
mutt-dev/crypt-mod-smime-classic.o differ
Binary files /tmp/mutt-dev/crypt.o and mutt-dev/crypt.o differ
Binary files /tmp/mutt-dev/curs_lib.o and mutt-dev/curs_lib.o differ
Binary files /tmp/mutt-dev/curs_main.o and mutt-dev/curs_main.o differ
Binary files /tmp/mutt-dev/date.o and mutt-dev/date.o differ
diff -ur /tmp/mutt-dev/doc/manual-4.html mutt-dev/doc/manual-4.html
--- /tmp/mutt-dev/doc/manual-4.html     2004-11-08 03:47:51.000000000 -0500
+++ mutt-dev/doc/manual-4.html  2004-11-29 10:13:06.282829388 -0500
@@ -372,6 +372,14 @@
 <A HREF="manual-6.html#auto_tag">$auto_tag</A>
 variable is set, the next operation applies to the tagged messages
 automatically, without requiring the ``tag-prefix''.</P>
+<P>In 
+<A HREF="manual-3.html#macro">macros</A> or 
+<A HREF="manual-3.html#push">push</A> commands,
+you can use the ``tag-prefix-cond'' operator.  If there are no tagged
+messages, mutt will "eat" the rest of the macro to abort it's execution.
+Mutt will stop "eating" the macro when it encounters the ``end-cond''
+operator;  after this operator the rest of the macro will be executed as
+normal.</P>
 
 <H2><A NAME="hooks"></A> <A NAME="ss4.4">4.4</A> <A 
HREF="manual.html#toc4.4">Using Hooks</A>
 </H2>
diff -ur /tmp/mutt-dev/doc/manual-6.html mutt-dev/doc/manual-6.html
--- /tmp/mutt-dev/doc/manual-6.html     2004-11-08 03:47:54.000000000 -0500
+++ mutt-dev/doc/manual-6.html  2004-11-29 10:13:08.729425908 -0500
@@ -3709,6 +3709,7 @@
 shell-escape               !   run a program in a subshell
 tag-entry                  t   toggle the tag on the current entry
 tag-prefix                 ;   apply next command to tagged entries
+tag-prefix-cond    not bound   apply next function ONLY to tagged messages
 top-page                   H   move to the top of the page
 </PRE>
 </P>
diff -ur /tmp/mutt-dev/doc/manual.sgml mutt-dev/doc/manual.sgml
--- /tmp/mutt-dev/doc/manual.sgml       2004-11-08 03:47:45.000000000 -0500
+++ mutt-dev/doc/manual.sgml    2004-11-29 10:13:01.222663883 -0500
@@ -2061,6 +2061,13 @@
 variable is set, the next operation applies to the tagged messages
 automatically, without requiring the ``tag-prefix''.
 
+In <ref id="macro" name="macros"> or <ref id="push" name="push"> commands,
+you can use the ``tag-prefix-cond'' operator.  If there are no tagged
+messages, mutt will "eat" the rest of the macro to abort it's execution.
+Mutt will stop "eating" the macro when it encounters the ``end-cond''
+operator;  after this operator the rest of the macro will be executed as
+normal.
+
 <sect1>Using Hooks<label id="hooks">
 <p>
 A <em/hook/ is a concept borrowed from the EMACS editor which allows you to
@@ -6915,6 +6922,7 @@
 shell-escape               !   run a program in a subshell
 tag-entry                  t   toggle the tag on the current entry
 tag-prefix                 ;   apply next command to tagged entries
+tag-prefix-cond    not bound   apply next function ONLY to tagged messages
 top-page                   H   move to the top of the page
 </verb>
 <sect2>index
Binary files /tmp/mutt-dev/editmsg.o and mutt-dev/editmsg.o differ
Binary files /tmp/mutt-dev/edit.o and mutt-dev/edit.o differ
Binary files /tmp/mutt-dev/enter.o and mutt-dev/enter.o differ
Binary files /tmp/mutt-dev/extlib.o and mutt-dev/extlib.o differ
Binary files /tmp/mutt-dev/filter.o and mutt-dev/filter.o differ
Binary files /tmp/mutt-dev/flags.o and mutt-dev/flags.o differ
Binary files /tmp/mutt-dev/from.o and mutt-dev/from.o differ
Binary files /tmp/mutt-dev/getdomain.o and mutt-dev/getdomain.o differ
Binary files /tmp/mutt-dev/gnupgparse.o and mutt-dev/gnupgparse.o differ
Binary files /tmp/mutt-dev/handler.o and mutt-dev/handler.o differ
Binary files /tmp/mutt-dev/hash.o and mutt-dev/hash.o differ
Binary files /tmp/mutt-dev/hdrline.o and mutt-dev/hdrline.o differ
Binary files /tmp/mutt-dev/headers.o and mutt-dev/headers.o differ
Binary files /tmp/mutt-dev/help.o and mutt-dev/help.o differ
Binary files /tmp/mutt-dev/history.o and mutt-dev/history.o differ
diff -ur /tmp/mutt-dev/hook.c mutt-dev/hook.c
--- /tmp/mutt-dev/hook.c        2004-01-04 04:55:04.000000000 -0500
+++ mutt-dev/hook.c     2004-11-29 10:05:04.174336138 -0500
@@ -66,7 +66,7 @@
     goto error;
   }
 
-  mutt_extract_token (&command, s, (data & (M_FOLDERHOOK | M_SENDHOOK | 
M_ACCOUNTHOOK | M_REPLYHOOK)) ?  M_TOKEN_SPACE : 0);
+  mutt_extract_token (&command, s, (data & (M_FOLDERHOOK | M_SENDHOOK | 
M_SEND2HOOK | M_ACCOUNTHOOK | M_REPLYHOOK)) ?  M_TOKEN_SPACE : 0);
 
   if (!command.data)
   {
@@ -117,7 +117,7 @@
        ptr->rx.not == not &&
        !mutt_strcmp (pattern.data, ptr->rx.pattern))
     {
-      if (data & (M_FOLDERHOOK | M_SENDHOOK | M_MESSAGEHOOK | M_ACCOUNTHOOK | 
M_REPLYHOOK))
+      if (data & (M_FOLDERHOOK | M_SENDHOOK | M_SEND2HOOK | M_MESSAGEHOOK | 
M_ACCOUNTHOOK | M_REPLYHOOK))
       {
        /* these hooks allow multiple commands with the same
         * pattern, so if we've already seen this pattern/command pair, just
@@ -146,10 +146,10 @@
       break;
   }
 
-  if (data & (M_SENDHOOK | M_SAVEHOOK | M_FCCHOOK | M_MESSAGEHOOK | 
M_REPLYHOOK))
+  if (data & (M_SENDHOOK | M_SEND2HOOK | M_SAVEHOOK | M_FCCHOOK | 
M_MESSAGEHOOK | M_REPLYHOOK))
   {
     if ((pat = mutt_pattern_comp (pattern.data,
-          (data & (M_SENDHOOK | M_FCCHOOK)) ? 0 : M_FULL_MSG,
+          (data & (M_SENDHOOK | M_SEND2HOOK | M_FCCHOOK)) ? 0 : M_FULL_MSG,
                                  err)) == NULL)
       goto error;
   }
Binary files /tmp/mutt-dev/hook.o and mutt-dev/hook.o differ
Binary files /tmp/mutt-dev/imap/auth_anon.o and mutt-dev/imap/auth_anon.o differ
Binary files /tmp/mutt-dev/imap/auth_cram.o and mutt-dev/imap/auth_cram.o differ
Binary files /tmp/mutt-dev/imap/auth_login.o and mutt-dev/imap/auth_login.o 
differ
Binary files /tmp/mutt-dev/imap/auth.o and mutt-dev/imap/auth.o differ
Binary files /tmp/mutt-dev/imap/browse.o and mutt-dev/imap/browse.o differ
Binary files /tmp/mutt-dev/imap/command.o and mutt-dev/imap/command.o differ
Binary files /tmp/mutt-dev/imap/imap.o and mutt-dev/imap/imap.o differ
Binary files /tmp/mutt-dev/imap/libimap.a and mutt-dev/imap/libimap.a differ
Binary files /tmp/mutt-dev/imap/message.o and mutt-dev/imap/message.o differ
Binary files /tmp/mutt-dev/imap/utf7.o and mutt-dev/imap/utf7.o differ
Binary files /tmp/mutt-dev/imap/util.o and mutt-dev/imap/util.o differ
diff -ur /tmp/mutt-dev/init.h mutt-dev/init.h
--- /tmp/mutt-dev/init.h        2004-11-29 10:17:28.609567867 -0500
+++ mutt-dev/init.h     2004-11-29 10:04:01.335699150 -0500
@@ -2876,6 +2876,7 @@
   { "save-hook",       mutt_parse_hook,        M_SAVEHOOK },
   { "score",           mutt_parse_score,       0 },
   { "send-hook",       mutt_parse_hook,        M_SENDHOOK },
+  { "send2-hook",      mutt_parse_hook,        M_SEND2HOOK },
   { "set",             parse_set,              0 },
   { "source",          parse_source,           0 },
   { "spam",            parse_spam_list,        M_SPAM },
Binary files /tmp/mutt-dev/init.o and mutt-dev/init.o differ
Binary files /tmp/mutt-dev/keymap.o and mutt-dev/keymap.o differ
Binary files /tmp/mutt-dev/lib.o and mutt-dev/lib.o differ
Binary files /tmp/mutt-dev/main.o and mutt-dev/main.o differ
Binary files /tmp/mutt-dev/mbox.o and mutt-dev/mbox.o differ
Binary files /tmp/mutt-dev/mbyte.o and mutt-dev/mbyte.o differ
Binary files /tmp/mutt-dev/menu.o and mutt-dev/menu.o differ
Binary files /tmp/mutt-dev/mh.o and mutt-dev/mh.o differ
Binary files /tmp/mutt-dev/mutt and mutt-dev/mutt differ
diff -ur /tmp/mutt-dev/mutt.h mutt-dev/mutt.h
--- /tmp/mutt-dev/mutt.h        2004-07-19 18:09:01.000000000 -0400
+++ mutt-dev/mutt.h     2004-11-29 10:04:25.094780929 -0500
@@ -160,6 +160,7 @@
 #define M_CRYPTHOOK    (1<<8)
 #define M_ACCOUNTHOOK  (1<<9)
 #define M_REPLYHOOK    (1<<10)
+#define M_SEND2HOOK     (1<<11)
 
 /* tree characters for linearize_tree and print_enriched_string */
 #define M_TREE_LLCORNER                1
Binary files /tmp/mutt-dev/mutt_idna.o and mutt-dev/mutt_idna.o differ
Binary files /tmp/mutt-dev/muttlib.o and mutt-dev/muttlib.o differ
Binary files /tmp/mutt-dev/mutt_socket.o and mutt-dev/mutt_socket.o differ
Binary files /tmp/mutt-dev/mutt_tunnel.o and mutt-dev/mutt_tunnel.o differ
Binary files /tmp/mutt-dev/mx.o and mutt-dev/mx.o differ
Binary files /tmp/mutt-dev/pager.o and mutt-dev/pager.o differ
Binary files /tmp/mutt-dev/parse.o and mutt-dev/parse.o differ
Binary files /tmp/mutt-dev/patchlist.o and mutt-dev/patchlist.o differ
Binary files /tmp/mutt-dev/pattern.o and mutt-dev/pattern.o differ
Binary files /tmp/mutt-dev/pgpewrap and mutt-dev/pgpewrap differ
Binary files /tmp/mutt-dev/pgpinvoke.o and mutt-dev/pgpinvoke.o differ
Binary files /tmp/mutt-dev/pgpkey.o and mutt-dev/pgpkey.o differ
Binary files /tmp/mutt-dev/pgplib.o and mutt-dev/pgplib.o differ
Binary files /tmp/mutt-dev/pgpmicalg.o and mutt-dev/pgpmicalg.o differ
Binary files /tmp/mutt-dev/pgp.o and mutt-dev/pgp.o differ
Binary files /tmp/mutt-dev/pgppacket.o and mutt-dev/pgppacket.o differ
Binary files /tmp/mutt-dev/pgppubring.o and mutt-dev/pgppubring.o differ
Binary files /tmp/mutt-dev/pgpring and mutt-dev/pgpring differ
Binary files /tmp/mutt-dev/pop_auth.o and mutt-dev/pop_auth.o differ
Binary files /tmp/mutt-dev/pop_lib.o and mutt-dev/pop_lib.o differ
Binary files /tmp/mutt-dev/pop.o and mutt-dev/pop.o differ
Binary files /tmp/mutt-dev/postpone.o and mutt-dev/postpone.o differ
Binary files /tmp/mutt-dev/query.o and mutt-dev/query.o differ
Binary files /tmp/mutt-dev/recvattach.o and mutt-dev/recvattach.o differ
Binary files /tmp/mutt-dev/recvcmd.o and mutt-dev/recvcmd.o differ
Binary files /tmp/mutt-dev/resize.o and mutt-dev/resize.o differ
Binary files /tmp/mutt-dev/rfc1524.o and mutt-dev/rfc1524.o differ
Binary files /tmp/mutt-dev/rfc2047.o and mutt-dev/rfc2047.o differ
Binary files /tmp/mutt-dev/rfc2231.o and mutt-dev/rfc2231.o differ
Binary files /tmp/mutt-dev/rfc822.o and mutt-dev/rfc822.o differ
Binary files /tmp/mutt-dev/score.o and mutt-dev/score.o differ
diff -ur /tmp/mutt-dev/send.c mutt-dev/send.c
--- /tmp/mutt-dev/send.c        2004-07-19 18:28:58.000000000 -0400
+++ mutt-dev/send.c     2004-11-29 10:15:33.123613192 -0500
@@ -1320,6 +1320,14 @@
     if (!(msg->security & (APPLICATION_SMIME|APPLICATION_PGP)))
       msg->security = 0;
   }
+  
+  /* 
+   * This hook is even called for postponed messages, and can, e.g., be
+   * used for setting the editor, the sendmail path, or the
+   * envelope sender.
+   */
+  mutt_message_hook (NULL, msg, M_SEND2HOOK);
+  
   /* wait until now to set the real name portion of our return address so
      that $realname can be set in a send-hook */
   if (msg->env->from && !msg->env->from->personal
Binary files /tmp/mutt-dev/sendlib.o and mutt-dev/sendlib.o differ
Binary files /tmp/mutt-dev/send.o and mutt-dev/send.o differ
Binary files /tmp/mutt-dev/signal.o and mutt-dev/signal.o differ
Binary files /tmp/mutt-dev/smime.o and mutt-dev/smime.o differ
Binary files /tmp/mutt-dev/sort.o and mutt-dev/sort.o differ
Binary files /tmp/mutt-dev/status.o and mutt-dev/status.o differ
Binary files /tmp/mutt-dev/system.o and mutt-dev/system.o differ
Binary files /tmp/mutt-dev/thread.o and mutt-dev/thread.o differ
Binary files /tmp/mutt-dev/url.o and mutt-dev/url.o differ
Binary files /tmp/mutt-dev/wcwidth.o and mutt-dev/wcwidth.o differ

Attachment: pgpiJdFUaunAf.pgp
Description: PGP signature