Rocco Rutte:
[apps/madmutt.git] / muttlib.c
index b8059f0..d5bd3b7 100644 (file)
--- a/muttlib.c
+++ b/muttlib.c
 #endif
 
 #include "mutt.h"
+#include "ascii.h"
+#include "buffer.h"
+#include "enter.h"
 #include "mutt_curses.h"
 #include "mime.h"
 #include "mx.h"
 #include "url.h"
+#include "attach.h"
 
 #include "reldate.h"
+#include "version.h"
 
 #ifdef USE_IMAP
 #include "imap.h"
@@ -60,7 +65,7 @@ BODY *mutt_new_body (void)
  * Renamed to mutt_adv_mktemp so I only have to change where it's
  * called, and not all possible cases.
  */
-void mutt_adv_mktemp (char *s, size_t l)
+void mutt_adv_mktemp (const char* dir, char *s, size_t l)
 {
   char buf[_POSIX_PATH_MAX];
   char tmp[_POSIX_PATH_MAX];
@@ -68,7 +73,7 @@ void mutt_adv_mktemp (char *s, size_t l)
   size_t sl;
   struct stat sb;
 
-  strfcpy (buf, NONULL (Tempdir), sizeof (buf));
+  strfcpy (buf, dir && *dir ? dir : NONULL (Tempdir), sizeof (buf));
   mutt_expand_path (buf, sizeof (buf));
   if (s[0] == '\0') {
     snprintf (s, l, "%s/muttXXXXXX", buf);
@@ -112,7 +117,7 @@ int mutt_copy_body (FILE * fp, BODY ** tgt, BODY * src)
     tmp[0] = '\0';
   }
 
-  mutt_adv_mktemp (tmp, sizeof (tmp));
+  mutt_adv_mktemp (NULL, tmp, sizeof (tmp));
   if (mutt_save_attachment (fp, src, tmp, 0, NULL) == -1)
     return -1;
 
@@ -214,43 +219,6 @@ void mutt_free_parameter (PARAMETER ** p)
   *p = 0;
 }
 
-LIST *mutt_add_list (LIST * head, const char *data) {
-  size_t len = str_len (data);
-  return (mutt_add_list_n (head, data, len ? len + 1 : 0));
-}
-
-LIST *mutt_add_list_n (LIST *head, const void *data, size_t len) {
-  LIST *tmp;
-
-  for (tmp = head; tmp && tmp->next; tmp = tmp->next);
-
-  if (tmp) {
-    tmp->next = mem_malloc (sizeof (LIST));
-    tmp = tmp->next;
-  } else
-    head = tmp = mem_malloc (sizeof (LIST));
-
-  tmp->data = mem_malloc (len);
-  if (len)
-    memcpy (tmp->data, data, len);
-  tmp->next = NULL;
-  return head;
-}
-
-void mutt_free_list (LIST ** list)
-{
-  LIST *p;
-
-  if (!list)
-    return;
-  while (*list) {
-    p = *list;
-    *list = (*list)->next;
-    mem_free (&p->data);
-    mem_free (&p);
-  }
-}
-
 HEADER *mutt_dup_header (HEADER * h)
 {
   HEADER *hnew;
@@ -1277,81 +1245,6 @@ int mutt_save_confirm (const char *s, struct stat *st)
   return (ret);
 }
 
-void state_prefix_putc (char c, STATE * s)
-{
-  if (s->flags & M_PENDINGPREFIX) {
-    int i;
-
-    i = str_len (Quotebuf);
-    Quotebuf[i++] = c;
-    Quotebuf[i] = '\0';
-    if (i == sizeof (Quotebuf) - 1 || c == '\n') {
-      char buf[2 * SHORT_STRING];
-      int j = 0, offset = 0;
-      regmatch_t pmatch[1];
-
-      state_reset_prefix (s);
-      while (regexec
-             ((regex_t *) QuoteRegexp.rx, &Quotebuf[offset], 1, pmatch,
-              0) == 0)
-        offset += pmatch->rm_eo;
-
-      if (!option (OPTQUOTEEMPTY) && Quotebuf[offset] == '\n') {
-        buf[0] = '\n';
-        buf[1] = '\0';
-      }
-      else if (option (OPTQUOTEQUOTED) && offset) {
-        for (i = 0; i < offset; i++)
-          if (Quotebuf[i] != ' ')
-            j = i;
-        strncpy (buf, Quotebuf, j + 1);
-        strcpy (buf + j + 1, Quotebuf + j);
-      }
-      else
-        snprintf (buf, sizeof (buf), "%s%s", NONULL (s->prefix), Quotebuf);
-
-      state_puts (buf, s);
-    }
-  }
-  else
-    state_putc (c, s);
-
-  if (c == '\n') {
-    state_set_prefix (s);
-    Quotebuf[0] = '\0';
-  }
-}
-
-int state_printf (STATE * s, const char *fmt, ...)
-{
-  int rv;
-  va_list ap;
-
-  va_start (ap, fmt);
-  rv = vfprintf (s->fpout, fmt, ap);
-  va_end (ap);
-
-  return rv;
-}
-
-void state_mark_attach (STATE * s)
-{
-  if ((s->flags & M_DISPLAY) && !str_cmp (Pager, "builtin"))
-    state_puts (AttachmentMarker, s);
-}
-
-void state_attach_puts (const char *t, STATE * s)
-{
-  if (*t != '\n')
-    state_mark_attach (s);
-  while (*t) {
-    state_putc (*t, s);
-    if (*t++ == '\n' && *t)
-      if (*t != '\n')
-        state_mark_attach (s);
-  }
-}
-
 void mutt_display_sanitize (char *s)
 {
   for (; *s; s++) {
@@ -1392,12 +1285,17 @@ time_t mutt_decrease_mtime (const char *f, struct stat *st)
   return mtime;
 }
 
-const char *mutt_make_version (void)
+const char *mutt_make_version (int full)
 {
   static char vstring[STRING];
 
-  snprintf (vstring, sizeof (vstring), "Mutt-ng %s (%s) based on Mutt 1.5.9",
-            MUTT_VERSION, ReleaseDate);
+  if (full)
+    snprintf (vstring, sizeof (vstring), "Mutt-ng %s-r%s (based "
+              "on Mutt 1.5.10/%s)", MUTT_VERSION, MUTT_REVISION,
+              ReleaseDate);
+  else
+    snprintf (vstring, sizeof (vstring), "mutt-ng/%s-r%s",
+              MUTT_VERSION, MUTT_REVISION);
   return vstring;
 }