X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/0569d6d1631dc90d4f2f2df6bdd0599c7ecc7814..ffe0615cdabdb2fd43c9cae6aaaf99a8831c2c10:/uip/packf.c?ds=inline diff --git a/uip/packf.c b/uip/packf.c index 9f954667..53e696af 100644 --- a/uip/packf.c +++ b/uip/packf.c @@ -2,8 +2,6 @@ /* * packf.c -- pack a nmh folder into a file * - * $Id$ - * * This code is Copyright (c) 2002, by the authors of nmh. See the * COPYRIGHT file in the root directory of the nmh distribution for * complete copyright information. @@ -15,24 +13,27 @@ #include #include -static struct swit switches[] = { -#define FILESW 0 - { "file name", 0 }, -#define MBOXSW 1 - { "mbox", 0 }, -#define MMDFSW 2 - { "mmdf", 0 }, -#define VERSIONSW 3 - { "version", 0 }, -#define HELPSW 4 - { "help", 0 }, - { NULL, 0 } -}; +#define PACKF_SWITCHES \ + X("file name", 0, FILESW) \ + X("mbox", 0, MBOXSW) \ + X("mmdf", 0, MMDFSW) \ + X("version", 0, VERSIONSW) \ + X("help", 0, HELPSW) \ + +#define X(sw, minchars, id) id, +DEFINE_SWITCH_ENUM(PACKF); +#undef X + +#define X(sw, minchars, id) { sw, minchars, id }, +DEFINE_SWITCH_ARRAY(PACKF, switches); +#undef X static int md = NOTOK; static int mbx_style = MBOX_FORMAT; static int mapping = 0; +static void mbxclose_done(int) NORETURN; + char *file = NULL; @@ -46,6 +47,8 @@ main (int argc, char **argv) struct msgs *mp; struct stat st; + done=mbxclose_done; + #ifdef LOCALE setlocale(LC_ALL, ""); #endif @@ -73,10 +76,10 @@ main (int argc, char **argv) snprintf (buf, sizeof(buf), "%s [+folder] [msgs] [switches]", invo_name); print_help (buf, switches, 1); - done (1); + done (0); case VERSIONSW: print_version(invo_name); - done (1); + done (0); case FILESW: if (file) @@ -175,13 +178,13 @@ main (int argc, char **argv) seq_save (mp); context_save (); /* save the context file */ folder_free (mp); /* free folder/message structure */ - return done (0); + done (0); + return 1; } -int -done (int status) +static void +mbxclose_done (int status) { mbx_close (file, md); exit (status); - return 1; /* dead code to satisfy the compiler */ }