swh:1:snp:87728f882295b5ba27035837248a04c5be121c53
Revision 76fd28283f7eeea246a06994edd43ab60e59d853 authored by Junio C Hamano on 30 October 2009, 17:09:06 UTC, committed by Junio C Hamano on 31 October 2009, 21:25:15 UTC
When we introduced the "word diff" mode, we could have done one of three
things:

 * change fn_out_consume() to "this is called every time a line worth of
   diff becomes ready from the lower-level diff routine.  This function
   knows two sets of helpers (one for line-oriented diff, another for word
   diff), and each set has various functions to be called at certain
   places (e.g. hunk header, context, ...).  The function's role is to
   inspect the incoming line, and dispatch appropriate helpers to produce
   either line- or word- oriented diff output."

 * introduce fn_out_consume_word_diff() that is "this is called every time
   a line worth of diff becomes ready from the lower-level diff routine,
   and here is what we do to prepare word oriented diff using that line."
   without touching fn_out_consume() at all.

 * Do neither of the above, and keep fn_out_consume() to "this is called
   every time a line worth of diff becomes ready from the lower-level diff
   routine, and here is what we do to output line oriented diff using that
   line."  but sprinkle a handful of 'are we in word-diff mode?  if so do
   this totally different thing' at random places.

This patch is to at least abstract the details of "this totally different
thing" out from the main codepath, in order to improve readability.

