#include <h/mh.h>
#include <h/utils.h>
-static struct swit switches[] = {
-#define COMPSW 0
- { "component field", 0 },
-#define INPLSW 1
- { "inplace", 0 },
-#define NINPLSW 2
- { "noinplace", 0 },
-#define DATESW 3
- { "date", 0 },
-#define NDATESW 4
- { "nodate", 0 },
-#define TEXTSW 5
- { "text body", 0 },
-#define VERSIONSW 6
- { "version", 0 },
-#define HELPSW 7
- { "help", 0 },
-#define DRFTSW 8
- { "draft", 2 },
-#define LISTSW 9
- { "list", 1 },
-#define DELETESW 10
- { "delete", 2 },
-#define NUMBERSW 11
- { "number", 2 },
-#define APPENDSW 12
- { "append", 1 },
-#define PRESERVESW 13
- { "preserve", 1 },
-#define NOPRESERVESW 14
- { "nopreserve", 3 },
- { NULL, 0 }
-};
+#define ANNO_SWITCHES \
+ X("component field", 0, COMPSW) \
+ X("inplace", 0, INPLSW) \
+ X("noinplace", 0, NINPLSW) \
+ X("date", 0, DATESW) \
+ X("nodate", 0, NDATESW) \
+ X("text body", 0, TEXTSW) \
+ X("version", 0, VERSIONSW) \
+ X("help", 0, HELPSW) \
+ X("draft", 2, DRFTSW) \
+ X("list", 1, LISTSW) \
+ X("delete", 2, DELETESW) \
+ X("number", 2, NUMBERSW) \
+ X("append", 1, APPENDSW) \
+ X("preserve", 1, PRESERVESW) \
+ X("nopreserve", 3, NOPRESERVESW) \
+
+#define X(sw, minchars, id) id,
+DEFINE_SWITCH_ENUM(ANNO);
+#undef X
+
+#define X(sw, minchars, id) { sw, minchars, id },
+DEFINE_SWITCH_ARRAY(ANNO, switches);
+#undef X
/*
* static prototypes
*/
-static void make_comp (unsigned char **);
+static void make_comp (char **);
int
int inplace = 1, datesw = 1;
int msgnum;
char *cp, *maildir;
- unsigned char *comp = NULL;
- char *text = NULL, *folder = NULL, buf[BUFSIZ];
+ char *comp = NULL, *text = NULL, *folder = NULL, buf[BUFSIZ];
char **argp, **arguments;
struct msgs_array msgs = { 0, 0, NULL };
struct msgs *mp;
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 COMPSW:
if (comp)
return 1;
}
-#ifdef UCI
- if (strcmp(invo_name, "fanno") == 0) /* ugh! */
- datesw = 0;
-#endif /* UCI */
-
if (!context_find ("path"))
free (path ("./", TFOLDER));
if (!msgs.size)
adios (maildir, "unable to change directory to");
/* read folder and create message structure */
- if (!(mp = folder_read (folder)))
+ if (!(mp = folder_read (folder, 1)))
adios (NULL, "unable to read folder %s", folder);
/* check for empty folder */
}
static void
-make_comp (unsigned char **ap)
+make_comp (char **ap)
{
- register unsigned char *cp;
- char buffer[BUFSIZ];
+ char *cp, buffer[BUFSIZ];
if (*ap == NULL) {
printf ("Enter component name: ");
adios (NULL, "too large component name %s", *ap);
for (cp = *ap; *cp; cp++)
- if (!isalnum (*cp) && *cp != '-')
+ if (!isalnum ((unsigned char) *cp) && *cp != '-')
adios (NULL, "invalid component name %s", *ap);
}