#define MAXFOLDERS 100
-static struct swit switches[] = {
-#define SEQSW 0
- { "sequence name", 0 },
-#define ALLSW 1
- { "all", 0 },
-#define NOALLSW 2
- { "noall", 0 },
-#define RECURSE 3
- { "recurse", 0 },
-#define NORECURSE 4
- { "norecurse", 0 },
-#define SHOWZERO 5
- { "showzero", 0 },
-#define NOSHOWZERO 6
- { "noshowzero", 0 },
-#define ALPHASW 7
- { "alpha", 0 },
-#define NOALPHASW 8
- { "noalpha", 0 },
-#define FASTSW 9
- { "fast", 0 },
-#define NOFASTSW 10
- { "nofast", 0 },
-#define TOTALSW 11
- { "total", -5 },
-#define NOTOTALSW 12
- { "nototal", -7 },
-#define VERSIONSW 13
- { "version", 0 },
-#define HELPSW 14
- { "help", 0 },
- { NULL, 0 }
-};
+#define FLIST_SWITCHES \
+ X("sequence name", 0, SEQSW) \
+ X("all", 0, ALLSW) \
+ X("noall", 0, NOALLSW) \
+ X("recurse", 0, RECURSE) \
+ X("norecurse", 0, NORECURSE) \
+ X("showzero", 0, SHOWZERO) \
+ X("noshowzero", 0, NOSHOWZERO) \
+ X("alpha", 0, ALPHASW) \
+ X("noalpha", 0, NOALPHASW) \
+ X("fast", 0, FASTSW) \
+ X("nofast", 0, NOFASTSW) \
+ X("total", -5, TOTALSW) \
+ X("nototal", -7, NOTOTALSW) \
+ X("version", 0, VERSIONSW) \
+ X("help", 0, HELPSW) \
+
+#define X(sw, minchars, id) id,
+DEFINE_SWITCH_ENUM(FLIST);
+#undef X
+
+#define X(sw, minchars, id) { sw, minchars, id },
+DEFINE_SWITCH_ARRAY(FLIST, switches);
+#undef X
struct Folder {
char *name; /* name of folder */
snprintf(buf, sizeof(buf), "%s [+folder1 [+folder2 ...]][switches]",
invo_name);
print_help(buf, switches, 1);
- done(1);
+ done(0);
case VERSIONSW:
print_version(invo_name);
- done (1);
+ done (0);
case SEQSW:
if (!(cp = *argp++) || *cp == '-')
void
GetFolderOrder(void)
{
- unsigned char *p, *s;
+ char *p, *s;
int priority = 1;
struct Folder *o;
if (!(p = context_find("Flist-Order")))
return;
for (;;) {
- while (isspace(*p))
+ while (isspace((unsigned char) *p))
++p;
s = p;
- while (*p && !isspace(*p))
+ while (*p && !isspace((unsigned char) *p))
++p;
if (p != s) {
/* Found one. */
BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth)
{
char *base, name[PATH_MAX];
- unsigned char *n;
+ char *n;
int nlinks;
DIR *dir;
struct dirent *dp;
/* Check to see if the name of the file is a number
* if it is, we assume it's a mail file and skip it
*/
- for (n = dp->d_name; *n && isdigit(*n); n++);
+ for (n = dp->d_name; *n && isdigit((unsigned char) *n); n++);
if (!*n)
continue;
strncpy (name, base, sizeof(name) - 2);
struct msgs *mp;
/* Read folder and create message structure */
- if (!(mp = folder_read (name))) {
+ if (!(mp = folder_read (name, 0))) {
/* Oops, error occurred. Record it and continue. */
AllocFolders(&folders, &nFoldersAlloced, nFolders + 1);
f = &folders[nFolders++];