summaryrefslogtreecommitdiff
path: root/parse-options.h
diff options
context:
space:
mode:
authorPierre Habouzit <madcoder@debian.org>2007-11-05 12:03:22 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-11-06 02:47:01 (GMT)
commit9b3beb581216fc89972e926574b9d3b243d5e4f4 (patch)
tree704ee39e86dca6a644b4ea7773f13197d706be5c /parse-options.h
parent0aab4abdd4e6461d61ce6cf1392e1d31c4d1573a (diff)
downloadgit-9b3beb581216fc89972e926574b9d3b243d5e4f4.zip
git-9b3beb581216fc89972e926574b9d3b243d5e4f4.tar.gz
git-9b3beb581216fc89972e926574b9d3b243d5e4f4.tar.bz2
Some better parse-options documentation.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'parse-options.h')
-rw-r--r--parse-options.h37
1 files changed, 35 insertions, 2 deletions
diff --git a/parse-options.h b/parse-options.h
index 3a470e5..65bce6e 100644
--- a/parse-options.h
+++ b/parse-options.h
@@ -22,6 +22,41 @@ enum parse_opt_option_flags {
struct option;
typedef int parse_opt_cb(const struct option *, const char *arg, int unset);
+/*
+ * `type`::
+ * holds the type of the option, you must have an OPTION_END last in your
+ * array.
+ *
+ * `short_name`::
+ * the character to use as a short option name, '\0' if none.
+ *
+ * `long_name`::
+ * the long option name, without the leading dashes, NULL if none.
+ *
+ * `value`::
+ * stores pointers to the values to be filled.
+ *
+ * `argh`::
+ * token to explain the kind of argument this option wants. Keep it
+ * homogenous across the repository.
+ *
+ * `help`::
+ * the short help associated to what the option does.
+ * Must never be NULL (except for OPTION_END).
+ * OPTION_GROUP uses this pointer to store the group header.
+ *
+ * `flags`::
+ * mask of parse_opt_option_flags.
+ * PARSE_OPT_OPTARG: says that the argument is optionnal (not for BOOLEANs)
+ * PARSE_OPT_NOARG: says that this option takes no argument, for CALLBACKs
+ *
+ * `callback`::
+ * pointer to the callback to use for OPTION_CALLBACK.
+ *
+ * `defval`::
+ * default value to fill (*->value) with for PARSE_OPT_OPTARG.
+ * CALLBACKS can use it like they want.
+ */
struct option {
enum parse_opt_type type;
int short_name;
@@ -32,8 +67,6 @@ struct option {
int flags;
parse_opt_cb *callback;
- /* holds default value for PARSE_OPT_OPTARG,
- though callbacks can use it like they want */
intptr_t defval;
};