diff options
author | David Lamparter <equinox@opensourcerouting.org> | 2015-03-03 08:56:48 +0100 |
---|---|---|
committer | David Lamparter <equinox@opensourcerouting.org> | 2015-04-21 10:18:41 +0200 |
commit | 81a4e85442e2011a47bbb25e8301dc40ec4ed9b6 (patch) | |
tree | b98cf9014b0c6cd0abfddfc628968b8a14a75540 /lib | |
parent | c7879ea62fb38999a86ca9cbabbdeca18785e135 (diff) | |
download | quagga-81a4e85442e2011a47bbb25e8301dc40ec4ed9b6.tar.bz2 quagga-81a4e85442e2011a47bbb25e8301dc40ec4ed9b6.tar.xz |
lib: silence type range warning in macro
While splitting up the CLI input macro is a bit annoying, this seems to
be the least annoying way to get rid of the "< 0" comparison warning for
unsigned long.
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/keychain.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/keychain.c b/lib/keychain.c index 762c4629..8a2fdd2e 100644 --- a/lib/keychain.c +++ b/lib/keychain.c @@ -381,18 +381,22 @@ key_str2time (const char *time_str, const char *day_str, const char *month_str, NULL }; -#define GET_LONG_RANGE(V,STR,MIN,MAX) \ +#define _GET_LONG_RANGE(V,STR,MMCOND) \ { \ unsigned long tmpl; \ char *endptr = NULL; \ tmpl = strtoul ((STR), &endptr, 10); \ if (*endptr != '\0' || tmpl == ULONG_MAX) \ return -1; \ - if ( tmpl < (MIN) || tmpl > (MAX)) \ + if (MMCOND) \ return -1; \ (V) = tmpl; \ } - +#define GET_LONG_RANGE(V,STR,MIN,MAX) \ + _GET_LONG_RANGE(V,STR,tmpl < (MIN) || tmpl > (MAX)) +#define GET_LONG_RANGE0(V,STR,MAX) \ + _GET_LONG_RANGE(V,STR,tmpl > (MAX)) + /* Check hour field of time_str. */ colon = strchr (time_str, ':'); if (colon == NULL) @@ -400,7 +404,7 @@ key_str2time (const char *time_str, const char *day_str, const char *month_str, *colon = '\0'; /* Hour must be between 0 and 23. */ - GET_LONG_RANGE (hour, time_str, 0, 23); + GET_LONG_RANGE0 (hour, time_str, 23); /* Check min field of time_str. */ time_str = colon + 1; @@ -410,7 +414,7 @@ key_str2time (const char *time_str, const char *day_str, const char *month_str, *colon = '\0'; /* Min must be between 0 and 59. */ - GET_LONG_RANGE (min, time_str, 0, 59); + GET_LONG_RANGE0 (min, time_str, 59); /* Check sec field of time_str. */ time_str = colon + 1; @@ -418,7 +422,7 @@ key_str2time (const char *time_str, const char *day_str, const char *month_str, return -1; /* Sec must be between 0 and 59. */ - GET_LONG_RANGE (sec, time_str, 0, 59); + GET_LONG_RANGE0 (sec, time_str, 59); /* Check day_str. Day must be <1-31>. */ GET_LONG_RANGE (day, day_str, 1, 31); |