|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T m
Length: 1737 (0x6c9) Types: TextFile Names: »m_maildir.c«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦3658e588a⟧ »EurOpenD3/mail/mh/mh-6.7.tar.Z« └─⟦c75e36ecb⟧ └─⟦this⟧ »mh-6.7/sbr/m_maildir.c«
/* m_maildir.c - get the path for the mail directory */ #include "../h/mh.h" #include <stdio.h> #define CWD "./" #define NCWD (sizeof CWD - 1) #define DOT "." #define DOTDOT ".." #define PWD "../" #define NPWD (sizeof PWD - 1) static char mailfold[BUFSIZ]; static char *exmaildir (); char *m_maildir (folder) register char *folder; { register char *cp, *ep; if ((cp = exmaildir (folder)) && (ep = cp + strlen (cp) - 1) > cp && *ep == '/') *ep = NULL; return cp; } /* \f */ char *m_mailpath (folder) register char *folder; { register char *cp; char maildir[BUFSIZ]; if (*folder == '/' || strncmp (folder, CWD, NCWD) == 0 || strcmp (folder, DOT) == 0 || strcmp (folder, DOTDOT) == 0 || strncmp (folder, PWD, NPWD) == 0) cp = path (folder, TFOLDER); else { (void) strcpy (maildir, mailfold);/* preserve... */ cp = getcpy (m_maildir (folder)); (void) strcpy (mailfold, maildir); } return cp; } /* \f */ static char *exmaildir (folder) register char *folder; { register char *cp, *pp; if (folder == NULL) folder = m_getfolder (); if (*folder == '/' || strncmp (folder, CWD, NCWD) == 0 || strcmp (folder, DOT) == 0 || strcmp (folder, DOTDOT) == 0 || strncmp (folder, PWD, NPWD) == 0) { (void) strcpy (mailfold, folder); return mailfold; } cp = mailfold; if ((pp = m_find ("path")) != NULL && *pp) { if (*pp != '/') { (void) sprintf (cp, "%s/", mypath); cp += strlen (cp); } cp = copy (pp, cp); } else cp = copy (path ("./", TFOLDER), cp); if (cp[-1] != '/') *cp++ = '/'; (void) strcpy (cp, folder); return mailfold; }