We can later refactor it by introducing fn_out_consume_word_diff(), taking
the second route above, but that is a separate topic.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent a4ca146
History
Tip revision: 6c40894d2466d4e7fddc047a05116aa9d14712ee authored by Junio C Hamano on 30 August 2021, 23:06:22 UTC
The second batch
Tip revision: 6c40894
File Mode Size
Documentation
block-sha1
compat
contrib
git-gui
gitk-git
gitweb
perl
ppc
t
templates
xdiff
.gitattributes -rw-r--r-- 70 bytes
.gitignore -rw-r--r-- 2.5 KB
.mailmap -rw-r--r-- 2.5 KB
COPYING -rw-r--r-- 18.3 KB
GIT-VERSION-GEN -rwxr-xr-x 734 bytes
INSTALL -rw-r--r-- 6.0 KB
Makefile -rw-r--r-- 54.3 KB
README -rw-r--r-- 2.4 KB
RelNotes l--------- 32 bytes
abspath.c -rw-r--r-- 2.8 KB
advice.c -rw-r--r-- 581 bytes
advice.h -rw-r--r-- 197 bytes
alias.c -rw-r--r-- 1.4 KB
alloc.c -rw-r--r-- 1.7 KB
archive-tar.c -rw-r--r-- 6.3 KB
archive-zip.c -rw-r--r-- 7.3 KB
archive.c -rw-r--r-- 9.6 KB
archive.h -rw-r--r-- 927 bytes
attr.c -rw-r--r-- 16.0 KB
attr.h -rw-r--r-- 978 bytes
base85.c -rw-r--r-- 2.9 KB
bisect.c -rw-r--r-- 23.7 KB
bisect.h -rw-r--r-- 900 bytes
blob.c -rw-r--r-- 1.1 KB
blob.h -rw-r--r-- 311 bytes
branch.c -rw-r--r-- 4.9 KB
branch.h -rw-r--r-- 1.0 KB
builtin-add.c -rw-r--r-- 9.2 KB
builtin-annotate.c -rw-r--r-- 446 bytes
builtin-apply.c -rw-r--r-- 90.7 KB
builtin-archive.c -rw-r--r-- 3.1 KB
builtin-bisect--helper.c -rw-r--r-- 617 bytes
builtin-blame.c -rw-r--r-- 62.5 KB
builtin-branch.c -rw-r--r-- 17.1 KB
builtin-bundle.c -rw-r--r-- 1.8 KB
builtin-cat-file.c -rw-r--r-- 5.6 KB
builtin-check-attr.c -rw-r--r-- 3.0 KB
builtin-check-ref-format.c -rw-r--r-- 529 bytes
builtin-checkout-index.c -rw-r--r-- 8.1 KB
builtin-checkout.c -rw-r--r-- 20.8 KB
builtin-clean.c -rw-r--r-- 4.1 KB
builtin-clone.c -rw-r--r-- 16.8 KB
builtin-commit-tree.c -rw-r--r-- 3.6 KB
builtin-commit.c -rw-r--r-- 29.9 KB
builtin-config.c -rw-r--r-- 12.9 KB
builtin-count-objects.c -rw-r--r-- 3.0 KB
builtin-describe.c -rw-r--r-- 9.0 KB
builtin-diff-files.c -rw-r--r-- 1.9 KB
builtin-diff-index.c -rw-r--r-- 1.2 KB
builtin-diff-tree.c -rw-r--r-- 4.2 KB
builtin-diff.c -rw-r--r-- 10.6 KB
builtin-fast-export.c -rw-r--r-- 16.0 KB
builtin-fetch--tool.c -rw-r--r-- 12.7 KB
builtin-fetch-pack.c -rw-r--r-- 19.2 KB
builtin-fetch.c -rw-r--r-- 18.5 KB
builtin-fmt-merge-msg.c -rw-r--r-- 8.7 KB
builtin-for-each-ref.c -rw-r--r-- 22.4 KB
builtin-fsck.c -rw-r--r-- 15.8 KB
builtin-gc.c -rw-r--r-- 6.1 KB
builtin-grep.c -rw-r--r-- 22.8 KB
builtin-help.c -rw-r--r-- 11.1 KB
builtin-init-db.c -rw-r--r-- 13.4 KB
builtin-log.c -rw-r--r-- 34.0 KB
builtin-ls-files.c -rw-r--r-- 14.0 KB
builtin-ls-remote.c -rw-r--r-- 2.4 KB
builtin-ls-tree.c -rw-r--r-- 4.5 KB
builtin-mailinfo.c -rw-r--r-- 22.9 KB
builtin-mailsplit.c -rw-r--r-- 6.3 KB
builtin-merge-base.c -rw-r--r-- 1.4 KB
builtin-merge-file.c -rw-r--r-- 2.5 KB
builtin-merge-ours.c -rw-r--r-- 751 bytes
builtin-merge-recursive.c -rw-r--r-- 1.8 KB
builtin-merge.c -rw-r--r-- 31.6 KB
builtin-mktree.c -rw-r--r-- 5.0 KB
builtin-mv.c -rw-r--r-- 5.9 KB
builtin-name-rev.c -rw-r--r-- 7.1 KB
builtin-pack-objects.c -rw-r--r-- 59.1 KB
builtin-pack-refs.c -rw-r--r-- 589 bytes
builtin-prune-packed.c -rw-r--r-- 1.9 KB
builtin-prune.c -rw-r--r-- 3.8 KB
builtin-push.c -rw-r--r-- 5.5 KB
builtin-read-tree.c -rw-r--r-- 5.5 KB
builtin-receive-pack.c -rw-r--r-- 16.4 KB
builtin-reflog.c -rw-r--r-- 17.6 KB
builtin-remote.c -rw-r--r-- 36.6 KB
builtin-replace.c -rw-r--r-- 3.9 KB
builtin-rerere.c -rw-r--r-- 3.4 KB
builtin-reset.c -rw-r--r-- 8.7 KB
builtin-rev-list.c -rw-r--r-- 9.5 KB
builtin-rev-parse.c -rw-r--r-- 14.4 KB
builtin-revert.c -rw-r--r-- 11.3 KB
builtin-rm.c -rw-r--r-- 7.0 KB
builtin-send-pack.c -rw-r--r-- 13.6 KB
builtin-shortlog.c -rw-r--r-- 8.4 KB
builtin-show-branch.c -rw-r--r-- 22.9 KB
builtin-show-ref.c -rw-r--r-- 6.1 KB
builtin-stripspace.c -rw-r--r-- 1.9 KB
builtin-symbolic-ref.c -rw-r--r-- 1.3 KB
builtin-tag.c -rw-r--r-- 11.1 KB
builtin-tar-tree.c -rw-r--r-- 2.3 KB
builtin-unpack-objects.c -rw-r--r-- 12.9 KB
builtin-update-index.c -rw-r--r-- 19.2 KB
builtin-update-ref.c -rw-r--r-- 1.6 KB
builtin-update-server-info.c -rw-r--r-- 591 bytes
builtin-upload-archive.c -rw-r--r-- 4.1 KB
builtin-verify-pack.c -rw-r--r-- 4.1 KB
builtin-verify-tag.c -rw-r--r-- 2.7 KB
builtin-write-tree.c -rw-r--r-- 1.5 KB
builtin.h -rw-r--r-- 7.4 KB
bundle.c -rw-r--r-- 10.4 KB
bundle.h -rw-r--r-- 627 bytes
cache-tree.c -rw-r--r-- 15.6 KB
cache-tree.h -rw-r--r-- 1.4 KB
cache.h -rw-r--r-- 34.8 KB
check-builtins.sh -rwxr-xr-x 588 bytes
check-racy.c -rw-r--r-- 538 bytes
check_bindir -rwxr-xr-x 369 bytes
color.c -rw-r--r-- 4.5 KB
color.h -rw-r--r-- 1.1 KB
combine-diff.c -rw-r--r-- 27.7 KB
command-list.txt -rw-r--r-- 7.5 KB
commit.c -rw-r--r-- 17.5 KB
commit.h -rw-r--r-- 4.8 KB
config.c -rw-r--r-- 29.3 KB
config.mak.in -rw-r--r-- 1.5 KB
configure.ac -rw-r--r-- 22.0 KB
connect.c -rw-r--r-- 14.0 KB
convert.c -rw-r--r-- 14.1 KB
copy.c -rw-r--r-- 1.6 KB
csum-file.c -rw-r--r-- 2.5 KB
csum-file.h -rw-r--r-- 761 bytes
ctype.c -rw-r--r-- 874 bytes
daemon.c -rw-r--r-- 25.2 KB
date.c -rw-r--r-- 21.7 KB
decorate.c -rw-r--r-- 1.8 KB
decorate.h -rw-r--r-- 400 bytes
delta.h -rw-r--r-- 3.4 KB
diff-delta.c -rw-r--r-- 15.3 KB
diff-lib.c -rw-r--r-- 12.9 KB
diff-no-index.c -rw-r--r-- 6.1 KB
diff.c -rw-r--r-- 92.9 KB
diff.h -rw-r--r-- 8.8 KB
diffcore-break.c -rw-r--r-- 8.6 KB
diffcore-delta.c -rw-r--r-- 5.3 KB
diffcore-order.c -rw-r--r-- 2.2 KB
diffcore-pickaxe.c -rw-r--r-- 3.2 KB
diffcore-rename.c -rw-r--r-- 16.8 KB
diffcore.h -rw-r--r-- 4.0 KB
dir.c -rw-r--r-- 21.7 KB
dir.h -rw-r--r-- 2.5 KB
editor.c -rw-r--r-- 1.2 KB
entry.c -rw-r--r-- 6.0 KB
environment.c -rw-r--r-- 4.7 KB
exec_cmd.c -rw-r--r-- 3.3 KB
exec_cmd.h -rw-r--r-- 487 bytes
fast-import.c -rw-r--r-- 62.7 KB
fetch-pack.h -rw-r--r-- 460 bytes
fixup-builtins -rwxr-xr-x 432 bytes
fsck.c -rw-r--r-- 8.0 KB
fsck.h -rw-r--r-- 1023 bytes
generate-cmdlist.sh -rwxr-xr-x 443 bytes
git-add--interactive.perl -rwxr-xr-x 34.0 KB
git-am.sh -rwxr-xr-x 17.3 KB
git-archimport.perl -rwxr-xr-x 36.0 KB
git-bisect.sh -rwxr-xr-x 9.9 KB
git-compat-util.h -rw-r--r-- 11.3 KB
git-cvsexportcommit.perl -rwxr-xr-x 12.4 KB
git-cvsimport.perl -rwxr-xr-x 27.8 KB
git-cvsserver.perl -rwxr-xr-x 113.7 KB
git-difftool--helper.sh -rwxr-xr-x 1.6 KB
git-difftool.perl -rwxr-xr-x 2.0 KB
git-filter-branch.sh -rwxr-xr-x 11.5 KB
git-instaweb.sh -rwxr-xr-x 10.4 KB
git-lost-found.sh -rwxr-xr-x 554 bytes
git-merge-octopus.sh -rwxr-xr-x 2.0 KB
git-merge-one-file.sh -rwxr-xr-x 3.5 KB
git-merge-resolve.sh -rwxr-xr-x 944 bytes
git-mergetool--lib.sh -rw-r--r-- 8.7 KB
git-mergetool.sh -rwxr-xr-x 6.0 KB
git-parse-remote.sh -rwxr-xr-x 1.9 KB
git-pull.sh -rwxr-xr-x 6.4 KB
git-quiltimport.sh -rwxr-xr-x 3.3 KB
git-rebase--interactive.sh -rwxr-xr-x 18.4 KB
git-rebase.sh -rwxr-xr-x 13.5 KB
git-relink.perl -rwxr-xr-x 4.0 KB
git-repack.sh -rwxr-xr-x 4.4 KB
git-request-pull.sh -rwxr-xr-x 1.6 KB
git-send-email.perl -rwxr-xr-x 32.6 KB
git-sh-setup.sh -rwxr-xr-x 4.2 KB
git-stash.sh -rwxr-xr-x 8.5 KB
git-submodule.sh -rwxr-xr-x 16.8 KB
git-svn.perl -rwxr-xr-x 159.7 KB
git-web--browse.sh -rwxr-xr-x 3.9 KB
git.c -rw-r--r-- 14.2 KB
git.spec.in -rw-r--r-- 9.6 KB
graph.c -rw-r--r-- 34.6 KB
graph.h -rw-r--r-- 2.6 KB
grep.c -rw-r--r-- 17.4 KB
grep.h -rw-r--r-- 2.0 KB
hash-object.c -rw-r--r-- 3.6 KB
hash.c -rw-r--r-- 2.5 KB
hash.h -rw-r--r-- 1.1 KB
help.c -rw-r--r-- 8.3 KB
help.h -rw-r--r-- 751 bytes
http-fetch.c -rw-r--r-- 2.1 KB
http-push.c -rw-r--r-- 53.5 KB
http-walker.c -rw-r--r-- 13.7 KB
http.c -rw-r--r-- 30.0 KB
http.h -rw-r--r-- 5.3 KB
ident.c -rw-r--r-- 5.9 KB
imap-send.c -rw-r--r-- 33.1 KB
index-pack.c -rw-r--r-- 26.7 KB
levenshtein.c -rw-r--r-- 2.5 KB
levenshtein.h -rw-r--r-- 201 bytes
list-objects.c -rw-r--r-- 4.6 KB
list-objects.h -rw-r--r-- 422 bytes
ll-merge.c -rw-r--r-- 8.8 KB
ll-merge.h -rw-r--r-- 304 bytes
lockfile.c -rw-r--r-- 6.2 KB
log-tree.c -rw-r--r-- 13.9 KB
log-tree.h -rw-r--r-- 783 bytes
mailmap.c -rw-r--r-- 6.6 KB
mailmap.h -rw-r--r-- 350 bytes
match-trees.c -rw-r--r-- 7.1 KB
merge-file.c -rw-r--r-- 2.4 KB
merge-index.c -rw-r--r-- 2.2 KB
merge-recursive.c -rw-r--r-- 38.0 KB
merge-recursive.h -rw-r--r-- 1.2 KB
merge-tree.c -rw-r--r-- 8.1 KB
mktag.c -rw-r--r-- 5.2 KB
name-hash.c -rw-r--r-- 2.5 KB
object.c -rw-r--r-- 6.1 KB
object.h -rw-r--r-- 2.7 KB
pack-check.c -rw-r--r-- 4.5 KB
pack-redundant.c -rw-r--r-- 14.9 KB
pack-refs.c -rw-r--r-- 2.8 KB
pack-refs.h -rw-r--r-- 465 bytes
pack-revindex.c -rw-r--r-- 4.0 KB
pack-revindex.h -rw-r--r-- 223 bytes
pack-write.c -rw-r--r-- 7.3 KB
pack.h -rw-r--r-- 2.2 KB
pager.c -rw-r--r-- 1.9 KB
parse-options.c -rw-r--r-- 15.3 KB
parse-options.h -rw-r--r-- 6.9 KB
patch-delta.c -rw-r--r-- 2.2 KB
patch-id.c -rw-r--r-- 1.6 KB
patch-ids.c -rw-r--r-- 2.5 KB
patch-ids.h -rw-r--r-- 490 bytes
path.c -rw-r--r-- 12.6 KB
pkt-line.c -rw-r--r-- 2.4 KB
pkt-line.h -rw-r--r-- 348 bytes
preload-index.c -rw-r--r-- 2.3 KB
pretty.c -rw-r--r-- 23.6 KB
progress.c -rw-r--r-- 6.3 KB
progress.h -rw-r--r-- 504 bytes
quote.c -rw-r--r-- 10.1 KB
quote.h -rw-r--r-- 2.6 KB
reachable.c -rw-r--r-- 5.6 KB
reachable.h -rw-r--r-- 127 bytes
read-cache.c -rw-r--r-- 45.3 KB
reflog-walk.c -rw-r--r-- 6.7 KB
reflog-walk.h -rw-r--r-- 416 bytes
refs.c -rw-r--r-- 42.1 KB
refs.h -rw-r--r-- 3.7 KB
remote-curl.c -rw-r--r-- 2.9 KB
remote.c -rw-r--r-- 37.5 KB
remote.h -rw-r--r-- 3.8 KB
replace_object.c -rw-r--r-- 2.6 KB
rerere.c -rw-r--r-- 9.3 KB
rerere.h -rw-r--r-- 259 bytes
revision.c -rw-r--r-- 48.8 KB
revision.h -rw-r--r-- 4.2 KB
run-command.c -rw-r--r-- 8.5 KB
run-command.h -rw-r--r-- 2.6 KB
send-pack.h -rw-r--r-- 355 bytes
server-info.c -rw-r--r-- 5.2 KB
setup.c -rw-r--r-- 12.7 KB
sha1-lookup.c -rw-r--r-- 7.8 KB
sha1-lookup.h -rw-r--r-- 403 bytes
sha1_file.c -rw-r--r-- 65.0 KB
sha1_name.c -rw-r--r-- 19.6 KB
shallow.c -rw-r--r-- 2.3 KB
shell.c -rw-r--r-- 2.2 KB
shortlog.h -rw-r--r-- 450 bytes
show-index.c -rw-r--r-- 2.1 KB
sideband.c -rw-r--r-- 3.3 KB
sideband.h -rw-r--r-- 326 bytes
sigchain.c -rw-r--r-- 969 bytes
sigchain.h -rw-r--r-- 215 bytes
strbuf.c -rw-r--r-- 7.7 KB
strbuf.h -rw-r--r-- 4.9 KB
string-list.c -rw-r--r-- 4.2 KB
string-list.h -rw-r--r-- 1.7 KB
symlinks.c -rw-r--r-- 8.6 KB
tag.c -rw-r--r-- 2.7 KB
tag.h -rw-r--r-- 471 bytes
tar.h -rw-r--r-- 644 bytes
test-chmtime.c -rw-r--r-- 2.6 KB
test-ctype.c -rw-r--r-- 1.4 KB
test-date.c -rw-r--r-- 1.3 KB
test-delta.c -rw-r--r-- 1.8 KB
test-dump-cache-tree.c -rw-r--r-- 1.5 KB
test-genrandom.c -rw-r--r-- 722 bytes
test-match-trees.c -rw-r--r-- 588 bytes
test-parse-options.c -rw-r--r-- 3.0 KB
test-path-utils.c -rw-r--r-- 872 bytes
test-sha1.c -rw-r--r-- 816 bytes
test-sha1.sh -rwxr-xr-x 1.9 KB
test-sigchain.c -rw-r--r-- 344 bytes
thread-utils.c -rw-r--r-- 965 bytes
thread-utils.h -rw-r--r-- 109 bytes
trace.c -rw-r--r-- 3.5 KB
transport-helper.c -rw-r--r-- 3.8 KB
transport.c -rw-r--r-- 24.8 KB
transport.h -rw-r--r-- 2.7 KB
tree-diff.c -rw-r--r-- 11.9 KB
tree-walk.c -rw-r--r-- 5.3 KB
tree-walk.h -rw-r--r-- 1.7 KB
tree.c -rw-r--r-- 7.0 KB
tree.h -rw-r--r-- 883 bytes
unimplemented.sh -rw-r--r-- 100 bytes
unpack-file.c -rw-r--r-- 841 bytes
unpack-trees.c -rw-r--r-- 24.8 KB
unpack-trees.h -rw-r--r-- 1.4 KB
upload-pack.c -rw-r--r-- 18.3 KB
usage.c -rw-r--r-- 2.3 KB
userdiff.c -rw-r--r-- 6.0 KB
userdiff.h -rw-r--r-- 477 bytes
utf8.c -rw-r--r-- 11.6 KB
utf8.h -rw-r--r-- 580 bytes
var.c -rw-r--r-- 1.4 KB
walker.c -rw-r--r-- 7.2 KB
walker.h -rw-r--r-- 1.1 KB
wrapper.c -rw-r--r-- 6.1 KB
write_or_die.c -rw-r--r-- 2.0 KB
ws.c -rw-r--r-- 7.9 KB
wt-status.c -rw-r--r-- 15.5 KB
wt-status.h -rw-r--r-- 1.1 KB
xdiff-interface.c -rw-r--r-- 7.9 KB
xdiff-interface.h -rw-r--r-- 1.1 KB

README

back to top