This patch series retrofits git grep with functionality similar to the diff option -p, which shows the function definitions for diff hunks. git grep is enhanced to show them as context lines before matches, if called with -p. It can be combined with the existing context options (-A, -B, -C). The first patch is a cleanup. The userdiff API is enhanced to allow freeing of allocated memory, before it is used outside of git diff code, later in the series: [PATCH 1/6] userdiff: add xdiff_clear_find_func() The next three patches massage the context handling code to make it easier to extend: [PATCH 2/6] grep: move context hunk mark handling into show_line() [PATCH 3/6] grep: print context hunk marks between files [PATCH 4/6] grep: handle pre context lines on demand Finally, handling for the option -p is added and then enhanced to support userdiff configuration settings: [PATCH 5/6] grep: add option -p/--show-function [PATCH 6/6] grep -p: support user defined regular expressions Documentation/git-grep.txt | 8 ++ builtin-grep.c | 22 ++++++- diff.c | 1 + grep.c | 154 ++++++++++++++++++++++++++++++++------------ grep.h | 4 + t/t7002-grep.sh | 71 ++++++++++++++++++++- xdiff-interface.c | 15 ++++ xdiff-interface.h | 1 + 8 files changed, 232 insertions(+), 44 deletions(-) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html