.nf
.B "#include <mLib/mdwopt.h>"
-.ds mT \fBint mdwopt(
-.BI "\*(mTint " argc ", char *const *" argv ,
-.BI "\h'\w'\*(mT'u'const char *" shortopt ,
-.BI "\h'\w'\*(mT'u'const struct option *" longopt ", int *" longind ,
-.BI "\h'\w'\*(mT'u'mdwopt_data *" data ", int " flags );
+.ta 2n
+.B "typedef struct {"
+.B " char *arg, *prog;"
+.B " int opt, ind, err;"
+.B " ..."
+.B "} mdwopt_data;"
+
+.B "char *optarg, optprog;"
+.B "int optopt, opterr, optind;"
+
+.B "struct option {"
+.B " const char *name;"
+.B " int has_arg;"
+.B " int *flag;"
+.B " int val;"
+.B "};"
+
+.B "#define OPTF_NOARG = ..."
+.B "#define OPTF_ARGREQ = ..."
+.B "#define OPTF_ARGOPT = ..."
+.B "#define OPTF_ARG = ..."
+.B "#define OPTF_SWITCH = ..."
+.B "#define OPTF_NEGATE = ..."
+
+.B "#define OPTF_NOLONGS = ..."
+.B "#define OPTF_NOSHORTS = ..."
+.B "#define OPTF_NUMBERS = ..."
+.B "#define OPTF_NEGATION = ..."
+.B "#define OPTF_ENVVAR = ..."
+.B "#define OPTF_NOPROGNAME = ..."
+.B "#define OPTF_NEGNUMBER = ..."
+
+.B "#define OPTF_NEGATED = ..."
+
+.ta \w'\fBint mdwopt('u
+.BI "int mdwopt(int " argc ", char *const *" argv ,
+.BI " const char *" shortopt ,
+.BI " const struct option *" longopt ", int *" longind ,
+.BI " mdwopt_data *" data ", int " flags );
.BI "int getopt(int " argc ", char *const *" argv ", const char *" o );
-.ds mT \fBint getopt_long(
-.BI "\*(mTint " argc ", char *const *" argv ,
-.BI "\h'\w'\*(mT'u'const char * "shortopt ,
-.BI "\h'\w'\*(mT'u'const struct option *" longopt ", int *" longind );
+.ta \w'\fBint getopt_long('u
+.BI "int getopt_long(int " argc ", char *const *" argv ,
+.BI " const char * "shortopt ,
+.BI " const struct option *" longopt ", int *" longind );
-.ds mT \fBint getopt_long_only(
-.BI "\*(mTint " argc ", char *const *" argv ,
-.BI "\h'\w'\*(mT'u'const char * "shortopt ,
-.BI "\h'\w'\*(mT'u'const struct option *" longopt ", int *" longind );
+.ta \w'\fBint getopt_long_only('u
+.BI "int getopt_long_only(int " argc ", char *const *" argv ,
+.BI " const char * "shortopt ,
+.BI " const struct option *" longopt ", int *" longind );
.fi
.SH "OVERVIEW"
The