deal with sendmail and dotlock in LUA.
[apps/madmutt.git] / sendlib.c
index b8ece6d..0a63e34 100644 (file)
--- a/sendlib.c
+++ b/sendlib.c
@@ -12,6 +12,7 @@
 #include <signal.h>
 #include <sys/utsname.h>
 
+#include <lib-lua/lib-lua.h>
 #include <lib-sys/exit.h>
 #include <lib-sys/mutt_signal.h>
 #include <lib-mime/mime.h>
@@ -339,8 +340,8 @@ int mutt_write_mime_header (BODY * a, FILE * f)
 int mutt_write_mime_body (BODY * a, FILE * f)
 {
   const char *p;
-  char boundary[SHORT_STRING];
-  char send_charset[SHORT_STRING];
+  char boundary[STRING];
+  char send_charset[STRING];
   FILE *fpin;
   BODY *t;
   fgetconv_t *fc;
@@ -1018,7 +1019,7 @@ static void transform_to_7bit (BODY * a, FILE * fpin)
 /* determine which Content-Transfer-Encoding to use */
 static void mutt_set_encoding (BODY * b, CONTENT * info)
 {
-  char send_charset[SHORT_STRING];
+  char send_charset[STRING];
 
   if (b->type == TYPETEXT) {
     char *chsname =
@@ -1505,7 +1506,7 @@ int mutt_write_rfc822_header (FILE * fp, ENVELOPE * env, BODY * attach,
       os = (uname(&un) == -1) ? "UNIX" : un.sysname;
     }
     /* Add a vanity header */
-    fprintf (fp, "User-Agent: %s (%s)\n", mutt_make_version (0), os);
+    fprintf (fp, "User-Agent: %s (%s)\n", mutt_make_version(), os);
   }
 
   return (ferror (fp) == 0 ? 0 : -1);
@@ -1650,8 +1651,8 @@ static void mutt_gen_localpart(char *buf, unsigned int len, const char *fmt)
 
 static char *mutt_gen_msgid (void)
 {
-    char buf[SHORT_STRING];
-    char localpart[SHORT_STRING];
+    char buf[STRING];
+    char localpart[STRING];
     const char *fqdn;
 
     if (!(fqdn = mutt_fqdn(0)))
@@ -1831,32 +1832,29 @@ static int mutt_invoke_sendmail (address_t * from,        /* the sender */
                                  const char *msg,       /* file containing message */
                                  int eightbit)
 {                               /* message contains 8bit chars */
-  char *ps = NULL, *path = NULL, *s = NULL, *childout = NULL;
+  char cmd[LONG_STRING];
+  char *ps = NULL, *path = NULL, *childout = NULL;
   const char **args = NULL;
   ssize_t argslen = 0, argsmax = 0;
   int i;
 
 #ifdef USE_NNTP
   if (option (OPTNEWSSEND)) {
-    char cmd[LONG_STRING];
-
-    mutt_FormatString (cmd, sizeof (cmd), NONULL (Inews), nntp_format_str, 0,
-                       0);
+    m_strformat(cmd, sizeof(cmd), 0, Inews, nntp_format_str, 0, 0);
     if (m_strisempty(cmd)) {
       i = nntp_post (msg);
       unlink (msg);
       return i;
     }
-
-    s = m_strdup(cmd);
-  }
-  else
+  } else
 #endif
-    s = m_strdup(Sendmail);
+  {
+    mlua_value(cmd, sizeof(cmd), "madmutt", "sendmail");
+  }
 
-  ps = s;
+  ps = cmd;
   i = 0;
-  while ((ps = strtok (ps, " "))) {
+  while ((ps = strtok(ps, " "))) {
     if (argslen == argsmax)
       p_realloc(&args, argsmax += 5);
 
@@ -1931,7 +1929,6 @@ static int mutt_invoke_sendmail (address_t * from,        /* the sender */
 
   p_delete(&childout);
   p_delete(&path);
-  p_delete(&s);
   p_delete(&args);
 
   if (i == (EX_OK & 0xff))
@@ -2021,7 +2018,7 @@ static int _mutt_bounce_message (FILE * fp, HEADER * h, address_t * to,
 {
   int i, ret = 0;
   FILE *f;
-  char date[SHORT_STRING], tempfile[_POSIX_PATH_MAX];
+  char date[STRING], tempfile[_POSIX_PATH_MAX];
   MESSAGE *msg = NULL;
 
   if (!h) {