Commit 63b00556 authored by Douglas Bagnall's avatar Douglas Bagnall Committed by Rusty Russell

opt: add an int decrementing helper function

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: default avatarDouglas Bagnall <douglas@halo.gen.nz>
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent b377324e
...@@ -165,6 +165,12 @@ char *opt_inc_intval(int *i) ...@@ -165,6 +165,12 @@ char *opt_inc_intval(int *i)
return NULL; return NULL;
} }
char *opt_dec_intval(int *i)
{
(*i)--;
return NULL;
}
/* Display version string. */ /* Display version string. */
char *opt_version_and_exit(const char *version) char *opt_version_and_exit(const char *version)
{ {
......
...@@ -450,8 +450,9 @@ void opt_show_ulonglongval_si(char buf[OPT_SHOW_LEN], const unsigned long long * ...@@ -450,8 +450,9 @@ void opt_show_ulonglongval_si(char buf[OPT_SHOW_LEN], const unsigned long long *
/* Increment. */ /* 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). */ /* Display version string to stdout, exit(0). */
char *opt_version_and_exit(const char *version); char *opt_version_and_exit(const char *version);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment