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:
		
							
								
								
									
										2
									
								
								pgrep.c
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								pgrep.c
									
									
									
									
									
								
							@@ -888,7 +888,7 @@ static void parse_opts (int argc, char **argv)
 | 
			
		||||
	if (argc - optind == 1)
 | 
			
		||||
	{
 | 
			
		||||
		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"
 | 
			
		||||
					 "Try `%s -f' option for thorough search."),
 | 
			
		||||
					 program_invocation_short_name);
 | 
			
		||||
 
 | 
			
		||||
@@ -118,6 +118,9 @@ set test "pgrep does not match substring with exact"
 | 
			
		||||
spawn $pgrep -x $testproc_trim
 | 
			
		||||
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
 | 
			
		||||
kill_testproc
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user