Completely reworked the path convertion functions
[mmh] / config / config.c
index 24827e9..cc12128 100644 (file)
@@ -31,19 +31,9 @@ etcpath (char *file)
 #ifdef MHRC
        char *pp;
        struct passwd *pw;
-#endif
 
-#ifdef MHRC
        context_read();
-#endif
-
-       switch (*file) {
-       case '/':
-               /* If already absolute pathname, return it */
-               return file;
-
-#ifdef MHRC
-       case '~':
+       if (*file == '~') {
                /* Expand ~username */
                if ((cp = strchr(pp = file + 1, '/')))
                        *cp++ = '\0';
@@ -65,15 +55,20 @@ etcpath (char *file)
 
                if (access (epath, R_OK) != NOTOK)
                        return epath;  /* else fall */
+       }
 try_it:
 #endif /* MHRC */
 
-       default:
-               /* Check nmh Mail directory */
-               if (access ((cp = m_mailpath (file)), R_OK) != NOTOK)
-                       return cp;
+       if (*file == '/') {
+               /* If already absolute pathname, return it */
+               return file;
        }
 
+       /* Check nmh Mail directory */
+       strncpy(epath, toabsdir(file), sizeof epath);
+       if (access (epath, R_OK) != NOTOK)
+               return epath;
+
        /* Check nmh `etc' directory */
        snprintf (epath, sizeof(epath), NMHETCDIR"/%s", file);
        return (access (epath, R_OK) != NOTOK ? epath : file);
@@ -117,10 +112,10 @@ char *mhlformat = "mhl.format";            /* show         */
 char *mhlreply = "mhl.reply";              /* repl -filter */
 char *mhlforward = "mhl.forward";          /* forw -filter */
 
-char *draftfolder = "drafts";
+char *draftfolder = "+drafts";
 
 char *inbox = "Inbox";
-char *defaultfolder = "inbox";
+char *defaultfolder = "+inbox";
 
 char *pfolder = "Current-Folder";
 char *usequence = "Unseen-Sequence";