X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=config%2Fconfig.c;h=5e250414946e3686b97a1a1253c1558109566c0a;hp=24827e967f208b594c3c1610e4c3da74c6cd2e2c;hb=18591f8e001ecedbee48a51c1d1f08ebaa1c15c8;hpb=5d09b7206ae2602d3aedb2b552ef160b855d8054 diff --git a/config/config.c b/config/config.c index 24827e9..5e25041 100644 --- a/config/config.c +++ b/config/config.c @@ -8,285 +8,133 @@ #include -#ifdef MHRC -# include -#endif /* -** Find the location of a format or configuration -** file, and return its absolute pathname. -** -** 1) If already absolute pathname, then leave unchanged. -** 2) Next, if it begins with ~user, then expand it. -** 3) Next, check in nmh Mail directory. -** 4) Next, check in nmh `etc' directory. +** nmh globals */ -char * -etcpath (char *file) -{ - static char epath[PATH_MAX]; - char *cp; -#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 '~': - /* Expand ~username */ - if ((cp = strchr(pp = file + 1, '/'))) - *cp++ = '\0'; - if (*pp == '\0') { - pp = mypath; - } else { - if ((pw = getpwnam (pp))) - pp = pw->pw_dir; - else { - if (cp) - *--cp = '/'; - goto try_it; - } - } - - snprintf (epath, sizeof(epath), "%s/%s", pp, cp ? cp : ""); - if (cp) - *--cp = '/'; - - 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; - } - - /* Check nmh `etc' directory */ - snprintf (epath, sizeof(epath), NMHETCDIR"/%s", file); - return (access (epath, R_OK) != NOTOK ? epath : file); -} +char *mhetcdir = NMHETCDIR; +char *invo_name; /* command invocation name */ +char *mypath; /* user's $HOME */ +char *mmhpath; /* pathname of user's mmh dir */ +char *defpath; /* pathname of user's profile */ +char *ctxpath; /* pathname of user's context */ +char ctxflags; /* status of user's context */ +struct node *m_defs; /* profile/context structure */ -/* -** Standard yes/no switches structure -*/ - -struct swit anoyes[] = { - { "no", 0 }, - { "yes", 0 }, - { NULL, 0 } -}; /* -** nmh constants +** nmh constants: standard file names +** +** Important: Adjust uip/mmh.sh if you make changes here! */ -/* initial profile for new users */ -char *mh_defaults = NMHETCDIR"/mh.profile"; +/* default name of the mail storage */ +char *mailstore = "Mail"; /* default name of user profile */ -char *mh_profile = ".mh_profile"; - -/* name of current message "sequence" */ -char *current = "cur"; - -/* standard component files */ -char *components = "components"; /* comp */ -char *replcomps = "replcomps"; /* repl */ -char *replgroupcomps = "replgroupcomps"; /* repl -group */ -char *forwcomps = "forwcomps"; /* forw */ -char *distcomps = "distcomps"; /* dist */ -char *rcvdistcomps = "rcvdistcomps"; /* rcvdist */ -char *digestcomps = "digestcomps"; /* forw -digest */ - -/* standard format (filter) files */ -char *mhlformat = "mhl.format"; /* show */ -char *mhlreply = "mhl.reply"; /* repl -filter */ -char *mhlforward = "mhl.forward"; /* forw -filter */ - -char *draftfolder = "drafts"; - -char *inbox = "Inbox"; -char *defaultfolder = "inbox"; - -char *pfolder = "Current-Folder"; -char *usequence = "Unseen-Sequence"; -char *psequence = "Previous-Sequence"; -char *nsequence = "Sequence-Negation"; - -/* profile entries for storage locations */ -char *nmhstorage = "nmh-storage"; -char *nmhcache = "nmh-cache"; -char *nmhprivcache = "nmh-private-cache"; +char *mmhdir = ".mmh"; -/* profile entry for external ftp access command */ -char *nmhaccessftp = "nmh-access-ftp"; - -char *mhlibdir = NMHLIBDIR; -char *mhetcdir = NMHETCDIR; - -/* -** nmh not-so constants -*/ +/* default name of user profile */ +char *profile = "profile"; -/* -** Default name for the nmh context file. -*/ +/* default name for the nmh context file */ char *context = "context"; /* -** Default name of file for public sequences. If NULL, -** then nmh will use private sequences by default, unless the -** user defines a value using the "mh-sequences" profile entry. +** Default name of file for public sequences. Gets overridden +** by a `Mh-Sequences' entry in the user's profile. Set to NULL +** or the empty string to use private sequences by default. */ -#ifdef NOPUBLICSEQ -char *mh_seq = NULL; -#else char *mh_seq = ".mh_sequences"; -#endif -/* -** nmh globals -*/ - -char ctxflags; /* status of user's context */ -char *invo_name; /* command invocation name */ -char *mypath; /* user's $HOME */ -char *defpath; /* pathname of user's profile */ -char *ctxpath; /* pathname of user's context */ -struct node *m_defs; /* profile/context structure */ - -/* -** nmh processes -*/ +/* standard component files */ +char *components = "components"; /* comp */ +char *replcomps = "replcomps"; /* repl */ +char *replgroupcomps = "replgroupcomps"; /* repl -group */ +char *forwcomps = "forwcomps"; /* forw */ +char *distcomps = "distcomps"; /* dist */ +char *rcvdistcomps = "rcvdistcomps"; /* rcvdist */ +char *digestcomps = "digestcomps"; /* forw -digest */ -/* -** This is the program to process MIME composition files -*/ -char *buildmimeproc = NMHBINDIR"/mhbuild"; -/* -** This is the program to `cat' a file. -*/ -char *catproc = "/bin/cat"; +/* standard format (filter) files */ +char *mhlformat = "mhl.format"; /* show */ +char *mhlreply = "mhl.reply"; /* repl */ +char *scanformat = "scan.default"; /* scan/inc */ -/* -** mhl runs this program as a visual-end. -*/ -char *faceproc = NULL; /* -** This program is usually called directly by users, but it is -** also invoked by the spost program to process an "Fcc", or by -** comp/repl/forw/dist to refile a draft message. +** standard names for: mail folders, sequences, and profile entries */ -char *fileproc = NMHBINDIR"/refile"; -/* -** This program is called to incorporate messages into a folder. -*/ -char *incproc = NMHBINDIR"/inc"; +/* some default folder names */ +char *defaultfolder = "+inbox"; +char *draftfolder = "+drafts"; +char *trashfolder = "+trash"; -/* -** When a user runs an nmh program for the first time, this program -** is called to create his nmh profile, and mail directory. -*/ -char *installproc = NMHLIBDIR"/install-mh"; +char *inbox = "Inbox"; /* profile entry name to specify the default folder */ +char *curfolder = "Current-Folder"; -/* -** This is the default program invoked by a "list" response -** at the "What now?" prompt. It is also used by the draft -** folder facility in comp/dist/forw/repl to display the -** draft message. -*/ -char *lproc = "more"; +/* predefined sequences */ +char *seq_all = "a"; +char *seq_beyond = "b"; /* the previous `new' sequence */ +char *seq_cur = "c"; +char *seq_first = "f"; +char *seq_last = "l"; +char *seq_next = "n"; +char *seq_prev = "p"; +char *seq_unseen = "u"; +char *seq_neg = "!"; -/* -** This is the path for the Bell equivalent mail program. -*/ -char *mailproc = NMHBINDIR"/mhmail"; +char *usequence = "Unseen-Sequence"; +char *psequence = "Previous-Sequence"; +char *nsequence = "Sequence-Negation"; -/* -** This is used by mhl as a front-end. It is also used -** by mhshow as the default method of displaying message bodies -** or message parts of type text/plain. -*/ -char *moreproc = "more"; +/* profile entries for storage locations */ +char *nmhstorage = "nmh-storage"; -/* -** This is the program (mhl) used to filter messages. It is -** used by mhshow to filter and display the message headers of -** MIME messages. It is used by repl/forw (with -filter) -** to filter the message to which you are replying/forwarding. -** It is used by send/spost (with -filter) to filter the message -** for "Bcc:" recipients. -*/ -char *mhlproc = NMHLIBDIR"/mhl"; +/* Default header field names */ +char *attach_hdr = "Attach"; +char *sign_hdr = "Sign"; +char *enc_hdr = "Enc"; -/* -** This program is called to pack a folder. -*/ -char *packproc = NMHBINDIR"/packf"; +/* the tool to query the mime type of a file */ +char *mimetypequery = "Mime-Type-Query"; +char *mimetypequeryproc = "file -b --mime"; -/* -** This is the delivery program called by send to actually -** deliver mail to users. This is the interface to the MTS. -*/ -char *postproc = NMHLIBDIR"/spost"; -/* -** This is program is called by slocal to handle -** the action `folder' or `+'. -*/ -char *rcvstoreproc = NMHLIBDIR"/rcvstore"; /* -** This program is called to remove a folder. +** nmh default programs */ -char *rmfproc = NMHBINDIR"/rmf"; /* -** This program is called to remove a message by rmm or refile -nolink. -** It's usually empty, which means to rename the file to a backup name. +** This is the default program invoked by a "list" or "display" response +** at the "What now?" prompt. It will be given the absolute pathname of +** the message to show. */ -char *rmmproc = NULL; +char *listproc = "show"; /* -** This program is usually called by the user's whatnowproc, but it -** may also be called directly to send a message previously composed. - */ -char *sendproc = NMHBINDIR"/send"; - -/* -** This is the path to the program used by "show" -** to display non-text (MIME) messages. +** This is used by mhl as a front-end. It is also used +** by show(1) as the default method of displaying message bodies +** or message parts of type text/plain. */ -char *showmimeproc = NMHBINDIR"/mhshow"; +char *defaultpager = "more"; /* -** This is the default program called by "show" to filter -** and display standard text (non-MIME) messages. It can be -** changed to a pager (such as "more" or "less") if you prefer -** that such message not be filtered in any way. +** This is the editor invoked by the various message +** composition programs. It SHOULD be a full screen +** editor, such as vi or emacs, but any editor will work. */ -char *showproc = NMHLIBDIR"/mhl"; +char *defaulteditor = "vi"; /* ** This program is called after comp, et. al., have built a draft */ -char *whatnowproc = NMHBINDIR"/whatnow"; +char *whatnowproc = "whatnow"; /* ** This is the sendmail interface to use for sending mail. @@ -294,42 +142,34 @@ char *whatnowproc = NMHBINDIR"/whatnow"; char *sendmail = SENDMAILPATH; /* -** The prefix that is prepended to the name of message files when they -** are "removed" by rmm. This should typically be `,' or `#'. +** This is the path to the system mail spool directory (e.g. `/var/mail'). */ -char *backup_prefix = ","; +char *mailspool = MAILSPOOL; -/* -** This is the editor invoked by the various message -** composition programs. It SHOULD be a full screen -** editor, such as vi or emacs, but any editor will work. -*/ -char *defaulteditor = "vi"; /* -** Name of link to file to which you are replying or which you are -** redistributing. See `$mhaltmsg' in the mh-profile(5) man page. +** file stuff */ -char *altmsglink = "@"; /* -** This is the global nmh alias file. It is somewhat obsolete, since -** global aliases should be handled by the Mail Transport Agent (MTA). +** Folders (directories) are created with this protection (mode) */ -char *AliasFile = NMHETCDIR"/MailAliases"; +char *foldprot = "0700"; /* -** File protections +** Every NEW message will be created with this protection. When a +** message is filed it retains its protection. */ +char *msgprot = "0600"; + -/* -** Folders (directories) are created with this protection (mode) -*/ -char *foldprot = "700"; /* -** Every NEW message will be created with this protection. When a -** message is filed it retains its protection, so this only applies -** to messages coming in through inc. +** Standard yes/no switches structure */ -char *msgprot = "600"; +struct swit anoyes[] = { + { "no", 0 }, + { "yes", 0 }, + { NULL, 0 } +}; +