2019-02-16 00:47:33 +08:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
PATCH_DIR=doc/devel/variadic_debug
|
|
|
|
|
|
|
|
SPATCH=${SPATCH:-spatch}
|
|
|
|
SPATCH_OPTS=( --macro-file-builtins "$PATCH_DIR/macros.h" )
|
|
|
|
#SPATCH_OPTS+=( --timeout 300 )
|
|
|
|
|
|
|
|
SED_TRANSFORMATIONS=()
|
|
|
|
|
|
|
|
# split out multipart strings back to original form (one per line)
|
|
|
|
SED_TRANSFORMATIONS+=( -e 's/^\(+\s*\)\(.*"\) \(".*\)"$/\1\2\n+\1\3/' )
|
|
|
|
|
|
|
|
# re-add whitespace around parentheses
|
2019-03-21 18:29:03 +08:00
|
|
|
SED_TRANSFORMATIONS+=( -e 's/^\(+.*Debug[0-3]\?(\)\s*/\1 /' )
|
2019-02-16 00:47:33 +08:00
|
|
|
SED_TRANSFORMATIONS+=( -e 's/^\(+.*[^ ]\));$/\1 );/' )
|
|
|
|
|
2019-03-21 18:29:03 +08:00
|
|
|
# strip trailing whitespace copied from source on affected lines
|
|
|
|
SED_TRANSFORMATIONS+=( -e 's/^\(+.*\)\s\+$/\1/' )
|
|
|
|
|
2019-02-16 00:47:33 +08:00
|
|
|
# fix whitespace errors in source we touch
|
|
|
|
SED_TRANSFORMATIONS+=( -e 's/^\(+.*\) \t/\1\t\t/' )
|
|
|
|
SED_TRANSFORMATIONS+=( -e 's/^\(+\t*\) \{1,3\}\t/\1\t/' )
|
|
|
|
|
|
|
|
normalise() {
|
|
|
|
patch="$1"
|
|
|
|
shift
|
|
|
|
|
|
|
|
# iterate until we've reached fixpoint
|
2019-03-21 18:29:03 +08:00
|
|
|
while ! cmp "$patch" "${patch}.new" 2>/dev/null; do
|
2019-02-16 00:47:33 +08:00
|
|
|
if [ -e "${patch}.new" ]; then
|
|
|
|
mv -- "${patch}.new" "$patch"
|
|
|
|
fi
|
|
|
|
sed "${SED_TRANSFORMATIONS[@]}" -- "$patch" >"${patch}.new"
|
|
|
|
done
|
|
|
|
rediff "$patch" >"${patch}.new"
|
|
|
|
mv -- "${patch}.new" "$patch"
|
|
|
|
}
|
|
|
|
|
|
|
|
git add "$PATCH_DIR"
|
|
|
|
git commit -m "ITS#8731 Add the documentation and scripts"
|
|
|
|
|
|
|
|
git am "$PATCH_DIR/00-fixes.patch"
|
|
|
|
git am "$PATCH_DIR/01-logging.patch"
|
|
|
|
git am "$PATCH_DIR/02-manual.patch"
|
|
|
|
|
|
|
|
$SPATCH "${SPATCH_OPTS[@]}" -sp_file "$PATCH_DIR/03-libldap_Debug.cocci" \
|
|
|
|
-dir libraries/libldap \
|
|
|
|
>"$PATCH_DIR/03-libldap_Debug.patch"
|
|
|
|
normalise "$PATCH_DIR/03-libldap_Debug.patch"
|
|
|
|
git apply --index --directory libraries/libldap "$PATCH_DIR/03-libldap_Debug.patch"
|
|
|
|
git commit -m "ITS#8731 Apply $PATCH_DIR/03-libldap_Debug.cocci"
|
|
|
|
|
|
|
|
$SPATCH "${SPATCH_OPTS[@]}" -sp_file "$PATCH_DIR/04-variadic.cocci" \
|
|
|
|
-dir . \
|
|
|
|
>"$PATCH_DIR/04-variadic.patch"
|
|
|
|
normalise "$PATCH_DIR/04-variadic.patch"
|
|
|
|
git apply --index "$PATCH_DIR/04-variadic.patch"
|
|
|
|
git commit -m "ITS#8731 Apply $PATCH_DIR/04-variadic.cocci"
|
|
|
|
|
|
|
|
git am "$PATCH_DIR/05-back-sql.patch"
|
|
|
|
git am "$PATCH_DIR/06-nssov.patch"
|
|
|
|
|
|
|
|
$SPATCH "${SPATCH_OPTS[@]}" -sp_file "$PATCH_DIR/07-shortcut.cocci" \
|
|
|
|
-dir . \
|
|
|
|
>"$PATCH_DIR/07-shortcut.patch"
|
|
|
|
normalise "$PATCH_DIR/07-shortcut.patch"
|
|
|
|
git apply --index "$PATCH_DIR/07-shortcut.patch"
|
|
|
|
git commit -m "ITS#8731 Apply $PATCH_DIR/07-shortcut.cocci"
|
|
|
|
|
|
|
|
git am "$PATCH_DIR/08-snprintf-manual.patch"
|