+#include "h/mh.h"
+#include "sbr/getarguments.h"
+#include "sbr/concat.h"
+#include "sbr/seq_setprev.h"
+#include "sbr/seq_setcur.h"
+#include "sbr/seq_save.h"
+#include "sbr/smatch.h"
+#include "sbr/ssequal.h"
+#include "sbr/getcpy.h"
+#include "sbr/m_convert.h"
+#include "sbr/getfolder.h"
+#include "sbr/folder_read.h"
+#include "sbr/folder_pack.h"
+#include "sbr/folder_free.h"
+#include "sbr/context_save.h"
+#include "sbr/context_replace.h"
+#include "sbr/context_del.h"
+#include "sbr/context_find.h"
+#include "sbr/brkstring.h"
+#include "sbr/ambigsw.h"
+#include "sbr/path.h"
+#include "sbr/print_version.h"
+#include "sbr/print_help.h"
+#include "sbr/error.h"
+#include "sbr/crawl_folders.h"
+#include "h/done.h"
+#include "h/utils.h"
+#include "sbr/m_maildir.h"
+
+#define FOLDER_SWITCHES \
+ X("all", 0, ALLSW) \
+ X("noall", 0, NALLSW) \
+ X("create", 0, CREATSW) \
+ X("nocreate", 0, NCREATSW) \
+ X("fast", 0, FASTSW) \
+ X("nofast", 0, NFASTSW) \
+ X("header", 0, HDRSW) \
+ X("noheader", 0, NHDRSW) \
+ X("pack", 0, PACKSW) \
+ X("nopack", 0, NPACKSW) \
+ X("verbose", 0, VERBSW) \
+ X("noverbose", 0, NVERBSW) \
+ X("recurse", 0, RECURSW) \
+ X("norecurse", 0, NRECRSW) \
+ X("total", 0, TOTALSW) \
+ X("nototal", 0, NTOTLSW) \
+ X("list", 0, LISTSW) \
+ X("nolist", 0, NLISTSW) \
+ X("print", 0, PRNTSW) \
+ X("noprint", 0, NPRNTSW) \
+ X("push", 0, PUSHSW) \
+ X("pop", 0, POPSW) \
+ X("version", 0, VERSIONSW) \
+ X("help", 0, HELPSW) \
+
+#define X(sw, minchars, id) id,
+DEFINE_SWITCH_ENUM(FOLDER);
+#undef X
+
+#define X(sw, minchars, id) { sw, minchars, id },
+DEFINE_SWITCH_ARRAY(FOLDER, switches);
+#undef X
+
+static bool fshort; /* output only folder names */