/*
* 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.
#include <h/utils.h>
#include <errno.h>
-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 int mbxclose_done(int);
+static void mbxclose_done(int) NORETURN;
char *file = NULL;
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)
seq_save (mp);
context_save (); /* save the context file */
folder_free (mp); /* free folder/message structure */
- return done (0);
+ done (0);
+ return 1;
}
-static int
+static void
mbxclose_done (int status)
{
mbx_close (file, md);
exit (status);
- return 1; /* dead code to satisfy the compiler */
}