 c9fc748f84
			
		
	
	c9fc748f84
	
	
	
		
			
			People typically say 'grep -e $pattern' because $pattern has a leading dash which would be mistaken as a grep flag. Make sure we pass -e in front of $pattern when we invoke grep. Signed-off-by: Junio C Hamano <junkio@cox.net>
		
			
				
	
	
		
			44 lines
		
	
	
		
			656 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			656 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| #
 | |
| # Copyright (c) Linus Torvalds, 2005
 | |
| #
 | |
| 
 | |
| pattern=
 | |
| flags=()
 | |
| git_flags=()
 | |
| while : ; do
 | |
| 	case "$1" in
 | |
| 	--cached|--deleted|--others|--killed|\
 | |
| 	--ignored|--exclude=*|\
 | |
| 	--exclude-from=*|\--exclude-per-directory=*)
 | |
| 		git_flags=("${git_flags[@]}" "$1")
 | |
| 		;;
 | |
| 	-e)
 | |
| 		pattern="$2"
 | |
| 		shift
 | |
| 		;;
 | |
| 	-A|-B|-C|-D|-d|-f|-m)
 | |
| 		flags=("${flags[@]}" "$1" "$2")
 | |
| 		shift
 | |
| 		;;
 | |
| 	--)
 | |
| 		# The rest are git-ls-files paths (or flags)
 | |
| 		shift
 | |
| 		break
 | |
| 		;;
 | |
| 	-*)
 | |
| 		flags=("${flags[@]}" "$1")
 | |
| 		;;
 | |
| 	*)
 | |
| 		if [ -z "$pattern" ]; then
 | |
| 			pattern="$1"
 | |
| 			shift
 | |
| 		fi
 | |
| 		break
 | |
| 		;;
 | |
| 	esac
 | |
| 	shift
 | |
| done
 | |
| git-ls-files -z "${git_flags[@]}" "$@" |
 | |
| 	xargs -0 grep "${flags[@]}" -e "$pattern"
 |