[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug-idutils] [Bug report] The range specification of the -F option of l
From: |
Shigio YAMAGUCHI |
Subject: |
[bug-idutils] [Bug report] The range specification of the -F option of lid(1) is not correctly interpreted. |
Date: |
Tue, 17 May 2011 13:32:41 +0900 |
Hello,
I believe I have found a bug of lid command.
The range specification of the -F option of lid(1) is not correctly interpreted.
1. Situation of the trouble
---------------------------
% cat frequency.txt
one
two two
three three three
four four four four
% mkid frequency.txt
% lid -F '2..'
two frequency.txt <= It seems 2. It should be >= 2
% lid -F '..2'
one frequency.txt <= It seems 1. It should be <= 2
2. Correction of the trouble
----------------------------
o Fixed version
% lid -F '2..'
four frequency.txt
three frequency.txt
two frequency.txt
% lid -F '..2'
one frequency.txt
two frequency.txt
Here is the patch.
Thank you for your great tool.
*** lid.c.org Tue May 17 12:54:08 2011
--- lid.c Tue May 17 12:51:28 2011
***************
*** 1087,1092 ****
--- 1087,1094 ----
void
parse_frequency_arg (char const *arg)
{
+ int range = 0;
+
if (strnequ (arg, "..", 2))
frequency_low = 1;
else
***************
*** 1094,1105 ****
frequency_low = atoi (arg);
while (isdigit (*arg))
arg++;
! if (strnequ (arg, "..", 2))
! arg += 2;
}
if (*arg)
frequency_high = atoi (arg);
! else if (strnequ (&arg[-1], "..", 2))
frequency_high = USHRT_MAX;
else
frequency_high = frequency_low;
--- 1096,1110 ----
frequency_low = atoi (arg);
while (isdigit (*arg))
arg++;
! }
! if (strnequ (arg, "..", 2))
! {
! range = 1;
! arg += 2;
}
if (*arg)
frequency_high = atoi (arg);
! else if (range)
frequency_high = USHRT_MAX;
else
frequency_high = frequency_low;
--
Shigio YAMAGUCHI <address@hidden>
PGP fingerprint: D1CB 0B89 B346 4AB6 5663 C4B6 3CA5 BBB3 57BE DDA3
- [bug-idutils] [Bug report] The range specification of the -F option of lid(1) is not correctly interpreted.,
Shigio YAMAGUCHI <=