|
|
1.1 ! root 1: /* m_maildir.c - get the path for the mail directory */ ! 2: ! 3: #include "../h/mh.h" ! 4: #include <stdio.h> ! 5: ! 6: #define CWD "./" ! 7: #define NCWD (sizeof CWD - 1) ! 8: #define DOT "." ! 9: #define DOTDOT ".." ! 10: #define PWD "../" ! 11: #define NPWD (sizeof PWD - 1) ! 12: ! 13: ! 14: static char mailfold[BUFSIZ]; ! 15: ! 16: static char *exmaildir(); ! 17: ! 18: char * ! 19: m_maildir(folder) ! 20: register char *folder; ! 21: { ! 22: register char *cp, ! 23: *ep; ! 24: ! 25: if ((cp = exmaildir (folder)) ! 26: && (ep = cp + strlen (cp) - 1) > cp ! 27: && *ep == '/') ! 28: *ep = NULL; ! 29: ! 30: return cp; ! 31: } ! 32: ! 33: /* */ ! 34: ! 35: char * ! 36: m_mailpath(folder) ! 37: register char *folder; ! 38: { ! 39: register char *cp; ! 40: char maildir[BUFSIZ]; ! 41: ! 42: if (*folder == '/' ! 43: || strncmp (folder, CWD, NCWD) == 0 ! 44: || strcmp (folder, DOT) == 0 ! 45: || strcmp (folder, DOTDOT) == 0 ! 46: || strncmp (folder, PWD, NPWD) == 0) ! 47: cp = path (folder, TFOLDER); ! 48: else { ! 49: (void) strcpy (maildir, mailfold);/* preserve... */ ! 50: cp = getcpy (m_maildir (folder)); ! 51: (void) strcpy (mailfold, maildir); ! 52: } ! 53: ! 54: return cp; ! 55: } ! 56: ! 57: /* */ ! 58: ! 59: static char * ! 60: exmaildir(folder) ! 61: register char *folder; ! 62: { ! 63: register char *cp, ! 64: *pp; ! 65: ! 66: if (folder == NULL) ! 67: folder = m_getfolder (); ! 68: if (*folder == '/' ! 69: || strncmp (folder, CWD, NCWD) == 0 ! 70: || strcmp (folder, DOT) == 0 ! 71: || strcmp (folder, DOTDOT) == 0 ! 72: || strncmp (folder, PWD, NPWD) == 0) { ! 73: (void) strcpy (mailfold, folder); ! 74: return mailfold; ! 75: } ! 76: ! 77: cp = mailfold; ! 78: if ((pp = m_find ("path")) != NULL && *pp) { ! 79: if (*pp != '/') { ! 80: (void) sprintf (cp, "%s/", mypath); ! 81: cp += strlen (cp); ! 82: } ! 83: cp = copy (pp, cp); ! 84: } ! 85: else ! 86: cp = copy (path ("./", TFOLDER), cp); ! 87: if (cp[-1] != '/') ! 88: *cp++ = '/'; ! 89: (void) strcpy (cp, folder); ! 90: ! 91: return mailfold; ! 92: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.