3f9d106126a6c72a7c5a75dcab076db03c78958a
[mmh] / config / config.c
1 /*
2 ** config.c -- master nmh configuration file
3 **
4 ** This code is Copyright (c) 2002, by the authors of nmh.  See the
5 ** COPYRIGHT file in the root directory of the nmh distribution for
6 ** complete copyright information.
7 */
8
9 #include <h/mh.h>
10
11
12
13 /*
14 ** nmh globals
15 */
16
17 char *mhlibdir = NMHLIBDIR;
18 char *mhetcdir = NMHETCDIR;
19
20 char *invo_name;        /* command invocation name    */
21 char *mypath;           /* user's $HOME               */
22 char *mmhpath;          /* pathname of user's mmh dir */
23 char *defpath;          /* pathname of user's profile */
24 char *ctxpath;          /* pathname of user's context */
25 char ctxflags;          /* status of user's context   */
26 struct node *m_defs;    /* profile/context structure  */
27
28
29 /*
30 ** nmh constants
31 **
32 ** Important: Adjust uip/mmh.sh if you make changes here!
33 */
34
35 /* default name of the mail storage */
36 char *mailstore = "Mail";
37
38 /* default name of user profile */
39 char *mmhdir = ".mmh";
40
41 /* default name of user profile */
42 char *profile = "profile";
43
44 /* default name for the nmh context file */
45 char *context = "context";
46
47 /*
48 ** Default name of file for public sequences.  If NULL,
49 ** then nmh will use private sequences by default, unless the
50 ** user defines a value using the "mh-sequences" profile entry.
51 */
52 #ifdef NOPUBLICSEQ
53         char *mh_seq = NULL;
54 #else
55         char *mh_seq = ".mh_sequences";
56 #endif
57
58
59 /* name of current message "sequence" */
60 char *current = "cur";
61
62
63 /* standard component files */
64 char *components     = "components";       /* comp         */
65 char *replcomps      = "replcomps";        /* repl         */
66 char *replgroupcomps = "replgroupcomps";   /* repl -group  */
67 char *forwcomps      = "forwcomps";        /* forw         */
68 char *distcomps      = "distcomps";        /* dist         */
69 char *rcvdistcomps   = "rcvdistcomps";     /* rcvdist      */
70 char *digestcomps    = "digestcomps";      /* forw -digest */
71
72 /* standard format (filter) files */
73 char *mhlformat      = "mhl.format";       /* show         */
74 char *mhlreply       = "mhl.reply";        /* repl -filter */
75 char *mhlforward     = "mhl.forward";      /* forw -filter */
76
77 char *inbox = "Inbox";
78 char *defaultfolder = "+inbox";
79
80 char *draftfolder = "+drafts";
81
82 char *curfolder = "Current-Folder";
83 char *usequence = "Unseen-Sequence";
84 char *psequence = "Previous-Sequence";
85 char *nsequence = "Sequence-Negation";
86
87 /* profile entries for storage locations */
88 char *nmhstorage   = "nmh-storage";
89 char *nmhcache     = "nmh-cache";
90 char *nmhprivcache = "nmh-private-cache";
91
92 /* profile entry for external ftp access command */
93 char *nmhaccessftp = "nmh-access-ftp";
94
95
96 /*
97 ** nmh processes
98 */
99
100 /*
101 ** This is the program to process MIME composition files
102 */
103 char *buildmimeproc = NMHBINDIR"/mhbuild";
104
105 /*
106 ** This is the program to `cat' a file.
107 */
108 char *catproc = "/bin/cat";
109
110 /*
111 ** mhl runs this program as a visual-end.
112 */
113 char *faceproc = NULL;
114
115 /*
116 ** This program is usually called directly by users, but it is
117 ** also invoked by the spost program to process an "Fcc", or by
118 ** comp/repl/forw/dist to refile a draft message.
119 */
120 char *fileproc = NMHBINDIR"/refile";
121
122 /*
123 ** This program is called to incorporate messages into a folder.
124 */
125 char *incproc = NMHBINDIR"/inc";
126
127 /*
128 ** When a user runs an nmh program for the first time, this program
129 ** is called to create his nmh profile, and mail directory.
130 */
131 char *installproc = NMHLIBDIR"/install-mh";
132
133 /*
134 ** This is the default program invoked by a "list" response
135 ** at the "What now?" prompt.  It is also used by the draft
136 ** folder facility in comp/dist/forw/repl to display the
137 ** draft message.
138 */
139 char *lproc = "more";
140
141 /*
142 ** This is the path for the Bell equivalent mail program.
143 */
144 char *mailproc = NMHBINDIR"/mhmail";
145
146 /*
147 ** This is used by mhl as a front-end.  It is also used
148 ** by mhshow as the default method of displaying message bodies
149 ** or message parts of type text/plain.
150 */
151 char *moreproc = "more";
152
153 /*
154 ** This is the program (mhl) used to filter messages.  It is
155 ** used by mhshow to filter and display the message headers of
156 ** MIME messages.  It is used by repl/forw (with -filter)
157 ** to filter the message to which you are replying/forwarding.
158 ** It is used by send/spost (with -filter) to filter the message
159 ** for "Bcc:" recipients.
160 */
161 char *mhlproc = NMHLIBDIR"/mhl";
162
163 /*
164 ** This program is called to pack a folder.
165 */
166 char *packproc = NMHBINDIR"/packf";
167
168 /*
169 ** This is the delivery program called by send to actually
170 ** deliver mail to users.  This is the interface to the MTS.
171 */
172 char *postproc = NMHLIBDIR"/spost";
173
174 /*
175 ** This is program is called by slocal to handle
176 ** the action `folder' or `+'.
177 */
178 char *rcvstoreproc = NMHLIBDIR"/rcvstore";
179
180 /*
181 ** This program is called to remove a folder.
182 */
183 char *rmfproc = NMHBINDIR"/rmf";
184
185 /*
186 ** This program is called to remove a message by rmm or refile -nolink.
187 ** It's usually empty, which means to rename the file to a backup name.
188 */
189 char *rmmproc = NULL;
190
191 /*
192 ** This program is usually called by the user's whatnowproc, but it
193 ** may also be called directly to send a message previously composed.
194  */
195 char *sendproc = NMHBINDIR"/send";
196
197 /*
198 ** This is the path to the program used by "show"
199 ** to display non-text (MIME) messages.
200 */
201 char *showmimeproc = NMHBINDIR"/mhshow";
202
203 /*
204 ** This is the default program called by "show" to filter
205 ** and display standard text (non-MIME) messages.  It can be
206 ** changed to a pager (such as "more" or "less") if you prefer
207 ** that such message not be filtered in any way.
208 */
209 char *showproc = NMHLIBDIR"/mhl";
210
211 /*
212 ** This program is called after comp, et. al., have built a draft
213 */
214 char *whatnowproc = NMHBINDIR"/whatnow";
215
216 /*
217 ** This is the sendmail interface to use for sending mail.
218 */
219 char *sendmail = SENDMAILPATH;
220
221 /*
222 ** The prefix that is prepended to the name of message files when they
223 ** are "removed" by rmm. This should typically be `,' or `#'.
224 */
225 char *backup_prefix = ",";
226
227 /*
228 ** This is the editor invoked by the various message
229 ** composition programs.  It SHOULD be a full screen
230 ** editor, such as vi or emacs, but any editor will work.
231 */
232 char *defaulteditor = "vi";
233
234 /*
235 ** Name of link to file to which you are replying or which you are
236 ** redistributing. See `$mhaltmsg' in the mh-profile(5) man page.
237 */
238 char *altmsglink = "@";
239
240 /*
241 ** Folders (directories) are created with this protection (mode)
242 */
243 char *foldprot = "700";
244
245 /*
246 ** Every NEW message will be created with this protection.  When a
247 ** message is filed it retains its protection, so this only applies
248 ** to messages coming in through inc.
249 */
250 char *msgprot = "600";
251
252
253
254 /*
255 ** Standard yes/no switches structure
256 */
257 struct swit anoyes[] = {
258         { "no", 0 },
259         { "yes", 0 },
260         { NULL, 0 }
261 };
262