-static struct swit sendswitches[] = {
-#define ALIASW 0
- { "alias aliasfile", 0 },
-#define DEBUGSW 1
- { "debug", -5 },
-#define FILTSW 2
- { "filter filterfile", 0 },
-#define NFILTSW 3
- { "nofilter", 0 },
-#define FRMTSW 4
- { "format", 0 },
-#define NFRMTSW 5
- { "noformat", 0 },
-#define FORWSW 6
- { "forward", 0 },
-#define NFORWSW 7
- { "noforward", 0 },
-#define MIMESW 8
- { "mime", 0 },
-#define NMIMESW 9
- { "nomime", 0 },
-#define MSGDSW 10
- { "msgid", 0 },
-#define NMSGDSW 11
- { "nomsgid", 0 },
-#define SPSHSW 12
- { "push", 0 },
-#define NSPSHSW 13
- { "nopush", 0 },
-#define SPLITSW 14
- { "split seconds", 0 },
-#define UNIQSW 15
- { "unique", -6 },
-#define NUNIQSW 16
- { "nounique", -8 },
-#define VERBSW 17
- { "verbose", 0 },
-#define NVERBSW 18
- { "noverbose", 0 },
-#define WATCSW 19
- { "watch", 0 },
-#define NWATCSW 20
- { "nowatch", 0 },
-#define WIDTHSW 21
- { "width columns", 0 },
-#define SVERSIONSW 22
- { "version", 0 },
-#define SHELPSW 23
- { "help", 0 },
-#define BITSTUFFSW 24
- { "dashstuffing", -12 },
-#define NBITSTUFFSW 25
- { "nodashstuffing", -14 },
-#define MAILSW 26
- { "mail", -4 },
-#define SAMLSW 27
- { "saml", -4 },
-#define SSNDSW 28
- { "send", -4 },
-#define SOMLSW 29
- { "soml", -4 },
-#define CLIESW 30
- { "client host", -6 },
-#define SERVSW 31
- { "server host", 6 },
-#define SNOOPSW 32
- { "snoop", -5 },
-#define SDRFSW 33
- { "draftfolder +folder", -6 },
-#define SDRMSW 34
- { "draftmessage msg", -6 },
-#define SNDRFSW 35
- { "nodraftfolder", -3 },
-#define SASLSW 36
- { "sasl", SASLminc(-4) },
-#define NOSASLSW 37
- { "nosasl", SASLminc(-6) },
-#define SASLMXSSFSW 38
- { "saslmaxssf", SASLminc(-10) },
-#define SASLMECHSW 39
- { "saslmech", SASLminc(-5) },
-#define USERSW 40
- { "user", SASLminc(-4) },
-#define SNDATTACHSW 41
- { "attach file", 6 },
-#define SNDNOATTACHSW 42
- { "noattach", 0 },
-#define SNDATTACHFORMAT 43
- { "attachformat", 7 },
-#define PORTSW 44
- { "port server-port-name/number", 4 },
-#define TLSSW 45
- { "tls", TLSminc(-3) },
-#define NTLSSW 46
- { "notls", TLSminc(-5) },
-#define MTSSW 47
- { "mts smtp|sendmail/smtp|sendmail/pipe", 2 },
- { NULL, 0 }
-};
+#define SEND_SWITCHES \
+ X("alias aliasfile", 0, ALIASW) \
+ X("debug", -5, DEBUGSW) \
+ X("filter filterfile", 0, FILTSW) \
+ X("nofilter", 0, NFILTSW) \
+ X("format", 0, FRMTSW) \
+ X("noformat", 0, NFRMTSW) \
+ X("forward", 0, FORWSW) \
+ X("noforward", 0, NFORWSW) \
+ X("mime", 0, MIMESW) \
+ X("nomime", 0, NMIMESW) \
+ X("msgid", 0, MSGDSW) \
+ X("nomsgid", 0, NMSGDSW) \
+ X("push", 0, SPSHSW) \
+ X("nopush", 0, NSPSHSW) \
+ X("split seconds", 0, SPLITSW) \
+ X("unique", -6, UNIQSW) \
+ X("nounique", -8, NUNIQSW) \
+ X("verbose", 0, VERBSW) \
+ X("noverbose", 0, NVERBSW) \
+ X("watch", 0, WATCSW) \
+ X("nowatch", 0, NWATCSW) \
+ X("width columns", 0, WIDTHSW) \
+ X("version", 0, SVERSIONSW) \
+ X("help", 0, SHELPSW) \
+ X("dashstuffing", -12, BITSTUFFSW) \
+ X("nodashstuffing", -14, NBITSTUFFSW) \
+ X("client host", -6, CLIESW) \
+ X("server host", 6, SERVSW) \
+ X("snoop", -5, SNOOPSW) \
+ X("draftfolder +folder", 0, SDRFSW) \
+ X("draftmessage msg", 0, SDRMSW) \
+ X("nodraftfolder", 0, SNDRFSW) \
+ X("sasl", SASLminc(4), SASLSW) \
+ X("nosasl", SASLminc(6), NOSASLSW) \
+ X("saslmech", SASLminc(5), SASLMECHSW) \
+ X("authservice", SASLminc(0), AUTHSERVICESW) \
+ X("user username", SASLminc(4), USERSW) \
+ X("attach fieldname", 6, SNDATTACHSW) \
+ X("noattach", 0, SNDNOATTACHSW) \
+ X("attachformat", 7, SNDATTACHFORMAT) \
+ X("port server-port-name/number", 4, PORTSW) \
+ X("tls", TLSminc(-3), TLSSW) \
+ X("initialtls", TLSminc(-10), INITTLSSW) \
+ X("notls", TLSminc(-5), NTLSSW) \
+ X("sendmail program", 0, MTSSM) \
+ X("mts smtp|sendmail/smtp|sendmail/pipe", 2, MTSSW) \
+ X("messageid localname|random", 2, MESSAGEIDSW) \
+
+#define X(sw, minchars, id) id,
+DEFINE_SWITCH_ENUM(SEND);
+#undef X
+
+#define X(sw, minchars, id) { sw, minchars, id },
+DEFINE_SWITCH_ARRAY(SEND, sendswitches);
+#undef X