[PATCH 6/10] cg-log: move log printing to print_commit_log function Signed-off-by: Jonas Fonseca --- cg-log | 38 ++++++++++++++++++++++---------------- 1 files changed, 22 insertions(+), 16 deletions(-) diff --git a/cg-log b/cg-log --- a/cg-log +++ b/cg-log @@ -160,22 +160,9 @@ else revfmt="git-rev-list" fi -$revls | $revsort | while read time commit parents; do - trap exit SIGPIPE - author= - committer= - tree= - parents=() - [ "$revfmt" = "git-rev-list" ] && commit="$time" - if [ $# -ne 0 ]; then - parent=$(git-cat-file commit $commit | sed -n '2s/parent //p;2Q') - diff_ops= - [ "$parent" ] || diff_ops=--root - [ "$(git-diff-tree -r $diff_ops $commit $parent "$@")" ] || continue - fi - if [ "$user" ]; then - git-cat-file commit $commit | grep -e '^author ' -e '^committer ' | grep -qi "$user" || continue - fi +print_commit_log() { + commit="$1" + git-cat-file commit $commit | \ while read key rest; do trap exit SIGPIPE @@ -225,5 +212,24 @@ $revls | $revsort | while read time comm esac done +} + +$revls | $revsort | while read time commit parents; do + trap exit SIGPIPE + author= + committer= + tree= + parents=() + [ "$revfmt" = "git-rev-list" ] && commit="$time" + if [ $# -ne 0 ]; then + parent=$(git-cat-file commit $commit | sed -n '2s/parent //p;2Q') + diff_ops= + [ "$parent" ] || diff_ops=--root + [ "$(git-diff-tree -r $diff_ops $commit $parent "$@")" ] || continue + fi + if [ "$user" ]; then + git-cat-file commit $commit | grep -e '^author ' -e '^committer ' | grep -qi "$user" || continue + fi + print_commit_log $commit echo done | LESS="R$LESS" ${PAGER:-less} ${PAGER_FLAGS}