mirror of
https://github.com/neovim/neovim.git
synced 2026-08-28 10:01:49 +00:00
Merge #6550 from ZyX-I/pvs-check-comment
This commit is contained in:
@@ -12,20 +12,28 @@ help() {
|
||||
echo 'Usage:'
|
||||
echo ' pvscheck.sh [target-directory [branch]]'
|
||||
echo ' pvscheck.sh [--recheck] [target-directory]'
|
||||
echo ' pvscheck.sh --patch [--only-build]'
|
||||
echo
|
||||
echo ' --recheck: run analysis on a prepared target directory'
|
||||
echo ' --patch: patch sources in the current directory.'
|
||||
echo ' Does not patch already patched files.'
|
||||
echo ' Does not run analysis.'
|
||||
echo
|
||||
echo ' target-directory: Directory where build should occur'
|
||||
echo ' --only-build: Only patch files in ./build directory.'
|
||||
echo
|
||||
echo ' --recheck: run analysis on a prepared target directory.'
|
||||
echo
|
||||
echo ' target-directory: Directory where build should occur.'
|
||||
echo ' Default: ../neovim-pvs'
|
||||
echo
|
||||
echo ' branch: Branch to check'
|
||||
echo ' Default: master'
|
||||
echo ' branch: Branch to check.'
|
||||
echo ' Default: master.'
|
||||
}
|
||||
|
||||
get_pvs_comment() {
|
||||
cat > pvs-comment << EOF
|
||||
// This is an open source non-commercial project. Dear PVS-Studio, please check it.
|
||||
// PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
|
||||
// This is an open source non-commercial project. Dear PVS-Studio, please check
|
||||
// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
@@ -62,19 +70,27 @@ patch_sources() {
|
||||
get_pvs_comment
|
||||
|
||||
local sh_script='
|
||||
cat pvs-comment "$1" > "$1.tmp"
|
||||
mv "$1.tmp" "$1"
|
||||
pvs_comment="$(cat pvs-comment ; echo -n EOS)"
|
||||
filehead="$(head -c $(( ${#pvs_comment} - 3 )) "$1" ; echo -n EOS)"
|
||||
if test "x$filehead" != "x$pvs_comment" ; then
|
||||
cat pvs-comment "$1" > "$1.tmp"
|
||||
mv "$1.tmp" "$1"
|
||||
fi
|
||||
'
|
||||
|
||||
find \
|
||||
src/nvim test/functional/fixtures test/unit/fixtures \
|
||||
-name '*.[ch]' \
|
||||
-exec /bin/sh -c "$sh_script" - '{}' \;
|
||||
if test "x$1" != "x--only-build" ; then
|
||||
find \
|
||||
src/nvim test/functional/fixtures test/unit/fixtures \
|
||||
-name '*.c' \
|
||||
-exec /bin/sh -c "$sh_script" - '{}' \;
|
||||
fi
|
||||
|
||||
find \
|
||||
build/src/nvim/auto build/config \
|
||||
-name '*.[ch]' -not -name '*.test-include.c' \
|
||||
-name '*.c' -not -name '*.test-include.c' \
|
||||
-exec /bin/sh -c "$sh_script" - '{}' \;
|
||||
|
||||
rm pvs-comment
|
||||
}
|
||||
|
||||
run_analysis() {
|
||||
@@ -103,8 +119,6 @@ do_check() {
|
||||
|
||||
create_compile_commands
|
||||
|
||||
patch_sources
|
||||
|
||||
run_analysis
|
||||
}
|
||||
|
||||
@@ -128,6 +142,17 @@ main() {
|
||||
|
||||
set -x
|
||||
|
||||
if test "x$1" = "x--patch" ; then
|
||||
shift
|
||||
if test "x$1" = "x--only-build" ; then
|
||||
shift
|
||||
patch_sources --only-build
|
||||
else
|
||||
patch_sources
|
||||
fi
|
||||
exit $?
|
||||
fi
|
||||
|
||||
local recheck=
|
||||
if test "x$1" = "x--recheck" ; then
|
||||
recheck=1
|
||||
|
||||
Reference in New Issue
Block a user