#!/bin/sh
#
# git grep through a tree, list the hits, then set up vi to go through the
# files we found, searching for the expression.
#
# usage: gg [grep_options] search_expression
#

nondash()
{
    while [ ! -z "$*" ]; do
	if [ "${1#-}" = "$1" ]; then
	    echo "$1"
	    return
	fi
	shift
    done
}

#
# the "cat" here serves two purposes:
# 1) keep "git grep" from truncating long lines
# 2) keep "git grep" from using a pager, which would result in waiting twice
#    for user input at the end, which is confusing
#
git grep "$@" | cat
echo -n '[Enter to vi] '
read x
${GG_EDITOR:-vi} -c /"`nondash \"$@\"`" `git grep -l "$@"`
