aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/autoload/health/provider.vim25
-rw-r--r--runtime/autoload/provider/node.vim9
-rwxr-xr-xscripts/vim-patch.sh21
-rw-r--r--src/.asan-blacklist4
4 files changed, 38 insertions, 21 deletions
diff --git a/runtime/autoload/health/provider.vim b/runtime/autoload/health/provider.vim
index 205a23dcbd..39e592c471 100644
--- a/runtime/autoload/health/provider.vim
+++ b/runtime/autoload/health/provider.vim
@@ -253,14 +253,18 @@ function! s:check_python(version) abort
if !empty(pyenv)
if empty(pyenv_root)
- call health#report_warn(
- \ 'pyenv was found, but $PYENV_ROOT is not set.',
- \ ['Did you follow the final install instructions?',
- \ 'If you use a shell "framework" like Prezto or Oh My Zsh, try without.',
- \ 'Try a different shell (bash).']
+ call health#report_info(
+ \ 'pyenv was found, but $PYENV_ROOT is not set. `pyenv root` will be used.'
+ \ .' If you run into problems, try setting $PYENV_ROOT explicitly.'
\ )
+ let pyenv_root = s:trim(s:system([pyenv, 'root']))
+ endif
+
+ if !isdirectory(pyenv_root)
+ call health#report_error('Invalid pyenv root: '.pyenv_root)
else
- call health#report_ok(printf('pyenv found: "%s"', pyenv))
+ call health#report_info(printf('pyenv: %s', pyenv))
+ call health#report_info(printf('pyenv root: %s', pyenv_root))
endif
endif
@@ -451,10 +455,11 @@ function! s:check_ruby() abort
let host = provider#ruby#Detect()
if empty(host)
- call health#report_warn('Missing "neovim" gem.',
- \ ['Run in shell: gem install neovim',
- \ 'Is the gem bin directory in $PATH? Check `gem environment`.',
- \ 'If you are using rvm/rbenv/chruby, try "rehashing".'])
+ call health#report_warn("`neovim-ruby-host` not found.",
+ \ ['Run `gem install neovim` to ensure the neovim RubyGem is installed.',
+ \ 'Run `gem environment` to ensure the gem bin directory is in $PATH.',
+ \ 'If you are using rvm/rbenv/chruby, try "rehashing".',
+ \ 'See :help g:ruby_host_prog for non-standard gem installations.'])
return
endif
call health#report_info('Host: '. host)
diff --git a/runtime/autoload/provider/node.vim b/runtime/autoload/provider/node.vim
index f75d2632be..4e737fb51c 100644
--- a/runtime/autoload/provider/node.vim
+++ b/runtime/autoload/provider/node.vim
@@ -6,15 +6,18 @@ let g:loaded_node_provider = 1
let s:job_opts = {'rpc': v:true, 'on_stderr': function('provider#stderr_collector')}
function! s:is_minimum_version(version, min_major, min_minor) abort
- let nodejs_version = a:version
- if !a:version
+ if empty(a:version)
let nodejs_version = get(split(system(['node', '-v']), "\n"), 0, '')
if v:shell_error || nodejs_version[0] !=# 'v'
return 0
endif
+ else
+ let nodejs_version = a:version
endif
+ " Remove surrounding junk. Example: 'v4.12.0' => '4.12.0'
+ let nodejs_version = matchstr(nodejs_version, '\(\d\.\?\)\+')
" [major, minor, patch]
- let v_list = !!a:version ? a:version : split(nodejs_version[1:], '\.')
+ let v_list = split(nodejs_version, '\.')
return len(v_list) == 3
\ && ((str2nr(v_list[0]) > str2nr(a:min_major))
\ || (str2nr(v_list[0]) == str2nr(a:min_major)
diff --git a/scripts/vim-patch.sh b/scripts/vim-patch.sh
index 04bc16dd25..530701e223 100755
--- a/scripts/vim-patch.sh
+++ b/scripts/vim-patch.sh
@@ -92,8 +92,11 @@ get_vim_sources() {
}
commit_message() {
- printf 'vim-patch:%s\n\n%s\n\n%s' "${vim_version}" \
- "${vim_message}" "${vim_commit_url}"
+ if [[ -n "$vim_tag" ]]; then
+ printf '%s\n\n%s' "${vim_message}" "${vim_commit_url}"
+ else
+ printf 'vim-patch:%s\n\n%s\n\n%s' "$vim_version" "$vim_message" "$vim_commit_url"
+ fi
}
find_git_remote() {
@@ -108,22 +111,23 @@ assign_commit_details() {
vim_tag="v${1}"
vim_commit=$(cd "${VIM_SOURCE_DIR}" \
&& git log -1 --format="%H" "${vim_tag}")
- local strip_commit_line=true
+ local munge_commit_line=true
else
# Interpret parameter as commit hash.
vim_version="${1:0:12}"
+ vim_tag=
vim_commit=$(cd "${VIM_SOURCE_DIR}" \
&& git log -1 --format="%H" "${vim_version}")
- local strip_commit_line=false
+ local munge_commit_line=false
fi
vim_commit_url="https://github.com/vim/vim/commit/${vim_commit}"
vim_message="$(cd "${VIM_SOURCE_DIR}" \
&& git log -1 --pretty='format:%B' "${vim_commit}" \
| sed -e 's/\(#[0-9]*\)/vim\/vim\1/g')"
- if [[ ${strip_commit_line} == "true" ]]; then
+ if [[ ${munge_commit_line} == "true" ]]; then
# Remove first line of commit message.
- vim_message="$(echo "${vim_message}" | sed -e '1d')"
+ vim_message="$(echo "${vim_message}" | sed -e '1s/^patch /vim-patch:/')"
fi
patch_file="vim-${vim_version}.patch"
}
@@ -286,9 +290,10 @@ submit_pr() {
local git_remote
git_remote="$(find_git_remote)"
local pr_body
- pr_body="$(git log --reverse --format='#### %s%n%n%b%n' "${git_remote}"/master..HEAD)"
+ pr_body="$(git log --grep=vim-patch --reverse --format='#### %s%n%n%b%n' "${git_remote}"/master..HEAD)"
local patches
- patches=("$(git log --reverse --format='%s' "${git_remote}"/master..HEAD)")
+ # Extract just the "vim-patch:X.Y.ZZZZ" or "vim-patch:sha" portion of each log
+ patches=("$(git log --grep=vim-patch --reverse --format='%s' "${git_remote}"/master..HEAD | sed 's/: .*//')")
patches=(${patches[@]//vim-patch:}) # Remove 'vim-patch:' prefix for each item in array.
local pr_title="${patches[*]}" # Create space-separated string from array.
pr_title="${pr_title// /,}" # Replace spaces with commas.
diff --git a/src/.asan-blacklist b/src/.asan-blacklist
index 928d81bd5a..9d7f721a88 100644
--- a/src/.asan-blacklist
+++ b/src/.asan-blacklist
@@ -1,3 +1,7 @@
# multiqueue.h pointer arithmetic is not accepted by asan
fun:multiqueue_node_data
fun:tv_dict_watcher_node_data
+
+# Allocation in loop_schedule_deferred() is freed by loop_deferred_event(), but
+# this sometimes does not happen during teardown.
+func:loop_schedule_deferred