opt_dec_intval decrements an int value, just as opt_inc_intval
increments.
There is not much more to say, other than it allows this
kind of thing, with balanced opposing options:
static int opt_verbosity = 0;
static struct opt_table options[] = {
OPT_WITHOUT_ARG("-q|--quiet", opt_dec_intval,
&opt_verbosity, "print less"),
OPT_WITHOUT_ARG("-v|--verbose", opt_inc_intval,
&opt_verbosity, "print more"),
OPT_ENDTABLE
};
which is an occasionally seen idiom. It allows, e.g., people who like
quiet to use `alias foo='foo -q'`, while letting them get back to
normal and verbose modes with various amounts of '-v's.
Signed-off-by: Douglas Bagnall <douglas@halo.gen.nz>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
+char *opt_dec_intval(int *i)
+{
+ (*i)--;
+ return NULL;
+}
+
/* Display version string. */
char *opt_version_and_exit(const char *version)
{
/* Display version string. */
char *opt_version_and_exit(const char *version)
{
+/* Increment and decrement. */
char *opt_inc_intval(int *i);
char *opt_inc_intval(int *i);
+char *opt_dec_intval(int *i);
/* Display version string to stdout, exit(0). */
char *opt_version_and_exit(const char *version);
/* Display version string to stdout, exit(0). */
char *opt_version_and_exit(const char *version);