grep: fix "--quiet" overwriting current output
When grep is called with the --quiet option, the pager is initialized
despite not being used.  When the pager is "less", anything output by
previous commands and not ended with a newline is overwritten:
    $ echo -n aaa; echo bbb
    aaabbb
    $ echo -n aaa; git grep -q foo; echo bbb
    bbb
This can be worked around, for example, by making sure STDOUT is not a
TTY or more directly by setting git's pager to "cat":
    $ echo -n aaa; git grep -q foo > /dev/null; echo bbb
    aaabbb
    $ echo -n aaa; PAGER=cat git grep -q foo; echo bbb
    aaabbb
But prevent calling the pager in the first place, which would also
save an unnecessary fork().
Signed-off-by: Wilhelm Schuermann <wimschuermann@googlemail.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
			
			
				maint
			
			
		
							parent
							
								
									282616c72d
								
							
						
					
					
						commit
						c2048f0b39
					
				|  | @ -887,7 +887,7 @@ int cmd_grep(int argc, const char **argv, const char *prefix) | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if (!show_in_pager) | 	if (!show_in_pager && !opt.status_only) | ||||||
| 		setup_pager(); | 		setup_pager(); | ||||||
|  |  | ||||||
| 	if (!use_index && (untracked || cached)) | 	if (!use_index && (untracked || cached)) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Wilhelm Schuermann
						Wilhelm Schuermann