*/
#include <h/mh.h>
-
-extern char *mhlibdir;
+#include <sysexits.h>
static struct swit switches[] = {
#define COMPSW 0
{ "components", 0 },
#define NCOMPSW 1
- { "nocomponents", 0 },
+ { "nocomponents", 2 },
#define ALLSW 2
{ "all", 0 },
#define VERSIONSW 3
- { "version", 0 },
+ { "Version", 0 },
#define HELPSW 4
{ "help", 0 },
#define DEBUGSW 5
char **p_field;
};
+char *empty = "";
+
+/*
+** This list should contain all values of h/mh.h and config/config.c
+** TODO: Add the constants Nbby, MAXARGS, NUMATTRS, NAMESZ
+*/
static struct proc procs [] = {
- { "attachment-header", &attach_hdr },
- { "context", &context },
- { "mh-sequences", &mh_seq },
- { "buildmimeproc", &buildmimeproc },
+ { "#--Version--", &empty },
+ { "version", &version_num },
+ { "version-str", &version_str },
+
+ { "#--Path-and-File-Names--", &empty },
+ { "mypath", &mypath },
+ { "mmhdir", &mmhdir },
+ { "mmhpath", &mmhpath },
+ { "profile", &profile },
+ { "defpath", &defpath },
+ { "context", &context },
+ { "ctxpath", &ctxpath },
+ { "mhetcdir", &mhetcdir },
+ { "mailspool", &mailspool },
+ { "mailstore", &mailstore },
+ { "mh-sequences", &mh_seq },
+
+ { "#--Default-Programs--", &empty },
{ "editor", &defaulteditor },
- { "fileproc", &fileproc },
- { "foldprot", &foldprot },
- { "incproc", &incproc },
- { "lproc", &lproc },
- { "mailproc", &mailproc },
- { "mhlproc", &mhlproc },
- { "moreproc", &moreproc },
- { "msgprot", &msgprot },
- { "postproc", &postproc },
- { "rmmproc", &rmmproc },
+ { "pager", &defaultpager },
{ "sendmail", &sendmail },
- { "sendproc", &sendproc },
- { "showmimeproc", &showmimeproc },
- { "showproc", &showproc },
- { "version", &version_num },
+ { "listproc", &listproc },
{ "whatnowproc", &whatnowproc },
- { "etcdir", &mhetcdir },
- { "libdir", &mhlibdir },
- { "backup-prefix", &backup_prefix },
- { "altmsg-link", &altmsglink },
- { "draft-folder", &draftfolder },
+ { "mimetypequeryproc", &mimetypequeryproc },
+
+ { "#--Mail-Folder-Names--", &empty },
+ { "inbox", &defaultfolder },
+ { "draftfolder", &draftfolder },
+ { "trashfolder", &trashfolder },
+
+ { "#--Profile-and-Context-Component-Names--", &empty },
+ { "curfolder-component", &curfolder },
+ { "inbox-component", &inbox },
+ { "mimetypequery-component", &mimetypequery },
+ { "nmhstorage-component", &nmhstorage },
+ { "nsequence-component", &nsequence },
+ { "psequence-component", &psequence },
+ { "usequence-component", &usequence },
+
+ { "#--Mmh-specific-Mail-Header-Names--", &empty },
+ { "attachment-header", &attach_hdr },
+ { "enc-header", &enc_hdr },
+ { "sign-header", &sign_hdr },
+
+ { "#--File-Permissions--", &empty },
+ { "foldprot", &foldprot },
+ { "msgprot", &msgprot },
+
+ { "#--Template-File-Names--", &empty },
+ { "components", &components },
+ { "digestcomps", &digestcomps },
+ { "distcomps", &distcomps },
+ { "forwcomps", &forwcomps },
+ { "rcvdistcomps", &rcvdistcomps },
+ { "replcomps", &replcomps },
+ { "replgroupcomps", &replgroupcomps },
+ { "mhlformat", &mhlformat },
+ { "mhlreply", &mhlreply },
+
+ { "#--Default-Sequence-Names--", &empty },
+ { "seq-all", &seq_all },
+ { "seq-beyond", &seq_beyond },
+ { "seq-cur", &seq_cur },
+ { "seq-first", &seq_first },
+ { "seq-last", &seq_last },
+ { "seq-next", &seq_next },
+ { "previous-sequence", &seq_prev },
+ { "unseen-sequence", &seq_unseen },
+ { "sequence-negation", &seq_neg },
+
{ NULL, NULL },
};
invo_name = mhbasename(argv[0]);
- /* read user profile/context */
context_read();
arguments = getarguments(invo_name, argc, argv, 1);
switch (smatch(++cp, switches)) {
case AMBIGSW:
ambigsw(cp, switches);
- done(1);
+ exit(EX_USAGE);
case UNKWNSW:
- adios(NULL, "-%s unknown", cp);
+ adios(EX_USAGE, NULL, "-%s unknown", cp);
case HELPSW:
snprintf(buf, sizeof(buf), "%s [profile-components] [switches]", invo_name);
print_help(buf, switches, 1);
- done(1);
+ exit(argc == 2 ? EX_OK : EX_USAGE);
case VERSIONSW:
print_version(invo_name);
- done(1);
+ exit(argc == 2 ? EX_OK : EX_USAGE);
case COMPSW:
components = 1;
components = compp > 1;
for (i = 0; i < compp; i++) {
- register char *value;
+ char *value;
value = context_find(comps[i]);
if (!value)
}
}
- done(missed);
- return 1;
+ return missed;
}