Annotation of 43BSD/contrib/mh/config/config.c, revision 1.1.1.1

1.1       root        1: /* config.c - master MH configuration file */
                      2: 
                      3: /* This file is automatically generated.  Do not edit! */
                      4: 
                      5: /* LINTLIBRARY */
                      6: 
                      7: #include "../h/mh.h"
                      8: #ifdef MHRC
                      9: #include <pwd.h>
                     10: #endif MHRC
                     11: #include <stdio.h>
                     12: 
                     13: 
                     14: #define binpath(file) "/usr/new/mh/file"
                     15: #define etcpath(file) "/usr/new/lib/mh/file"
                     16: 
                     17: 
                     18: char *options[] = {"BSD42", "BSD43", "BERK", "TTYD", "DUMB", "MHE", "NETWORK", "BIND", "RPATHS", "ATZ", "SBACKUP='\"\043\"'", "SENDMTS", "SMTP", NULL};
                     19: 
                     20: 
                     21: #ifdef MHRC
                     22: #ifdef SYS5
                     23: struct passwd *getpwnam ();
                     24: #endif SYS5
                     25: #endif MHRC
                     26: 
                     27: /*  */
                     28: 
                     29: static    char lpath[BUFSIZ];
                     30: 
                     31: char   *libpath (file)
                     32: char   *file;
                     33: {
                     34:     char   *cp;
                     35: #ifdef MHRC
                     36:     char   *pp;
                     37:     struct passwd  *pw;
                     38: #endif MHRC
                     39: 
                     40: #ifdef MHRC
                     41:     m_getdefs ();
                     42: #endif MHRC
                     43: 
                     44:     switch (*file) {
                     45:        case '/': 
                     46:            return file;
                     47: 
                     48: #ifdef MHRC
                     49:        case '~': 
                     50:            if (cp = index (pp = file + 1, '/'))
                     51:                *cp++ = NULL;
                     52:            if (*pp == NULL)
                     53:                pp = mypath;
                     54:            else
                     55:                if (pw = getpwnam (pp))
                     56:                    pp = pw -> pw_dir;
                     57:                else {
                     58:                    if (cp)
                     59:                        *--cp = '/';
                     60:                    goto try_it;
                     61:                }
                     62: 
                     63:            (void) sprintf (lpath, "%s/%s", pp, cp ? cp : "");
                     64:            if (cp)
                     65:                *--cp = '/';
                     66: 
                     67:            if (access (lpath, 04) != NOTOK)
                     68:                return lpath;   /* else fall */
                     69:     try_it: ;
                     70: #endif MHRC
                     71: 
                     72:        default: 
                     73:            if (access ((cp = m_maildir (file)), 04) != NOTOK)
                     74:                return cp;
                     75:     }
                     76: 
                     77:     (void) sprintf (lpath, etcpath (%s), file);
                     78:     return (access (lpath, 04) != NOTOK ? lpath : file);
                     79: }
                     80: 
                     81: /*  */
                     82: 
                     83: /* 
                     84:  * Standard yes/no switches structure
                     85:  */
                     86: 
                     87: struct swit anoyes[] = {
                     88:     "no", 0,
                     89:     "yes", 0,
                     90:     NULL, NULL
                     91: };
                     92: 
                     93: /*  */
                     94: 
                     95: /* 
                     96:  * MH constants
                     97:  */
                     98: 
                     99: char   *components = "components";
                    100: char   *current = "cur";
                    101: char   *defalt = "inbox";
                    102: char   *digestcomps = "digestcomps";
                    103: char   *distcomps = "distcomps";
                    104: char   *draft = "draft";
                    105: char   *forwcomps = "forwcomps";
                    106: char   *mh_defaults = etcpath (mh.profile);
                    107: char   *mh_profile = ".mh_profile";
                    108: char   *mhlformat = "mhl.format";
                    109: char   *mhlforward = "mhl.forward";
                    110: char   *nsequence = "Sequence-Negation";
                    111: char   *pfolder = "Current-Folder";
                    112: char   *psequence = "Previous-Sequence";
                    113: char   *rcvdistcomps = "rcvdistcomps";
                    114: char   *replcomps = "replcomps";
                    115: char   *usequence = "Unseen-Sequence";
                    116: 
                    117: 
                    118: /* 
                    119:  * MH not-so constants
                    120:  */
                    121: 
                    122: char   *context = "context";
                    123: #ifndef        NOMHSEQ
                    124: char   *mh_seq = ".mh_sequences";
                    125: #else  NOMHSEQ
                    126: char   *mh_seq = NULL;
                    127: #endif NOMHSEQ
                    128: 
                    129: 
                    130: /* 
                    131:  * MH globals
                    132:  */
                    133: 
                    134: char    ctxflags;              /* status of user's context */
                    135: 
                    136: char   *invo_name;             /* pgm invocation name */
                    137: char   *mypath;                        /* user's $HOME */
                    138: char   *defpath;               /* pathname of user's profile */
                    139: char   *ctxpath;               /* pathname of user's context */
                    140: 
                    141: struct node *m_defs;           /* profile/context structure */
                    142: 
                    143: /*  */
                    144: 
                    145: /* 
                    146:  * MH processes
                    147:  */
                    148: 
                    149: 
                    150: /*
                    151:  * This program is usually called directly by users, but it is
                    152:  * also invoked by the post program to process an "fcc".
                    153:  */
                    154: 
                    155: char   *fileproc = binpath (refile);
                    156: 
                    157: 
                    158: /* 
                    159:  * This program is called to incorporate messages into a folder.
                    160:  */
                    161: 
                    162: char   *incproc = binpath (inc);
                    163: 
                    164: 
                    165: /*
                    166:  * When a user runs an MH program for the first time, this program
                    167:  * is called to create his MH profile, and mail directory.
                    168:  */
                    169: 
                    170: char   *installproc = etcpath (install-mh);
                    171: 
                    172: 
                    173: /*
                    174:  * This is the program invoked by a "list" response to "What now?"
                    175:  *  whereas, showproc is the program invoked by show, next, prev.
                    176:  */
                    177: 
                    178: #ifndef        MORE
                    179: char   *lproc = "/usr/ucb/more";
                    180: #else  MORE
                    181: char   *lproc = MORE;
                    182: #endif MORE
                    183: 
                    184: 
                    185: /*
                    186:  * This is the path for the Bell equivalent mail program.
                    187:  */
                    188: 
                    189: char   *mailproc = binpath (mhmail);
                    190: 
                    191: 
                    192: /*
                    193:  * mhl runs this program as a front-end.
                    194:  */
                    195: 
                    196: #ifndef        MORE
                    197: char   *moreproc = "/usr/ucb/more";
                    198: #else  MORE
                    199: char   *moreproc = MORE;
                    200: #endif MORE
                    201: 
                    202: 
                    203: /* 
                    204:  * This program is mhl - the nifty message lister
                    205:  */
                    206: 
                    207: char   *mhlproc = etcpath (mhl);
                    208: 
                    209: 
                    210: /* 
                    211:  * This is the super handy BBoard reading program, which is really just the MH
                    212:  * shell program
                    213:  */
                    214: 
                    215: char   *mshproc = binpath (msh);
                    216: 
                    217: 
                    218: /* 
                    219:  * This program is called to pack a folder.  
                    220:  */
                    221: 
                    222: char   *packproc = binpath (packf);
                    223: 
                    224: 
                    225: /*
                    226:  * This is the delivery program called through send to
                    227:  * actually deliver mail to users.  This is the interface to
                    228:  * the MTS.
                    229:  */
                    230: 
                    231: #if BERK && SENDMTS
                    232: char   *postproc = etcpath (spost);
                    233: #else
                    234: char   *postproc = etcpath (post);
                    235: #endif BERK
                    236: 
                    237: 
                    238: /* 
                    239:  * This program is called to remove a folder.  
                    240:  */
                    241: 
                    242: char   *rmfproc = binpath (rmf);
                    243: 
                    244: 
                    245: /* 
                    246:  * This program is called to remove a message by rmm or refile -nolink.
                    247:  * It's usually empty, which means to rename the file to a backup name.
                    248:  */
                    249: 
                    250: char   *rmmproc = NULL;
                    251: 
                    252: 
                    253: /*
                    254:  * This program is usually called by the user's whatnowproc, but it
                    255:  * may also be called directly to send a message previously composed.
                    256:  */
                    257: 
                    258: char   *sendproc = binpath (send);
                    259: 
                    260: 
                    261: /*
                    262:  * This program is called to list messages by the show program.
                    263:  * By setting showproc to mhl, the user can run mhl instead.
                    264:  */
                    265: 
                    266: #ifndef        MORE
                    267: char   *showproc = "/usr/ucb/more";
                    268: #else  MORE
                    269: char   *showproc = MORE;
                    270: #endif MORE
                    271: 
                    272: 
                    273: /* 
                    274:  * This program is called under stand-alone MH to deliver a message to
                    275:  * a local user.  Under other MTS's it can be used to emulate a
                    276:  * MMDF-II .maildelivery mechanism.
                    277:  */
                    278: 
                    279: char   *slocalproc = etcpath (slocal);
                    280: 
                    281: 
                    282: /* 
                    283:  * This program is called by vmh as the back-end to the window management
                    284:  * protocol
                    285:  */
                    286: 
                    287: char   *vmhproc = binpath (msh);
                    288: 
                    289: 
                    290: /* 
                    291:  * This program is called after comp, et. al., have built a draft
                    292:  */
                    293: 
                    294: char   *whatnowproc = binpath (whatnow);
                    295: 
                    296: 
                    297: /* 
                    298:  * This program is called to list/validate the addresses in a message.
                    299:  */
                    300: 
                    301: char   *whomproc = binpath (whom);
                    302: 
                    303: /*  */
                    304: 
                    305: /*
                    306:  * This is the editor invoked by the various message composition
                    307:  * programs.  It SHOULD be a 2-D scope editor, such as Rand's ned
                    308:  * or Berkeley's ex, but any editor will work.  We use prompter as
                    309:  * the default, since with -prepend it works just fine with forw.
                    310:  */
                    311: 
                    312: char   *sysed = "prompter";
                    313: 
                    314: 
                    315: /* 
                    316:  * This is the MH alias file.
                    317:  */
                    318: 
                    319: char   *AliasFile = etcpath (MailAliases);
                    320: 
                    321: /*  */
                    322: 
                    323: /* 
                    324:  * File protections
                    325:  */
                    326: 
                    327: 
                    328: /*
                    329:  * Folders (directories) are created with this protection (mode)
                    330:  */
                    331: 
                    332: #ifndef        FOLDPROT
                    333: #define        FOLDPROT        "0711"
                    334: #endif not FOLDPROT
                    335: 
                    336: char   *foldprot = FOLDPROT;
                    337: 
                    338: 
                    339: /*
                    340:  * Every NEW message will be created with this protection.  When a
                    341:  * message is filed it retains its protection, so this only applies
                    342:  * to messages coming in through inc.
                    343:  */
                    344: 
                    345: #ifndef        MSGPROT
                    346: #define        MSGPROT         "0644"
                    347: #endif not MSGPROT
                    348: 
                    349: char   *msgprot = MSGPROT;

unix.superglobalmegacorp.com

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