]> granicus.if.org Git - neomutt/commitdiff
Move Maildir/MH folder detection from mx.c to mh.c
authorRocco Rutte <pdmef@gmx.net>
Wed, 29 Apr 2009 09:53:01 +0000 (11:53 +0200)
committerRocco Rutte <pdmef@gmx.net>
Wed, 29 Apr 2009 09:53:01 +0000 (11:53 +0200)
mailbox.h
mh.c
mx.c

index 542210b26f58e17e728fc553c480d68db3ebb9a2..91e5dc71e7d16319b6dad433519e9460d0cb2910 100644 (file)
--- a/mailbox.h
+++ b/mailbox.h
@@ -78,4 +78,7 @@ int mx_is_pop (const char *);
 int mx_access (const char*, int);
 int mx_check_empty (const char *);
 
+int mx_is_maildir (const char *);
+int mx_is_mh (const char *);
+
 #endif
diff --git a/mh.c b/mh.c
index a4abd285213db84f530e5b966637385ce8021766..d09dd487a1696d88ee5b16f5378a9c1670b77423 100644 (file)
--- a/mh.c
+++ b/mh.c
@@ -2225,3 +2225,50 @@ int mh_check_empty (const char *path)
   
   return r;
 }
+
+int mx_is_maildir (const char *path)
+{
+  char tmp[_POSIX_PATH_MAX];
+  struct stat st;
+
+  snprintf (tmp, sizeof (tmp), "%s/cur", path);
+  if (stat (tmp, &st) == 0 && S_ISDIR (st.st_mode))
+    return 1;
+  return 0;
+}
+
+int mx_is_mh (const char *path)
+{
+  char tmp[_POSIX_PATH_MAX];
+
+  snprintf (tmp, sizeof (tmp), "%s/.mh_sequences", path);
+  if (access (tmp, F_OK) == 0)
+    return 1;
+
+  snprintf (tmp, sizeof (tmp), "%s/.xmhcache", path);
+  if (access (tmp, F_OK) == 0)
+    return 1;
+
+  snprintf (tmp, sizeof (tmp), "%s/.mew_cache", path);
+  if (access (tmp, F_OK) == 0)
+    return 1;
+
+  snprintf (tmp, sizeof (tmp), "%s/.mew-cache", path);
+  if (access (tmp, F_OK) == 0)
+    return 1;
+
+  snprintf (tmp, sizeof (tmp), "%s/.sylpheed_cache", path);
+  if (access (tmp, F_OK) == 0)
+    return 1;
+
+  /*
+   * ok, this isn't an mh folder, but mh mode can be used to read
+   * Usenet news from the spool. ;-)
+   */
+
+  snprintf (tmp, sizeof (tmp), "%s/.overview", path);
+  if (access (tmp, F_OK) == 0)
+    return 1;
+
+  return 0;
+}
diff --git a/mx.c b/mx.c
index 1aa49051d779df5ee60a7bf16ee9ee2badcc1842..4ed9eb1c82a10189585b44ffced9907b5690c142 100644 (file)
--- a/mx.c
+++ b/mx.c
@@ -370,42 +370,12 @@ int mx_get_magic (const char *path)
   if (S_ISDIR (st.st_mode))
   {
     /* check for maildir-style mailbox */
-
-    snprintf (tmp, sizeof (tmp), "%s/cur", path);
-    if (stat (tmp, &st) == 0 && S_ISDIR (st.st_mode))
-      return (M_MAILDIR);
+    if (mx_is_maildir (path))
+      return M_MAILDIR;
 
     /* check for mh-style mailbox */
-
-    snprintf (tmp, sizeof (tmp), "%s/.mh_sequences", path);
-    if (access (tmp, F_OK) == 0)
-      return (M_MH);
-
-    snprintf (tmp, sizeof (tmp), "%s/.xmhcache", path);
-    if (access (tmp, F_OK) == 0)
-      return (M_MH);
-    
-    snprintf (tmp, sizeof (tmp), "%s/.mew_cache", path);
-    if (access (tmp, F_OK) == 0)
-      return (M_MH);
-
-    snprintf (tmp, sizeof (tmp), "%s/.mew-cache", path);
-    if (access (tmp, F_OK) == 0)
-      return (M_MH);
-    
-    snprintf (tmp, sizeof (tmp), "%s/.sylpheed_cache", path);
-    if (access (tmp, F_OK) == 0)
-      return (M_MH);
-
-    /* 
-     * ok, this isn't an mh folder, but mh mode can be used to read
-     * Usenet news from the spool. ;-) 
-     */
-
-    snprintf (tmp, sizeof (tmp), "%s/.overview", path);
-    if (access (tmp, F_OK) == 0)
-      return (M_MH);
-
+    if (mx_is_mh (path))
+      return M_MH;
   }
   else if (st.st_size == 0)
   {