diff --git a/scripts/vim-patch.sh b/scripts/vim-patch.sh index ce2eebbd69..7f5d7f8628 100755 --- a/scripts/vim-patch.sh +++ b/scripts/vim-patch.sh @@ -917,6 +917,7 @@ is_na_patch() { local NA_REGEXP="$NVIM_SOURCE_DIR/scripts/vim_na_regexp.txt" local NA_FILELIST="$NVIM_SOURCE_DIR/scripts/vim_na_files.txt" local NA_HUNKS_C="$NVIM_SOURCE_DIR/scripts/vim_na_hunks_c.txt" + local NA_HUNKS_H="$NVIM_SOURCE_DIR/scripts/vim_na_hunks_h.txt" local NA_HUNKS_VIM="$NVIM_SOURCE_DIR/scripts/vim_na_hunks_vim.txt" local FILES_REMAINING HUNKS HUNK_NUM_FINAL @@ -955,8 +956,12 @@ is_na_patch() { '-I^\s*INIT\(= .+"E[0-9]+: .*:def ' \ '-I^\s*INIT\(= .+"E[0-9]+: .*enddef"' \ '-I^\s*INIT\(= .+"E[0-9]+: .*[vV]im9' \ - "$patch" -- "$file") - test -n "${HUNKS}" && return 1 + "$patch" -- "${file}" | + grep '^@@ .* @@') + if test -n "$HUNKS"; then + HUNK_NUM_FINAL=$(echo "$HUNKS" | sed 's/^@@ .* @@ \?//' | grep -cv -f "$NA_HUNKS_H") + test "$HUNK_NUM_FINAL" -ne 0 && return 1 + fi ;; *.c) HUNKS=$(git -C "${VIM_SOURCE_DIR}" diff-tree --no-commit-id -r -b -U0 \ diff --git a/scripts/vim_na_hunks_h.txt b/scripts/vim_na_hunks_h.txt new file mode 100644 index 0000000000..57310a1f2a --- /dev/null +++ b/scripts/vim_na_hunks_h.txt @@ -0,0 +1 @@ +^struct type_S {