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:
Craig Small 2016-09-11 10:11:25 +10:00
parent 8e8835b2ee
commit 24fd2605c5
2 changed files with 4 additions and 1 deletions

View File

@ -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);

View File

@ -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