rationnalize includes a lot:
[apps/madmutt.git] / mh.c
diff --git a/mh.c b/mh.c
index f108bf9..f40bbd1 100644 (file)
--- a/mh.c
+++ b/mh.c
  * mailboxes.
  */
 
-#if HAVE_CONFIG_H
-# include "config.h"
-#endif
+#include <lib-lib/lib-lib.h>
+#include <utime.h>
 
-#include <lib-lib/mem.h>
-#include <lib-lib/str.h>
-#include <lib-lib/macros.h>
-#include <lib-lib/file.h>
+#include <lib-ui/curses.h>
 
 #include "mutt.h"
 #include "mx.h"
 #include "thread.h"
 #include "hcache.h"
 
-#include "lib/debug.h"
-
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <dirent.h>
-#include <limits.h>
-#include <unistd.h>
-#include <fcntl.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <errno.h>
-#include <string.h>
-#include <utime.h>
-
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
-
 struct maildir {
   HEADER *h;
   char *canon_fname;
@@ -142,7 +118,7 @@ static void mh_read_sequences (struct mh_sequences *mhs, const char *path)
   int line = 1;
   char *buff = NULL;
   char *t;
-  size_t sz = 0;
+  ssize_t sz = 0;
 
   short f;
   int first, last;
@@ -265,7 +241,7 @@ static void mhs_write_one_sequence (FILE * fp, struct mh_sequences *mhs,
 
 /* XXX - we don't currently remove deleted messages from sequences we don't know.  Should we? */
 
-void mh_update_sequences (CONTEXT * ctx)
+static void mh_update_sequences (CONTEXT * ctx)
 {
   FILE *ofp, *nfp;
 
@@ -273,7 +249,7 @@ void mh_update_sequences (CONTEXT * ctx)
   char *tmpfname;
   char *buff = NULL;
   char *p;
-  size_t s;
+  ssize_t s;
   int l = 0;
   int i;
 
@@ -384,7 +360,7 @@ static void mh_sequences_add_one (CONTEXT * ctx, int n, short unseen,
 
   char *buff = NULL;
   int line;
-  size_t sz;
+  ssize_t sz;
 
   if (mh_mkstemp (ctx, &nfp, &tmpfname) == -1)
     return;
@@ -697,7 +673,6 @@ static int maildir_parse_dir (CONTEXT * ctx, struct maildir ***last,
 
     /* FOO - really ignore the return value? */
 
-    debug_print (2, ("parsing %s\n", de->d_name));
     maildir_parse_entry (ctx, last, subdir, de->d_name, count, is_old,
 #if HAVE_DIRENT_D_INO
                          de->d_ino
@@ -717,12 +692,7 @@ static int maildir_add_to_context (CONTEXT * ctx, struct maildir *md)
 
   while (md) {
 
-    debug_print (2, ("considering %s\n", NONULL (md->canon_fname)));
-
     if (md->h) {
-      debug_print (2, ("flags: %s%s%s%s%s\n", md->h->flagged ? "f" : "",
-                  md->h->deleted ? "D" : "", md->h->replied ? "r" : "",
-                  md->h->old ? "O" : "", md->h->read ? "R" : ""));
       if (ctx->msgcount == ctx->hdrmax)
         mx_alloc_memory (ctx);
 
@@ -755,11 +725,9 @@ static int maildir_move_to_context (CONTEXT * ctx, struct maildir **md)
 }
 
 #ifdef USE_HCACHE
-static size_t maildir_hcache_keylen (const char *fn)
+static ssize_t maildir_hcache_keylen (const char *fn)
 {
-  const char *p = strchr (fn, ':');
-
-  return p ? (size_t) (p - fn) : m_strlen(fn);
+    return m_strchrnul(fn, ':') - fn;
 }
 #endif
 
@@ -767,7 +735,7 @@ static size_t maildir_hcache_keylen (const char *fn)
  * This function does the second parsing pass for a maildir-style
  * folder.
  */
-void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
+static void maildir_delayed_parsing (CONTEXT * ctx, struct maildir *md)
 {
   struct maildir *p;
   char fn[_POSIX_PATH_MAX];
@@ -892,12 +860,12 @@ static int mh_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr __at
   return mh_mkstemp (dest, &msg->fp, &msg->path);
 }
 
-int ch_compar (const void *a, const void *b)
+static int ch_compar (const void *a, const void *b)
 {
   return (int) (*((const char *) a) - *((const char *) b));
 }
 
-static void maildir_flags (char *dest, size_t destlen, HEADER * hdr)
+static void maildir_flags (char *dest, ssize_t destlen, HEADER * hdr)
 {
   *dest = '\0';
 
@@ -964,17 +932,13 @@ static int maildir_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr
               dest->path, subdir, (long) time (NULL),
               (unsigned int) getpid (), Counter++, NONULL (Hostname), suffix);
 
-    debug_print (2, ("trying %s.\n", path));
-
     umask (Umask);
     if ((fd = open (path, O_WRONLY | O_EXCL | O_CREAT, 0666)) == -1) {
       if (errno != EEXIST) {
         mutt_perror (path);
         return -1;
       }
-    }
-    else {
-      debug_print (2, ("success.\n"));
+    } else {
       msg->path = m_strdup(path);
       break;
     }
@@ -1041,8 +1005,6 @@ static int maildir_commit_message (MESSAGE * msg, CONTEXT * ctx, HEADER * hdr)
               NONULL (Hostname), suffix);
     snprintf (full, _POSIX_PATH_MAX, "%s/%s", ctx->path, path);
 
-    debug_print (2, ("renaming %s to %s.\n", msg->path, full));
-
     if (safe_rename (msg->path, full) == 0) {
       if (hdr)
         m_strreplace(&hdr->path, path);
@@ -1222,7 +1184,7 @@ static int mh_rewrite_message (CONTEXT * ctx, int msgno)
     h->lines = old_hdr_lines;
   }
 
-  mutt_free_body (&h->content->parts);
+  body_list_wipe(&h->content->parts);
   return rc;
 }
 
@@ -1259,7 +1221,6 @@ static int maildir_sync_message (CONTEXT * ctx, int msgno)
     char *p;
 
     if ((p = strrchr (h->path, '/')) == NULL) {
-      debug_print (1, ("%s: unable to find subdir!\n", h->path));
       return (-1);
     }
     p++;
@@ -1386,7 +1347,7 @@ err:
   return -1;
 }
 
-static char *maildir_canon_filename (char *dest, const char *src, size_t l)
+static char *maildir_canon_filename (char *dest, const char *src, ssize_t l)
 {
   char *t, *u;
 
@@ -1703,8 +1664,8 @@ static int mh_check_mailbox (CONTEXT * ctx, int *index_hint, int unused __attrib
  * then again, it's called rarely.
  */
 
-FILE *_maildir_open_find_message (const char *folder, const char *unique,
-                                  const char *subfolder)
+static FILE *_maildir_open_find_message (const char *folder, const char *unique,
+                                         const char *subfolder)
 {
   char dir[_POSIX_PATH_MAX];
   char tunique[_POSIX_PATH_MAX];
@@ -1820,7 +1781,7 @@ static int maildir_check_empty (const char *path)
  * 0 if there are messages in the mailbox
  * -1 on error
  */
-int mh_check_empty (const char *path)
+static int mh_check_empty (const char *path)
 {
   DIR *dp;
   struct dirent *de;