mirror of
https://github.com/git/git
synced 2024-08-27 19:49:21 +00:00
![]() Thell Fowler noticed that various "ignore whitespace" options to git diff do not work well on an incomplete line. The loop control of the function responsible for these bugs was extremely difficult to follow. This patch restructures the loops for three variants of "ignore whitespace" logic. The basic idea of the re-written logic is: - A loop runs while the characters from both strings we are looking at match. We declare unmatch immediately when we find something that does not match and return false from the function. We break out of the loop if we ran out of either side of the string. The way we skip spaces inside this loop varies depending on the style of ignoring whitespaces. - After the above loop breaks, we know that the parts of the strings we inspected so far match, ignoring the whitespaces. The lines can match only if the remainder consists of nothing but whitespaces. This part of the logic is shared across all three styles. The new code is more obvious and should be much easier to follow. Tested-by: Thell Fowler <git@tbfowler.name> Signed-off-by: Junio C Hamano <gitster@pobox.com> |
||
---|---|---|
.. | ||
xdiff.h | ||
xdiffi.c | ||
xdiffi.h | ||
xemit.c | ||
xemit.h | ||
xinclude.h | ||
xmacros.h | ||
xmerge.c | ||
xprepare.c | ||
xprepare.h | ||
xtypes.h | ||
xutils.c | ||
xutils.h |