Rocco Rutte:
[apps/madmutt.git] / commands.c
index 9475e38..3eea904 100644 (file)
@@ -13,6 +13,9 @@
 #endif
 
 #include "mutt.h"
+#include "enter.h"
+#include "recvattach.h"
+#include "ascii.h"
 #include "mutt_curses.h"
 #include "mutt_menu.h"
 #include "mime.h"
@@ -262,7 +265,7 @@ void ci_bounce_message (HEADER * h, int *redraw)
 
   if (mutt_addrlist_to_idna (adr, &err) < 0) {
     mutt_error (_("Bad IDN: '%s'"), err);
-    FREE (&err);
+    mem_free (&err);
     rfc822_free_address (&adr);
     return;
   }
@@ -570,7 +573,7 @@ void mutt_enter_command (void)
   err.dsize = sizeof (errbuf);
   memset (&token, 0, sizeof (token));
   r = mutt_parse_rc_line (buffer, &token, &err);
-  FREE (&token.data);
+  mem_free (&token.data);
   if (errbuf[0]) {
     /* since errbuf could potentially contain printf() sequences in it,
        we must call mutt_error() in this fashion so that vsprintf()
@@ -820,129 +823,9 @@ int mutt_save_message (HEADER * h, int delete,
   return -1;
 }
 
-int mutt_update_list_file (char *filename, char *section, char *key,
-                           char *line)
-{
-  FILE *ifp;
-  FILE *ofp;
-  char buf[HUGE_STRING];
-  char oldfile[_POSIX_PATH_MAX];
-  char *c;
-  int ext = 0, done = 0, r = 0;
-
-  snprintf (oldfile, sizeof (oldfile), "%s.bak", filename);
-  debug_print (1, ("Renaming %s to %s\n", filename, oldfile));
-
-  /* if file not exist, create it */
-  if ((ifp = safe_fopen (filename, "a")))
-    fclose (ifp);
-  if (_mutt_rename_file (filename, oldfile, 1)) {
-    mutt_perror (_("Unable to create backup file"));
-
-    return (-1);
-  }
-  debug_print (1, ("Opening %s\n", oldfile));
-  if (!(ifp = safe_fopen (oldfile, "r"))) {
-    mutt_perror (_("Unable to open backup file for reading"));
-
-    return (-1);
-  }
-  debug_print (1, ("Opening %s\n", filename));
-  if (!(ofp = safe_fopen (filename, "w"))) {
-    fclose (ifp);
-    mutt_perror (_("Unable to open new file for writing"));
-
-    return (-1);
-  }
-  if (mx_lock_file (filename, fileno (ofp), 1, 0, 1)) {
-    fclose (ofp);
-    fclose (ifp);
-    mutt_error (_("Unable to lock %s, old file saved as %s"), filename,
-                oldfile);
-    return (-1);
-  }
-
-  if (section) {
-    while (r != EOF && !done && fgets (buf, sizeof (buf), ifp)) {
-      r = fputs (buf, ofp);
-      c = buf;
-      while (*c && *c != '\n')
-        c++;
-      c[0] = 0;                 /* strip EOL */
-      if (!strncmp (buf, "#: ", 3) && !str_casecmp (buf + 3, section))
-        done++;
-    }
-    if (r != EOF && !done) {
-      snprintf (buf, sizeof (buf), "#: %s\n", section);
-      r = fputs (buf, ofp);
-    }
-    done = 0;
-  }
-
-  while (r != EOF && fgets (buf, sizeof (buf), ifp)) {
-    if (ext) {
-      c = buf;
-      while (*c && (*c != '\r') && (*c != '\n'))
-        c++;
-      c--;
-      if (*c != '\\')
-        ext = 0;
-    }
-    else if ((section && !strncmp (buf, "#: ", 3))) {
-      if (!done && line) {
-        fputs (line, ofp);
-        fputc ('\n', ofp);
-      }
-      r = fputs (buf, ofp);
-      done++;
-      break;
-    }
-    else if (key && !strncmp (buf, key, str_len (key)) &&
-             (!*key || buf[str_len (key)] == ' ')) {
-      c = buf;
-      ext = 0;
-      while (*c && (*c != '\r') && (*c != '\n'))
-        c++;
-      c--;
-      if (*c == '\\')
-        ext = 1;
-      if (!done && line) {
-        r = fputs (line, ofp);
-        if (*key)
-          r = fputc ('\n', ofp);
-        done++;
-      }
-    }
-    else {
-      r = fputs (buf, ofp);
-    }
-  }
-
-  while (r != EOF && fgets (buf, sizeof (buf), ifp))
-    r = fputs (buf, ofp);
-
-  /* If there wasn't a line to replace, put it on the end of the file */
-  if (r != EOF && !done && line) {
-    fputs (line, ofp);
-    r = fputc ('\n', ofp);
-  }
-  mx_unlock_file (filename, fileno (ofp), 0);
-  fclose (ofp);
-  fclose (ifp);
-  if (r != EOF) {
-    unlink (oldfile);
-    return 0;
-  }
-  unlink (filename);
-  mutt_error (_("Cannot write new %s, old file saved as %s"), filename,
-              oldfile);
-  return (-1);
-}
-
-
 void mutt_version (void)
 {
-  mutt_message ("Mutt-ng %s (%s) based on Mutt 1.5.9", MUTT_VERSION, ReleaseDate);
+  mutt_message (mutt_make_version ());
 }
 
 void mutt_edit_content_type (HEADER * h, BODY * b, FILE * fp)
@@ -980,7 +863,7 @@ void mutt_edit_content_type (HEADER * h, BODY * b, FILE * fp)
 
   /* clean up previous junk */
   mutt_free_parameter (&b->parameter);
-  FREE (&b->subtype);
+  mem_free (&b->subtype);
 
   mutt_parse_content_type (buf, b);