pgrep: Fix off by one error in line check
There is now a warning if your command is longer than 15 characters
and therefore can never match. Except it was checking for more than
16 characters.
Adjusted this and added a test case.
References:
!25
commit 8e8835b2ee
This commit is contained in:
parent
8e8835b2ee
commit
24fd2605c5
2
pgrep.c
2
pgrep.c
@ -888,7 +888,7 @@ static void parse_opts (int argc, char **argv)
|
|||||||
if (argc - optind == 1)
|
if (argc - optind == 1)
|
||||||
{
|
{
|
||||||
opt_pattern = argv[optind];
|
opt_pattern = argv[optind];
|
||||||
if ((!opt_full) && (strlen(opt_pattern) > 16))
|
if ((!opt_full) && (strlen(opt_pattern) > 15))
|
||||||
xwarnx(_("pattern that contains program name longer than 15 characters will result in zero matches\n"
|
xwarnx(_("pattern that contains program name longer than 15 characters will result in zero matches\n"
|
||||||
"Try `%s -f' option for thorough search."),
|
"Try `%s -f' option for thorough search."),
|
||||||
program_invocation_short_name);
|
program_invocation_short_name);
|
||||||
|
@ -118,6 +118,9 @@ set test "pgrep does not match substring with exact"
|
|||||||
spawn $pgrep -x $testproc_trim
|
spawn $pgrep -x $testproc_trim
|
||||||
expect_blank $test
|
expect_blank $test
|
||||||
|
|
||||||
|
set test "pgrep with long match gives warning"
|
||||||
|
spawn $pgrep gnome-session-bi
|
||||||
|
expect_pass "$test" "pattern that contains program name longer than 15 characters will result in zero matches"
|
||||||
|
|
||||||
# Cleanup
|
# Cleanup
|
||||||
kill_testproc
|
kill_testproc
|
||||||
|
Loading…
Reference in New Issue
Block a user