summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShigio YAMAGUCHI <shigio@gnu.org>2011-05-23 21:39:20 +0200
committerJim Meyering <meyering@redhat.com>2011-05-24 07:04:20 +0200
commit44bd12f2fd2ce4ce5f0b4cb23aed660caaf396cc (patch)
treea101c875237d49ef1cc515f11beee89fade0cf1f
parentde2a27a3e9ebc768042af8ade75fb92b966e2424 (diff)
downloadidutils-44bd12f2fd2ce4ce5f0b4cb23aed660caaf396cc.tar.gz
idutils-44bd12f2fd2ce4ce5f0b4cb23aed660caaf396cc.tar.bz2
idutils-44bd12f2fd2ce4ce5f0b4cb23aed660caaf396cc.zip
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"
-rw-r--r--src/lid.c11
1 files 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;