- * At least one of @longopt and @shortopt must be non-zero. If the
- * @cb returns false, opt_parse() will stop parsing and return false.
+ * Similarly, if @show is not NULL, it should be of type "void *show(char *,
+ * const type *)". It should write up to OPT_SHOW_LEN bytes into the first
+ * argument; unless it uses the entire OPT_SHOW_LEN bytes it should
+ * nul-terminate that buffer.
+ *
+ * Any number of equivalent short or long options can be listed in @names,
+ * separated by '|'. Short options are a single hyphen followed by a single
+ * character, long options are two hyphens followed by one or more characters.
+ * A space or equals in @names is ignored for parsing, and only used
+ * for printing the usage.
+ *
+ * If the @cb returns non-NULL, opt_parse() will stop parsing, use the
+ * returned string to form an error message for errlog(), free() the
+ * string and return false.