aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/RunTests.cmake6
-rw-r--r--man/nvim.12
-rw-r--r--runtime/autoload/health/provider.vim12
-rw-r--r--runtime/autoload/provider/node.vim32
-rw-r--r--runtime/doc/intro.txt21
-rw-r--r--runtime/doc/starting.txt14
-rw-r--r--runtime/doc/vim_diff.txt7
-rw-r--r--src/nvim/edit.c31
-rw-r--r--src/nvim/eval.c5
-rw-r--r--src/nvim/ex_docmd.c18
-rw-r--r--src/nvim/generators/gen_events.lua15
-rw-r--r--src/nvim/main.c10
-rw-r--r--src/nvim/normal.c14
-rw-r--r--src/nvim/testdir/test_edit.vim40
-rw-r--r--src/nvim/testdir/test_functions.vim25
-rw-r--r--src/nvim/testdir/test_gf.vim27
-rw-r--r--test/functional/core/startup_spec.lua28
-rw-r--r--test/functional/eval/system_spec.lua4
-rw-r--r--test/functional/ui/cmdline_highlight_spec.lua2
19 files changed, 222 insertions, 91 deletions
diff --git a/cmake/RunTests.cmake b/cmake/RunTests.cmake
index 5b62fd72c9..a51990e925 100644
--- a/cmake/RunTests.cmake
+++ b/cmake/RunTests.cmake
@@ -24,12 +24,12 @@ if(BUSTED_OUTPUT_TYPE STREQUAL junit)
set(EXTRA_ARGS OUTPUT_FILE ${BUILD_DIR}/${TEST_TYPE}test-junit.xml)
endif()
-if(DEFINED ENV{TEST_TAG})
+if(DEFINED ENV{TEST_TAG} AND NOT "$ENV{TEST_TAG}" STREQUAL "")
set(TEST_TAG "--tags=$ENV{TEST_TAG}")
endif()
-if(DEFINED ENV{TEST_FILTER})
- set(TEST_TAG "--filter=$ENV{TEST_FILTER}")
+if(DEFINED ENV{TEST_FILTER} AND NOT "$ENV{TEST_FILTER}" STREQUAL "")
+ set(TEST_FILTER "--filter=$ENV{TEST_FILTER}")
endif()
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${WORKING_DIR}/Xtest-tmpdir)
diff --git a/man/nvim.1 b/man/nvim.1
index 28b699a07b..0040af2865 100644
--- a/man/nvim.1
+++ b/man/nvim.1
@@ -78,7 +78,7 @@ Ex mode. Reads stdin as Ex commands.
See
.Ic ":help Ex-mode" .
.It Fl E
-Ex mode, improved. Reads stdin as text.
+Ex mode. Reads stdin as text.
See
.Ic :help gQ .
.It Fl es
diff --git a/runtime/autoload/health/provider.vim b/runtime/autoload/health/provider.vim
index 69f0b711fc..55fa1ff65e 100644
--- a/runtime/autoload/health/provider.vim
+++ b/runtime/autoload/health/provider.vim
@@ -502,10 +502,10 @@ function! s:check_node() abort
return
endif
- if !executable('node') || !executable('npm')
+ if !executable('node') || (!executable('npm') && !executable('yarn'))
call health#report_warn(
- \ '`node` and `npm` must be in $PATH.',
- \ ['Install Node.js and verify that `node` and `npm` commands work.'])
+ \ '`node` and `npm` (or `yarn`) must be in $PATH.',
+ \ ['Install Node.js and verify that `node` and `npm` (or `yarn`) commands work.'])
return
endif
let node_v = get(split(s:system('node -v'), "\n"), 0, '')
@@ -521,9 +521,9 @@ function! s:check_node() abort
let host = provider#node#Detect()
if empty(host)
- call health#report_warn('Missing "neovim" npm package.',
+ call health#report_warn('Missing "neovim" npm (or yarn) package.',
\ ['Run in shell: npm install -g neovim',
- \ 'Is the npm bin directory in $PATH?'])
+ \ 'Run in shell (if you use yarn): yarn global add neovim'])
return
endif
call health#report_info('Neovim node.js host: '. host)
@@ -559,7 +559,7 @@ function! s:check_node() abort
\ current_npm, latest_npm),
\ ['Run in shell: npm install -g neovim'])
else
- call health#report_ok('Latest "neovim" npm package is installed: '. current_npm)
+ call health#report_ok('Latest "neovim" npm/yarn package is installed: '. current_npm)
endif
endfunction
diff --git a/runtime/autoload/provider/node.vim b/runtime/autoload/provider/node.vim
index 39b5dc63b8..bdc21514da 100644
--- a/runtime/autoload/provider/node.vim
+++ b/runtime/autoload/provider/node.vim
@@ -22,6 +22,28 @@ function! s:is_minimum_version(version, min_major, min_minor) abort
\ && str2nr(v_list[1]) >= str2nr(a:min_minor)))
endfunction
+function! s:find_node_client(package_manager) abort
+ if !executable(a:package_manager)
+ return ''
+ endif
+ let is_yarn = a:package_manager ==# 'yarn'
+ let cmd = is_yarn ? 'yarn global dir' : 'npm root -g'
+ let global_modules_dir = get(split(system(cmd), "\n"), 0, '')
+ if v:shell_error || !isdirectory(global_modules_dir)
+ return ''
+ endif
+ " `yarn global dir` returns the parent of '/node_modules'.
+ let global_modules_dir = is_yarn ? global_modules_dir . '/node_modules' : global_modules_dir
+ if !isdirectory(global_modules_dir)
+ return ''
+ endif
+ let entry_point = global_modules_dir . '/neovim/bin/cli.js'
+ if !filereadable(entry_point)
+ return ''
+ endif
+ return entry_point
+endfunction
+
" Support for --inspect-brk requires node 6.12+ or 7.6+ or 8+
" Return 1 if it is supported
" Return 0 otherwise
@@ -41,17 +63,11 @@ function! provider#node#Detect() abort
if exists('g:node_host_prog')
return g:node_host_prog
endif
- let global_modules = get(split(system('npm root -g'), "\n"), 0, '')
- if v:shell_error || !isdirectory(global_modules)
- return ''
- endif
if !s:is_minimum_version(v:null, 6, 0)
return ''
endif
- let entry_point = glob(global_modules . '/neovim/bin/cli.js')
- if !filereadable(entry_point)
- return ''
- endif
+ let entry_point = s:find_node_client('npm')
+ let entry_point = !empty(entry_point) ? entry_point : s:find_node_client('yarn')
return entry_point
endfunction
diff --git a/runtime/doc/intro.txt b/runtime/doc/intro.txt
index e7fb632de8..5c63d9e5e2 100644
--- a/runtime/doc/intro.txt
+++ b/runtime/doc/intro.txt
@@ -642,25 +642,12 @@ The command CTRL-\ CTRL-G or <C-\><C-G> can be used to go to Insert mode when
make sure Vim is in the mode indicated by 'insertmode', without knowing in
what mode Vim currently is.
- *Q* *mode-Ex* *Ex-mode* *Ex* *EX* *E501*
-Q Switch to "Ex" mode. This is a bit like typing ":"
- commands one after another, except:
+ *gQ* *Q* *mode-Ex* *Ex-mode* *Ex* *EX* *E501*
+Q or gQ Switch to Ex mode. This is like typing ":" commands
+ one after another, except:
- You don't have to keep pressing ":".
- The screen doesn't get updated after each command.
- - There is no normal command-line editing.
- - Mappings and abbreviations are not used.
- In fact, you are editing the lines with the "standard"
- line-input editing commands (<Del> or <BS> to erase,
- CTRL-U to kill the whole line).
- Vim will enter this mode by default if it's invoked as
- "ex" on the command-line.
- Use the ":vi" command |:visual| to exit "Ex" mode.
-
- *gQ*
-gQ Switch to "Ex" mode like with "Q", but really behave
- like typing ":" commands after another. All command
- line editing, completion etc. is available.
- Use the ":vi" command |:visual| to exit "Ex" mode.
+ Use the ":vi" command |:visual| to exit this mode.
==============================================================================
7. The window contents *window-contents*
diff --git a/runtime/doc/starting.txt b/runtime/doc/starting.txt
index e89d72bce3..ad1077bcab 100644
--- a/runtime/doc/starting.txt
+++ b/runtime/doc/starting.txt
@@ -185,11 +185,12 @@ argument.
delete(), rename(), mkdir(), writefile(), libcall(),
jobstart(), etc.
- *-e*
--e Start Vim in Ex mode |Q|.
+-e *-e* *-E*
+-E Start Nvim in Ex mode |gQ|.
- *-E*
--E Start Vim in improved Ex mode |gQ|.
+ If stdin is not a TTY:
+ -e reads stdin as Ex commands.
+ -E reads stdin as text (into buffer 1).
*-es* *-Es*
-es *-s-ex* *silent-mode*
@@ -207,6 +208,11 @@ argument.
<
User |init.vim| is skipped (unless given with |-u|).
|$TERM| is not used.
+
+ If stdin is not a TTY:
+ -es reads stdin as Ex commands.
+ -Es reads stdin as text (into buffer 1).
+
Example: >
printf "put ='foo'\n%%print\n" | nvim -es
<
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index 5394414947..0035e15be1 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -315,10 +315,15 @@ Macro/|recording| behavior
macros and 'keymap' at the same time. This also means you can use |:imap| on
the results of keys from 'keymap'.
+Normal commands:
+ |Q| is the same as |gQ|
+
Options:
'ttimeout', 'ttimeoutlen' behavior was simplified
Startup:
+ |-e| and |-es| invoke the same "improved Ex mode" as -E and -Es.
+ |-E| and |-Es| reads stdin as text (into buffer 1).
|-s| reads Normal commands from stdin if the script name is "-".
Reading text (instead of commands) from stdin |--|:
- works by default: "-" file is optional
@@ -465,4 +470,4 @@ TUI:
always uses 7-bit control sequences.
==============================================================================
- vim:tw=78:ts=8:noet:ft=help:norl:
+ vim:tw=78:ts=8:sw=2:noet:ft=help:norl:
diff --git a/src/nvim/edit.c b/src/nvim/edit.c
index c20758cb0b..1f18fc36fd 100644
--- a/src/nvim/edit.c
+++ b/src/nvim/edit.c
@@ -4132,7 +4132,6 @@ ins_compl_next (
)
{
int num_matches = -1;
- int i;
int todo = count;
compl_T *found_compl = NULL;
int found_end = FALSE;
@@ -4294,15 +4293,27 @@ ins_compl_next (
* Truncate the file name to avoid a wait for return.
*/
if (compl_shown_match->cp_fname != NULL) {
- STRCPY(IObuff, "match in file ");
- i = (vim_strsize(compl_shown_match->cp_fname) + 16) - sc_col;
- if (i <= 0)
- i = 0;
- else
- STRCAT(IObuff, "<");
- STRCAT(IObuff, compl_shown_match->cp_fname + i);
- msg(IObuff);
- redraw_cmdline = FALSE; /* don't overwrite! */
+ char *lead = _("match in file");
+ int space = sc_col - vim_strsize((char_u *)lead) - 2;
+ char_u *s;
+ char_u *e;
+
+ if (space > 0) {
+ // We need the tail that fits. With double-byte encoding going
+ // back from the end is very slow, thus go from the start and keep
+ // the text that fits in "space" between "s" and "e".
+ for (s = e = compl_shown_match->cp_fname; *e != NUL; MB_PTR_ADV(e)) {
+ space -= ptr2cells(e);
+ while (space < 0) {
+ space += ptr2cells(s);
+ MB_PTR_ADV(s);
+ }
+ }
+ vim_snprintf((char *)IObuff, IOSIZE, "%s %s%s", lead,
+ s > compl_shown_match->cp_fname ? "<" : "", s);
+ msg(IObuff);
+ redraw_cmdline = false; // don't overwrite!
+ }
}
return num_matches;
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index eb437931d4..d8d785395c 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -15066,9 +15066,10 @@ static void f_sha256(typval_T *argvars, typval_T *rettv, FunPtr fptr)
*/
static void f_shellescape(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
+ const bool do_special = non_zero_arg(&argvars[1]);
+
rettv->vval.v_string = vim_strsave_shellescape(
- (const char_u *)tv_get_string(&argvars[0]), non_zero_arg(&argvars[1]),
- true);
+ (const char_u *)tv_get_string(&argvars[0]), do_special, do_special);
rettv->v_type = VAR_STRING;
}
diff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c
index 9590a3715e..2f41080a41 100644
--- a/src/nvim/ex_docmd.c
+++ b/src/nvim/ex_docmd.c
@@ -188,15 +188,8 @@ static void restore_dbg_stuff(struct dbg_stuff *dsp)
current_exception = dsp->current_exception;
}
-
-/*
- * do_exmode(): Repeatedly get commands for the "Ex" mode, until the ":vi"
- * command is given.
- */
-void
-do_exmode (
- int improved /* TRUE for "improved Ex" mode */
-)
+/// Repeatedly get commands for Ex mode, until the ":vi" command is given.
+void do_exmode(int improved)
{
int save_msg_scroll;
int prev_msg_row;
@@ -232,11 +225,8 @@ do_exmode (
changedtick = curbuf->b_changedtick;
prev_msg_row = msg_row;
prev_line = curwin->w_cursor.lnum;
- if (improved) {
- cmdline_row = msg_row;
- do_cmdline(NULL, getexline, NULL, 0);
- } else
- do_cmdline(NULL, getexmodeline, NULL, DOCMD_NOWAIT);
+ cmdline_row = msg_row;
+ do_cmdline(NULL, getexline, NULL, 0);
lines_left = Rows - 1;
if ((prev_line != curwin->w_cursor.lnum
diff --git a/src/nvim/generators/gen_events.lua b/src/nvim/generators/gen_events.lua
index 75e0b3da3a..d03c787b2b 100644
--- a/src/nvim/generators/gen_events.lua
+++ b/src/nvim/generators/gen_events.lua
@@ -25,25 +25,22 @@ static const struct event_name {
} event_names[] = {]])
for i, event in ipairs(events) do
- if i > 1 then
- comma = ',\n'
- else
- comma = '\n'
+ enum_tgt:write(('\n EVENT_%s = %u,'):format(event:upper(), i - 1))
+ names_tgt:write(('\n {%u, "%s", EVENT_%s},'):format(#event, event, event:upper()))
+ if i == #events then -- Last item.
+ enum_tgt:write(('\n NUM_EVENTS = %u,'):format(i))
end
- enum_tgt:write(('%s EVENT_%s = %u'):format(comma, event:upper(), i - 1))
- names_tgt:write(('%s {%u, "%s", EVENT_%s}'):format(comma, #event, event, event:upper()))
end
for alias, event in pairs(aliases) do
- names_tgt:write((',\n {%u, "%s", EVENT_%s}'):format(#alias, alias, event:upper()))
+ names_tgt:write(('\n {%u, "%s", EVENT_%s},'):format(#alias, alias, event:upper()))
end
-names_tgt:write(',\n {0, NULL, (event_T)0}')
+names_tgt:write('\n {0, NULL, (event_T)0},')
enum_tgt:write('\n} event_T;\n')
names_tgt:write('\n};\n')
-enum_tgt:write(('\n#define NUM_EVENTS %u\n'):format(#events))
names_tgt:write('\nstatic AutoPat *first_autopat[NUM_EVENTS] = {\n ')
line_len = 1
for i = 1,((#events) - 1) do
diff --git a/src/nvim/main.c b/src/nvim/main.c
index 8d98f9e915..ea43b93b30 100644
--- a/src/nvim/main.c
+++ b/src/nvim/main.c
@@ -301,9 +301,11 @@ int main(int argc, char **argv)
// Read ex-commands if invoked with "-es".
//
bool reading_tty = !headless_mode
+ && !silent_mode
&& (params.input_isatty || params.output_isatty
|| params.err_isatty);
- bool reading_excmds = !params.input_isatty && silent_mode
+ bool reading_excmds = !params.input_isatty
+ && silent_mode
&& exmode_active == EXMODE_NORMAL;
if (reading_tty || reading_excmds) {
// One of the startup commands (arguments, sourced scripts or plugins) may
@@ -872,7 +874,7 @@ static void command_line_scan(mparm_T *parmp)
exmode_active = EXMODE_NORMAL;
break;
}
- case 'E': { // "-E" Improved Ex mode
+ case 'E': { // "-E" Ex mode
exmode_active = EXMODE_VIM;
break;
}
@@ -1896,8 +1898,8 @@ static void usage(void)
mch_msg("\n");
mch_msg(_(" -b Binary mode\n"));
mch_msg(_(" -d Diff mode\n"));
- mch_msg(_(" -e, -E Ex mode, Improved Ex mode\n"));
- mch_msg(_(" -es Silent (batch) mode\n"));
+ mch_msg(_(" -e, -E Ex mode\n"));
+ mch_msg(_(" -es, -Es Silent (batch) mode\n"));
mch_msg(_(" -h, --help Print this help message\n"));
mch_msg(_(" -i <shada> Use this shada file\n"));
mch_msg(_(" -m Modifications (writing files) not allowed\n"));
diff --git a/src/nvim/normal.c b/src/nvim/normal.c
index a7c4c255b7..b959ea08f3 100644
--- a/src/nvim/normal.c
+++ b/src/nvim/normal.c
@@ -5234,9 +5234,9 @@ static void nv_gotofile(cmdarg_T *cap)
(void)autowrite(curbuf, false);
}
setpcmark();
- (void)do_ecmd(0, ptr, NULL, NULL, ECMD_LAST,
- buf_hide(curbuf) ? ECMD_HIDE : 0, curwin);
- if (cap->nchar == 'F' && lnum >= 0) {
+ if (do_ecmd(0, ptr, NULL, NULL, ECMD_LAST,
+ buf_hide(curbuf) ? ECMD_HIDE : 0, curwin) == OK
+ && cap->nchar == 'F' && lnum >= 0) {
curwin->w_cursor.lnum = lnum;
check_cursor_lnum();
beginline(BL_SOL | BL_FIX);
@@ -7151,7 +7151,7 @@ static void set_op_var(int optype)
assert(opchar0 >= 0 && opchar0 <= UCHAR_MAX);
opchars[0] = (char) opchar0;
- int opchar1 = get_extra_op_char(optype);
+ int opchar1 = get_extra_op_char(optype);
assert(opchar1 >= 0 && opchar1 <= UCHAR_MAX);
opchars[1] = (char) opchar1;
@@ -7464,8 +7464,10 @@ static void nv_esc(cmdarg_T *cap)
if (restart_edit == 0
&& cmdwin_type == 0
&& !VIsual_active
- && no_reason)
- MSG(_("Type :quit<Enter> to exit Nvim"));
+ && no_reason) {
+ MSG(_("Type :qa! and press <Enter> to abandon all changes"
+ " and exit Nvim"));
+ }
/* Don't reset "restart_edit" when 'insertmode' is set, it won't be
* set again below when halfway through a mapping. */
diff --git a/src/nvim/testdir/test_edit.vim b/src/nvim/testdir/test_edit.vim
index 8f815478c2..d2474c06fe 100644
--- a/src/nvim/testdir/test_edit.vim
+++ b/src/nvim/testdir/test_edit.vim
@@ -1323,3 +1323,43 @@ func Test_edit_quit()
only
endfunc
+func Test_edit_complete_very_long_name()
+ if !has('unix')
+ " Long directory names only work on Unix.
+ return
+ endif
+
+ let dirname = getcwd() . "/Xdir"
+ let longdirname = dirname . repeat('/' . repeat('d', 255), 4)
+ try
+ call mkdir(longdirname, 'p')
+ catch /E739:/
+ " Long directory name probably not supported.
+ call delete(dirname, 'rf')
+ return
+ endtry
+
+ " Try to get the Vim window position before setting 'columns'.
+ let winposx = getwinposx()
+ let winposy = getwinposy()
+ let save_columns = &columns
+ " Need at least about 1100 columns to reproduce the problem.
+ set columns=2000
+ call assert_equal(2000, &columns)
+ set noswapfile
+
+ let longfilename = longdirname . '/' . repeat('a', 255)
+ call writefile(['Totum', 'Table'], longfilename)
+ new
+ exe "next Xfile " . longfilename
+ exe "normal iT\<C-N>"
+
+ bwipe!
+ exe 'bwipe! ' . longfilename
+ call delete(dirname, 'rf')
+ let &columns = save_columns
+ if winposx >= 0 && winposy >= 0
+ exe 'winpos ' . winposx . ' ' . winposy
+ endif
+ set swapfile&
+endfunc
diff --git a/src/nvim/testdir/test_functions.vim b/src/nvim/testdir/test_functions.vim
index 8a82493ab6..8847653498 100644
--- a/src/nvim/testdir/test_functions.vim
+++ b/src/nvim/testdir/test_functions.vim
@@ -766,3 +766,28 @@ func Test_balloon_show()
call balloon_show('hi!')
endif
endfunc
+
+func Test_shellescape()
+ let save_shell = &shell
+ set shell=bash
+ call assert_equal("'text'", shellescape('text'))
+ call assert_equal("'te\"xt'", shellescape('te"xt'))
+ call assert_equal("'te'\\''xt'", shellescape("te'xt"))
+
+ call assert_equal("'te%xt'", shellescape("te%xt"))
+ call assert_equal("'te\\%xt'", shellescape("te%xt", 1))
+ call assert_equal("'te#xt'", shellescape("te#xt"))
+ call assert_equal("'te\\#xt'", shellescape("te#xt", 1))
+ call assert_equal("'te!xt'", shellescape("te!xt"))
+ call assert_equal("'te\\!xt'", shellescape("te!xt", 1))
+
+ call assert_equal("'te\nxt'", shellescape("te\nxt"))
+ call assert_equal("'te\\\nxt'", shellescape("te\nxt", 1))
+ set shell=tcsh
+ call assert_equal("'te\\!xt'", shellescape("te!xt"))
+ call assert_equal("'te\\\\!xt'", shellescape("te!xt", 1))
+ call assert_equal("'te\\\nxt'", shellescape("te\nxt"))
+ call assert_equal("'te\\\\\nxt'", shellescape("te\nxt", 1))
+
+ let &shell = save_shell
+endfunc
diff --git a/src/nvim/testdir/test_gf.vim b/src/nvim/testdir/test_gf.vim
index c4aa6f9218..ef1bf1075b 100644
--- a/src/nvim/testdir/test_gf.vim
+++ b/src/nvim/testdir/test_gf.vim
@@ -1,7 +1,7 @@
" This is a test if a URL is recognized by "gf", with the cursor before and
" after the "://". Also test ":\\".
-function! Test_gf_url()
+func Test_gf_url()
enew!
call append(0, [
\ "first test for URL://machine.name/tmp/vimtest2a and other text",
@@ -30,4 +30,27 @@ function! Test_gf_url()
set isf&vim
enew!
-endfunction
+endfunc
+
+func Test_gF()
+ new
+ call setline(1, ['111', '222', '333', '444'])
+ w! Xfile
+ close
+ new
+ set isfname-=:
+ call setline(1, ['one', 'Xfile:3', 'three'])
+ 2
+ call assert_fails('normal gF', 'E37:')
+ call assert_equal(2, getcurpos()[1])
+ w! Xfile2
+ normal gF
+ call assert_equal('Xfile', bufname('%'))
+ call assert_equal(3, getcurpos()[1])
+
+ set isfname&
+ call delete('Xfile')
+ call delete('Xfile2')
+ bwipe Xfile
+ bwipe Xfile2
+endfunc
diff --git a/test/functional/core/startup_spec.lua b/test/functional/core/startup_spec.lua
index f323056179..ae5e2b4115 100644
--- a/test/functional/core/startup_spec.lua
+++ b/test/functional/core/startup_spec.lua
@@ -123,9 +123,19 @@ describe('startup', function()
end)
it('-e/-E interactive #7679', function()
- clear('-E')
+ clear('-e')
local screen = Screen.new(25, 3)
screen:attach()
+ feed("put ='from -e'<CR>")
+ screen:expect([[
+ :put ='from -e' |
+ from -e |
+ :^ |
+ ]])
+
+ clear('-E')
+ screen = Screen.new(25, 3)
+ screen:attach()
feed("put ='from -E'<CR>")
screen:expect([[
:put ='from -E' |
@@ -147,6 +157,14 @@ describe('startup', function()
eq(inputstr,
funcs.system({nvim_prog, '-i', 'NONE', '-Es', '+%print', '-' },
input))
+ -- with `-u NORC`
+ eq('thepartycontinues\n',
+ funcs.system({nvim_prog, '-n', '-u', 'NORC', '-Es', '+.print' },
+ { 'thepartycontinues', '' }))
+ -- without `-u`
+ eq('thepartycontinues\n',
+ funcs.system({nvim_prog, '-n', '-Es', '+.print' },
+ { 'thepartycontinues', '' }))
--
-- -es: read stdin as ex-commands
@@ -157,6 +175,14 @@ describe('startup', function()
eq('line1\nline2\n',
funcs.system({nvim_prog, '-i', 'NONE', '-es', '-' },
input))
+ -- with `-u NORC`
+ eq(' encoding=utf-8\n',
+ funcs.system({nvim_prog, '-n', '-u', 'NORC', '-es' },
+ { 'set encoding', '' }))
+ -- without `-u`
+ eq(' encoding=utf-8\n',
+ funcs.system({nvim_prog, '-n', '-es' },
+ { 'set encoding', '' }))
end)
end)
diff --git a/test/functional/eval/system_spec.lua b/test/functional/eval/system_spec.lua
index 23cea4c038..5e12b6a6a4 100644
--- a/test/functional/eval/system_spec.lua
+++ b/test/functional/eval/system_spec.lua
@@ -241,7 +241,7 @@ describe('system()', function()
~ |
~ |
~ |
- Type :quit<Enter> to exit Nvim |
+ Type :qa! and press <E...all changes and exit Nvim |
]])
end)
end)
@@ -448,7 +448,7 @@ describe('systemlist()', function()
~ |
~ |
~ |
- Type :quit<Enter> to exit Nvim |
+ Type :qa! and press <E...all changes and exit Nvim |
]])
end)
end)
diff --git a/test/functional/ui/cmdline_highlight_spec.lua b/test/functional/ui/cmdline_highlight_spec.lua
index 3c316d1cfa..5d9fffdf23 100644
--- a/test/functional/ui/cmdline_highlight_spec.lua
+++ b/test/functional/ui/cmdline_highlight_spec.lua
@@ -494,7 +494,7 @@ describe('Command-line coloring', function()
{EOB:~ }|
{EOB:~ }|
{EOB:~ }|
- Type :quit<Enter> to exit Nvim |
+ Type :qa! and pr...nges and exit Nvim |
]])
end)
it('works fine with NUL, NL, CR', function()