Annotation of 43BSDReno/contrib/mh/sbr/m_maildir.c, revision 1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.