mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
@@ -4969,9 +4969,11 @@ has({feature}) Returns 1 if {feature} is supported, 0 otherwise. The
|
||||
< *feature-list*
|
||||
List of supported pseudo-feature names:
|
||||
acl |ACL| support
|
||||
bsd BSD system (not macOS, use "mac" for that).
|
||||
iconv Can use |iconv()| for conversion.
|
||||
+shellslash Can use backslashes in filenames (Windows)
|
||||
clipboard |clipboard| provider is available.
|
||||
mac MacOS system.
|
||||
nvim This is Nvim.
|
||||
python2 Legacy Vim |python2| interface. |has-python|
|
||||
python3 Legacy Vim |python3| interface. |has-python|
|
||||
@@ -4981,6 +4983,7 @@ has({feature}) Returns 1 if {feature} is supported, 0 otherwise. The
|
||||
unix Unix system.
|
||||
*vim_starting* True during |startup|.
|
||||
win32 Windows system (32 or 64 bit).
|
||||
win64 Windows system (64 bit).
|
||||
wsl WSL (Windows Subsystem for Linux) system
|
||||
|
||||
*has-patch*
|
||||
|
||||
@@ -3801,14 +3801,20 @@ int build_stl_str_hl(
|
||||
|
||||
buf_T *const save_curbuf = curbuf;
|
||||
win_T *const save_curwin = curwin;
|
||||
const int save_VIsual_active = VIsual_active;
|
||||
curwin = wp;
|
||||
curbuf = wp->w_buffer;
|
||||
// Visual mode is only valid in the current window.
|
||||
if (curwin != save_curwin) {
|
||||
VIsual_active = false;
|
||||
}
|
||||
|
||||
// Note: The result stored in `t` is unused.
|
||||
str = eval_to_string_safe(out_p, &t, use_sandbox);
|
||||
|
||||
curwin = save_curwin;
|
||||
curbuf = save_curbuf;
|
||||
VIsual_active = save_VIsual_active;
|
||||
|
||||
// Remove the variable we just stored
|
||||
do_unlet(S_LEN("g:actual_curbuf"), true);
|
||||
|
||||
@@ -11503,6 +11503,9 @@ static void f_glob2regpat(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
static void f_has(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
{
|
||||
static const char *const has_list[] = {
|
||||
#if defined(BSD) && !defined(__APPLE__)
|
||||
"bsd",
|
||||
#endif
|
||||
#ifdef UNIX
|
||||
"unix",
|
||||
#endif
|
||||
|
||||
@@ -1367,8 +1367,9 @@ func Test_normal23_K()
|
||||
return
|
||||
endif
|
||||
|
||||
if has('mac')
|
||||
" In MacOS, the option for specifying a pager is different
|
||||
let not_gnu_man = has('mac') || has('bsd')
|
||||
if not_gnu_man
|
||||
" In MacOS and BSD, the option for specifying a pager is different
|
||||
set keywordprg=man\ -P\ cat
|
||||
else
|
||||
set keywordprg=man\ --pager=cat
|
||||
@@ -1376,7 +1377,7 @@ func Test_normal23_K()
|
||||
" Test for using man
|
||||
2
|
||||
let a = execute('unsilent norm! K')
|
||||
if has('mac')
|
||||
if not_gnu_man
|
||||
call assert_match("man -P cat 'man'", a)
|
||||
else
|
||||
call assert_match("man --pager=cat 'man'", a)
|
||||
|
||||
@@ -347,3 +347,25 @@ func Test_statusline()
|
||||
set laststatus&
|
||||
set splitbelow&
|
||||
endfunc
|
||||
|
||||
func Test_statusline_visual()
|
||||
func CallWordcount()
|
||||
call wordcount()
|
||||
endfunc
|
||||
new x1
|
||||
setl statusline=count=%{CallWordcount()}
|
||||
" buffer must not be empty
|
||||
call setline(1, 'hello')
|
||||
|
||||
" window with more lines than x1
|
||||
new x2
|
||||
call setline(1, range(10))
|
||||
$
|
||||
" Visual mode in line below liast line in x1 should not give ml_get error
|
||||
call feedkeys("\<C-V>", "xt")
|
||||
redraw
|
||||
|
||||
delfunc CallWordcount
|
||||
bwipe! x1
|
||||
bwipe! x2
|
||||
endfunc
|
||||
|
||||
Reference in New Issue
Block a user