From 44bd12f2fd2ce4ce5f0b4cb23aed660caaf396cc Mon Sep 17 00:00:00 2001 From: Shigio YAMAGUCHI Date: Mon, 23 May 2011 21:39:20 +0200 Subject: lid -F RANGE: fix a bug in handling open-ended ranges * src/lid.c (parse_frequency_arg): lid -F 2.. would mistakenly act like "lid -F 2" and "lid -F ..2" would act like "lid F 1" --- src/lid.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lid.c b/src/lid.c index ed5d788..942a6f8 100644 --- a/src/lid.c +++ b/src/lid.c @@ -1111,6 +1111,8 @@ query_literal_substring (char const *arg, report_func_t report_func) static void parse_frequency_arg (char const *arg) { + int range = 0; + if (strnequ (arg, "..", 2)) frequency_low = 1; else @@ -1118,12 +1120,15 @@ parse_frequency_arg (char const *arg) frequency_low = atoi (arg); while (isdigit (*arg)) arg++; - if (strnequ (arg, "..", 2)) - arg += 2; + } + if (strnequ (arg, "..", 2)) + { + range = 1; + arg += 2; } if (*arg) frequency_high = atoi (arg); - else if (strnequ (&arg[-1], "..", 2)) + else if (range) frequency_high = USHRT_MAX; else frequency_high = frequency_low; -- cgit v1.2.3