This introduces no functional changes, but allows the lib/ code to be
used as-is in other programs without patching these files directly,
instead those programs can define a few variables to inject their
custom code into this code.
With these changes the git project can use this code without any
modifications to the upstream code. The corresponding git mailing list
thread discussing that is at "[PATCH/RFC 0/3] Use
sha1collisiondetection as a submodule"[1]. The defines used by git in
that patch are:
-DSHA1DC_NO_STANDARD_INCLUDES \
-DSHA1DC_INIT_SAFE_HASH_DEFAULT=0 \
-DSHA1DC_CUSTOM_INCLUDE_SHA1_C="\"cache.h\"" \
-DSHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_C="\"../sha1dc_git.c\"" \
-DSHA1DC_CUSTOM_TRAILING_INCLUDE_SHA1_H="\"../sha1dc_git.h\"" \
-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C="\"git-compat-util.h\""
I.e. all of these except SHA1DC_CUSTOM_TRAILING_INCLUDE_UBC_CHECK_[CH]
are used by git. I've merely added those for completeness since other
projects doing similar customization might want to use them.
The monkeypatches the git project was using previously were:
- https://github.com/git/git/commit/45a574eec8
- https://github.com/git/git/commit/c0c20060af
- https://github.com/git/git/commit/8325e43b82
The entire paragraph being added to the README file was authored by
Dan Shumow. See
https://github.com/cr-marcstevens/sha1collisiondetection/pull/31.
1. <20170517113824.31700-1-avarab@gmail.com>
(https://public-inbox.org/git/20170517113824.31700-1-avarab@gmail.com/)
Some linters (e.g. Syntastic) complain about trailing whitespace and mixed
indentation (mixing tabs and spaces). To address this, appropriate warnings
where mostly fixed (except parts of ubc_check.c which had some special
alignment for some OR conditions).