X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/93f22073ff22b277206b0481c1f8f076aee1656d..e98c2d0fee3d656633ae897576b3d8d0f0fddfe2:/uip/new.c diff --git a/uip/new.c b/uip/new.c index 99d8528b..e88a0dd7 100644 --- a/uip/new.c +++ b/uip/new.c @@ -21,17 +21,19 @@ #include #include -static struct swit switches[] = { -#define MODESW 0 - { "mode", 1 }, -#define FOLDERSSW 1 - { "folders", 1 }, -#define VERSIONSW 2 - { "version", 1 }, -#define HELPSW 3 - { "help", 1 }, - { NULL, 0 } -}; +#define NEW_SWITCHES \ + X("mode", 1, MODESW) \ + X("folders", 1, FOLDERSSW) \ + X("version", 1, VERSIONSW) \ + X("help", 1, HELPSW) \ + +#define X(sw, minchars, id) id, +DEFINE_SWITCH_ENUM(NEW); +#undef X + +#define X(sw, minchars, id) { sw, minchars, id }, +DEFINE_SWITCH_ARRAY(NEW, switches); +#undef X static enum { NEW, FNEXT, FPREV, UNSEEN } run_mode = NEW; @@ -408,6 +410,9 @@ main(int argc, char **argv) char *unseen; struct node *folder; + sequences[0] = NULL; + sequences[1] = NULL; + #ifdef LOCALE setlocale(LC_ALL, ""); #endif @@ -435,10 +440,10 @@ main(int argc, char **argv) snprintf (help, sizeof(help), "%s [switches] [sequences]", invo_name); print_help (help, switches, 1); - done (1); + done (0); case VERSIONSW: print_version(invo_name); - done (1); + done (0); case FOLDERSSW: if (!(folders = *argp++) || *folders == '-') @@ -454,6 +459,7 @@ main(int argc, char **argv) /* have a sequence argument */ if (!seq_in_list(cp, sequences)) { sequences[i++] = cp; + sequences[i] = NULL; } }