diff options
author | Shigio YAMAGUCHI <shigio@gnu.org> | 2011-05-23 21:39:20 +0200 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2011-05-24 07:04:20 +0200 |
commit | 44bd12f2fd2ce4ce5f0b4cb23aed660caaf396cc (patch) | |
tree | a101c875237d49ef1cc515f11beee89fade0cf1f /src | |
parent | de2a27a3e9ebc768042af8ade75fb92b966e2424 (diff) | |
download | idutils-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"
Diffstat (limited to 'src')
-rw-r--r-- | src/lid.c | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -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; |