X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=uip%2Fmhparam.c;h=2c61e608076236bb2042a0b4d414215412dc7686;hp=575c7a7a8a1ef8dda45a0375809a6b9a645b97cd;hb=6e9577f324bef90765a5edc02044eb111ec48072;hpb=714b5c530ece27ea2835a313013f5b770163403c diff --git a/uip/mhparam.c b/uip/mhparam.c index 575c7a7..2c61e60 100644 --- a/uip/mhparam.c +++ b/uip/mhparam.c @@ -10,19 +10,17 @@ */ #include - -extern char *mhlibdir; -extern char *mhetcdir; +#include 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 @@ -30,42 +28,92 @@ static struct swit switches[] = { { NULL, 0 } }; +char *version=VERSION; + struct proc { char *p_name; 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 [] = { - { "context", &context }, - { "mh-sequences", &mh_seq }, - { "buildmimeproc", &buildmimeproc }, - { "editor", &defaulteditor }, - { "faceproc", &faceproc }, - { "fileproc", &fileproc }, - { "foldprot", &foldprot }, - { "incproc", &incproc }, - { "installproc", &installproc }, - { "lproc", &lproc }, - { "mailproc", &mailproc }, - { "mhlproc", &mhlproc }, - { "moreproc", &moreproc }, - { "msgprot", &msgprot }, - { "packproc", &packproc }, - { "postproc", &postproc }, - { "rmfproc", &rmfproc }, - { "rmmproc", &rmmproc }, - { "sendmail", &sendmail }, - { "sendproc", &sendproc }, - { "showmimeproc", &showmimeproc }, - { "showproc", &showproc }, - { "version", &version_num }, - { "whatnowproc", &whatnowproc }, - { "etcdir", &mhetcdir }, - { "libdir", &mhlibdir }, - { "backup-prefix", &backup_prefix }, - { "altmsg-link", &altmsglink }, - { "draft-folder", &draftfolder }, - { NULL, NULL }, + { "#--Version--", &empty }, + { "version", &version }, + { "lib-version", &lib_version }, + + { "#--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 }, + { "pager", &defaultpager }, + { "sendmail", &sendmail }, + { "listproc", &listproc }, + { "whatnowproc", &whatnowproc }, + { "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 }, + { "scanformat", &scanformat }, + + { "#--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 }, }; @@ -84,9 +132,8 @@ main(int argc, char **argv) char *cp, buf[BUFSIZ], **argp; char **arguments, *comps[MAXARGS]; - invo_name = r1bindex(argv[0], '/'); + invo_name = mhbasename(argv[0]); - /* read user profile/context */ context_read(); arguments = getarguments(invo_name, argc, argv, 1); @@ -95,34 +142,34 @@ main(int argc, char **argv) while ((cp = *argp++)) { if (*cp == '-') { switch (smatch(++cp, switches)) { - case AMBIGSW: - ambigsw(cp, switches); - done(1); - case UNKWNSW: - adios(NULL, "-%s unknown", cp); - - case HELPSW: - snprintf(buf, sizeof(buf), "%s [profile-components] [switches]", invo_name); - print_help(buf, switches, 1); - done(1); - case VERSIONSW: - print_version(invo_name); - done(1); - - case COMPSW: - components = 1; - break; - case NCOMPSW: - components = 0; - break; - - case ALLSW: - all = 1; - break; - - case DEBUGSW: - debug = 1; - break; + case AMBIGSW: + ambigsw(cp, switches); + exit(EX_USAGE); + case UNKWNSW: + adios(EX_USAGE, NULL, "-%s unknown", cp); + + case HELPSW: + snprintf(buf, sizeof(buf), "%s [profile-components] [switches]", invo_name); + print_help(buf, switches, 1); + exit(argc == 2 ? EX_OK : EX_USAGE); + case VERSIONSW: + print_version(invo_name); + exit(argc == 2 ? EX_OK : EX_USAGE); + + case COMPSW: + components = 1; + break; + case NCOMPSW: + components = 0; + break; + + case ALLSW: + all = 1; + break; + + case DEBUGSW: + debug = 1; + break; } } else { comps[compp++] = cp; @@ -160,7 +207,7 @@ main(int argc, char **argv) components = compp > 1; for (i = 0; i < compp; i++) { - register char *value; + char *value; value = context_find(comps[i]); if (!value) @@ -175,8 +222,7 @@ main(int argc, char **argv) } } - done(missed); - return 1; + return missed; }