parse-options: make some arguments optional, add callbacks.
commitffe659f94d793375fca97dd296422fc10c155016
authorPierre Habouzit <madcoder@debian.org>
Sun, 14 Oct 2007 23:45:45 +0000 (15 01:45 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 30 Oct 2007 04:03:30 +0000 (29 21:03 -0700)
tree8cd20e4bf38a001e60fbc1356dfa9d2ede346ea9
parentf389c808b6774fb0a1fc54cf2563a7b3038dd1d4
parse-options: make some arguments optional, add callbacks.

* add the possibility to use callbacks to parse some options, this can
  help implementing new options kinds with great flexibility. struct option
  gains a callback pointer and a `defval' where callbacks user can put
  either integers or pointers. callbacks also can use the `value' pointer
  for anything, preferably to the pointer to the final storage for the value
  though.

* add a `flag' member to struct option to make explicit that this option may
  have an optional argument. The semantics depends on the option type. For
  INTEGERS, it means that if the switch is not used in its
  --long-form=<value> form, and that there is no token after it or that the
  token does not starts with a digit, then it's assumed that the switch has
  no argument. For STRING or CALLBACK it works the same, except that the
  condition is that the next atom starts with a dash. This is needed to
  implement backward compatible behaviour with existing ways to parse the
  command line. Its use for new options is discouraged.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
parse-options.c
parse-options.h