Rocco Rutte:
[apps/madmutt.git] / mh.c
diff --git a/mh.c b/mh.c
index 5d8f036..1c6483b 100644 (file)
--- a/mh.c
+++ b/mh.c
@@ -68,6 +68,9 @@ struct mh_sequences {
 #define MH_SEQ_REPLIED (1 << 1)
 #define MH_SEQ_FLAGGED (1 << 2)
 
+/* prototypes */
+static int maildir_check_empty (const char*);
+
 static void mhs_alloc (struct mh_sequences *mhs, int i)
 {
   int j;
@@ -947,12 +950,12 @@ static int _mh_read_dir (CONTEXT * ctx, const char *subdir)
   return 0;
 }
 
-int mh_read_dir (CONTEXT* ctx) {
+static int mh_read_dir (CONTEXT* ctx) {
   return (_mh_read_dir (ctx, NULL));
 }
 
 /* read a maildir style mailbox */
-int maildir_read_dir (CONTEXT * ctx)
+static int maildir_read_dir (CONTEXT * ctx)
 {
   /* maildir looks sort of like MH, except that there are two subdirectories
    * of the main folder path from which to read messages
@@ -967,7 +970,7 @@ int maildir_read_dir (CONTEXT * ctx)
  * Open a new (temporary) message in an MH folder.
  */
 
-int mh_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr)
+static int mh_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr)
 {
   return mh_mkstemp (dest, &msg->fp, &msg->path);
 }
@@ -1015,7 +1018,7 @@ static void maildir_flags (char *dest, size_t destlen, HEADER * hdr)
  *
  */
 
-int maildir_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr)
+static int maildir_open_new_message (MESSAGE * msg, CONTEXT * dest, HEADER * hdr)
 {
   int fd;
   char path[_POSIX_PATH_MAX];
@@ -1378,7 +1381,7 @@ static int maildir_sync_message (CONTEXT * ctx, int msgno)
   return (0);
 }
 
-int mh_sync_mailbox (CONTEXT * ctx, int *index_hint)
+static int mh_sync_mailbox (CONTEXT * ctx, int unused, int *index_hint)
 {
   char path[_POSIX_PATH_MAX], tmp[_POSIX_PATH_MAX];
   int i, j;
@@ -1871,7 +1874,7 @@ FILE *maildir_open_find_message (const char *folder, const char *msg)
  * 0 if there are messages in the mailbox
  * -1 on error
  */
-int maildir_check_empty (const char *path)
+static int maildir_check_empty (const char *path)
 {
   DIR *dp;
   struct dirent *de;
@@ -1927,14 +1930,10 @@ int mh_check_empty (const char *path)
   return r;
 }
 
-int mh_is_magic (const char* path) {
-  struct stat st;
+static int mh_is_magic (const char* path, struct stat* st) {
   char tmp[_POSIX_PATH_MAX];
 
-  if (stat (path, &st) == -1)
-    return (-1);
-
-  if (S_ISDIR (st.st_mode)) {
+  if (S_ISDIR (st->st_mode)) {
     snprintf (tmp, sizeof (tmp), "%s/.mh_sequences", path);
     if (access (tmp, F_OK) == 0)
       return (M_MH);
@@ -1967,15 +1966,13 @@ int mh_is_magic (const char* path) {
   return (-1);
 }
 
-int maildir_is_magic (const char* path) {
-  struct stat st;
+static int maildir_is_magic (const char* path, struct stat* st) {
+  struct stat sb;
   char tmp[_POSIX_PATH_MAX];
 
-  if (stat (path, &st) == -1)
-    return (0);
-  if (S_ISDIR (st.st_mode)) {
+  if (S_ISDIR (st->st_mode)) {
     snprintf (tmp, sizeof (tmp), "%s/cur", path);
-    if (stat (tmp, &st) == 0 && S_ISDIR (st.st_mode))
+    if (stat (tmp, &sb) == 0 && S_ISDIR (sb.st_mode))
       return (M_MAILDIR);
   }
   return (-1);
@@ -1986,6 +1983,7 @@ static mx_t* reg_mx (void) {
   mx_t* fmt = safe_calloc (1, sizeof (mx_t));
   fmt->local = 1;
   fmt->mx_access = access;
+  fmt->mx_sync_mailbox = mh_sync_mailbox;
   return (fmt);
 }
 
@@ -1995,6 +1993,7 @@ mx_t* mh_reg_mx (void) {
   fmt->mx_check_empty = mh_check_empty;
   fmt->mx_is_magic = mh_is_magic;
   fmt->mx_open_mailbox = mh_read_dir;
+  fmt->mx_open_new_message = mh_open_new_message;
   return (fmt);
 }
 
@@ -2004,5 +2003,6 @@ mx_t* maildir_reg_mx (void) {
   fmt->mx_check_empty = maildir_check_empty;
   fmt->mx_is_magic = maildir_is_magic;
   fmt->mx_open_mailbox = maildir_read_dir;
+  fmt->mx_open_new_message = maildir_open_new_message;
   return (fmt);
 }