Justin M. Keyes
714ec09c6d
version: Allow has("nvim-x"), has("nvim-x.y")
2016-10-25 13:08:48 +02:00
Justin M. Keyes
e7e2844d46
version: has("nvim-1.2.3")
...
Helped-by: Daniel Hahler <git@thequod.de >
2016-10-25 11:40:37 +02:00
Justin M. Keyes
459a6ff058
test: system(): Avoid indeterminism.
2016-10-23 00:13:33 +02:00
Justin M. Keyes
9706664b88
system('foo &', 'bar'): Show error, don't crash.
...
Closes #3529
Closes #5241
In Vim,
:echo system('cat - &', 'foo')
works because for both system() and :! Vim writes input to a temp file and uses
shell syntax to redirect the file to the backgrounded `cat` (get_cmd_output()
.. make_filter_cmd()).
In Nvim,
:echo system('cat - &', 'foo')
fails because we write the input directly via pipes (shell.c:do_os_system()),
but (per POSIX[1]) backgrounded process input stream is redirected from
/dev/null (unless overridden by shell redirection; supported only by some shells
[2]), so our writes are ignored, the process exits quickly, and if we are
writing data larger than the buffer size we'll see EPIPE.
This still works:
:%w !tee > foo1358.txt &
but this does not:
:%w !tee foo1358.txt &
though it *should* (why doesn't it?) because we still do the temp file dance
in do_bang() .. do_filter().
[1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_09_03_02
[2] http://unix.stackexchange.com/a/71218
2016-10-19 01:39:05 +02:00
Justin M. Keyes
97caabc49a
test: execute_spec: Adjust screen assertion.
...
The previous form was passing because it happens immediately before this form;
but on a very fast(?) server the screen check might miss that form. It's also
not really want we want to assert anyways.
2016-10-15 22:16:48 +02:00
Björn Linse
719dae2e01
events: allow event processing in getchar()
...
this is consistent with vim, and is necessary for plugins that implement
their own input modes using "getchar()" and still want to do async
event processing.
2016-10-15 09:50:59 +02:00
Justin M. Keyes
dc6cc4787c
api: Establish API naming convention. ( #5344 )
...
old name: new name:
--------------------------------------------------
nvim_name_to_color nvim_get_color_by_name
nvim_get_current_buffer nvim_get_current_buf
nvim_get_current_window nvim_get_current_win
nvim_get_buffers nvim_list_bufs
nvim_get_tabpages nvim_list_tabpages
nvim_get_windows nvim_list_wins
nvim_set_current_buffer nvim_set_current_buf
nvim_set_current_window nvim_set_current_win
nvim_change_directory nvim_set_current_dir
nvim_tabpage_get_window nvim_tabpage_get_win
nvim_tabpage_get_windows nvim_tabpage_list_wins
nvim_win_get_buffer nvim_win_get_buf
nvim_report_error nvim_err_writeln
Helped-by: Björn Linse <bjorn.linse@gmail.com >
Helped-by: ZyX <kp-pav@yandex.ru >
Helped-by: James McCoy <jamessan@jamessan.com >
2016-09-17 06:30:36 +02:00
Björn Linse
98a08c3e5a
api: add tests for calling the api from vimscript
2016-08-31 21:57:06 +02:00
Rui Abreu Ferreira
39c628d031
Mark some functional tests as pending in Windows
2016-08-26 08:21:41 +01:00
Björn Linse
f282b8ecac
tests: don't ignore highlights in various tests
2016-08-14 21:53:02 +02:00
Björn Linse
0a51d26b33
timers: do not crash after processing events in the handler
2016-08-10 11:22:28 +02:00
Justin M. Keyes
aa2c439940
eval.c: rename capture() to execute() ( #5132 )
2016-07-31 13:23:29 -04:00
Björn Linse
5c754a2d22
timers: make repeat=0 work one-shot (consistent with vim)
2016-06-29 18:57:18 +02:00
Björn Linse
2c39e0b03f
timers: make timers work with zero timeout
2016-06-29 18:57:18 +02:00
Björn Linse
e8a8342132
test: fix command_count_spec
...
The test hit wait_return if x or .x.swp exists in the project root directory.
2016-06-23 16:54:19 +02:00
Justin M. Keyes
8a4e5b4bc2
Merge #4697 'capture() function'.
2016-06-20 00:55:41 -04:00
ZyX
ff470bb853
functests: Check logs in lua code
...
It is otherwise impossible to determine which test failed sanitizer/valgrind
check. test/functional/helpers.lua module return was changed so that tests which
do not provide after_each function to get new check will automatically fail.
2016-06-10 21:50:49 +03:00
Shougo Matsushita
41c0dfd545
Port capture() function
...
https://groups.google.com/forum/#!msg/vim_dev/H3Z3ChSUh_4/beZs6KzYdBsJ
2016-05-27 10:33:44 +09:00
Björn Linse
5cc87d4dab
cmdline: Redraw the cmdline after processing events
...
vim-patch:7.4.1603
TODO(bfredl): if we allow events in HITRETURN and ASKMORE states,
we need to add the necessary redraws as well.
2016-05-24 22:11:37 +02:00
Björn Linse
61e8adb25e
eval: implement timers. vim-patch: 7.4.1578, 7.4.1831
...
For the moment, timers are triggered during sleep,
but not in wait-for-input modes, like press-RETURN or f_getchar()
2016-05-24 22:08:56 +02:00
KillTheMule
65b7499872
vim-patch:cb00f03
...
Add missing test file.
cb00f03933
Converted to a lua test. Change the tolerance of the test to avoid false
positives on travis.
2016-05-08 20:15:07 +02:00
KillTheMule
360d0513d1
Satisfy testlint.
...
For that, make luatest ignore the preload.lua files.
2016-04-28 19:30:17 +02:00
ZyX
a64114eba0
functests: Make json_functions_spec use new NIL where appropriate
2016-04-18 02:48:20 +03:00
ZyX
bda0165514
eval/encode: Make sure that encoder can encode NULL variables
...
Adds two undocumented v: variables: _null_list and _null_dict because I do not
know a reproducible way to get such lists (though I think I heard about this)
and dictionaries (do not remember hearing about them). NULL strings are obtained
using $XXX_UNEXISTENT_VAR_XXX.
Fixes crash in json_encode($XXX_UNEXISTENT_VAR_XXX). Other added tests worked
fine before this commit.
2016-04-18 02:48:20 +03:00
ZyX
3e435df42c
functests: Replace \xXX escapes with \DDD in lua code
2016-04-18 02:48:20 +03:00
ZyX
fd92e648ac
eval/encode: Dump FF character correctly
2016-04-18 02:48:20 +03:00
ZyX
9af400f979
eval: Treat [] and [""] as any other empty string
2016-04-18 02:48:20 +03:00
ZyX
af7ff808c7
eval: Fix overflow in error message in f_json_decode
2016-04-18 02:48:20 +03:00
ZyX
4f8b686435
documentation,functests: State that UTF-8-only support is intentional
2016-04-18 02:48:20 +03:00
ZyX
c129f6cfaf
eval/decode: Accept \r
as space character
2016-04-18 02:48:20 +03:00
ZyX
515fea1ef0
eval/decode: Reject even more numbers
...
Rejects leading zeroes and numbers like 1.e+5 (decimal dot with missing number
with signed exponent).
2016-04-18 02:48:20 +03:00
ZyX
9c543f2e24
eval/decode: Reject more numbers, accept 1e5
2016-04-18 02:48:20 +03:00
ZyX
032ac502ff
eval/decode: Do not loose high surrogates followed by high surrogates
2016-04-18 02:48:20 +03:00
ZyX
eb806c9620
eval/decode: Make sure that error messages do not cause overflow
2016-04-18 02:48:20 +03:00
ZyX
224d7df630
eval/decode: Make sure that blank input does not crash Neovim
2016-04-18 02:48:20 +03:00
ZyX
394830631f
eval/decode: Make sure that U+00C3 is parsed correctly
2016-04-18 02:48:20 +03:00
ZyX
b725f6b428
functests: Make sure that json functions are tested with C messages
2016-04-18 02:48:20 +03:00
ZyX
4a29995fe7
eval/decode: Rename brackets in error messages
...
U+007D is officially RIGHT CURLY BRACKET.
U+005D is officially RIGHT SQUARE BRACKET.
2016-04-18 02:48:20 +03:00
ZyX
942e0b338c
encode: Handle incomplete surrogates like \uSURR\uOTHR
properly
2016-04-18 02:48:20 +03:00
ZyX
406562ac6d
encode: Fail to dump NaN and infinity
...
Thanks to vim/vim#654
2016-04-18 02:48:20 +03:00
ZyX
2f67786796
eval: Rename json* functions to json_*
2016-04-18 02:48:20 +03:00
ZyX
f0bd4a1494
eval/encode: Fix invalid UTF-8 strings handling:
...
1. Do not allow reading past buffer end when creating error messages.
2. Fix surrogate pairs range, avoid magic constants.
2016-04-18 02:47:13 +03:00
ZyX
569e404622
eval/encode: Fix non-utf-8 &encoding handling, add tests
2016-04-18 02:46:34 +03:00
ZyX
0aa3e7b7ce
eval: Port parts of 7.4.1267 that are not already present
2016-04-18 02:46:34 +03:00
ZyX
b7cb8f0597
eval: Make assert_true and assert_false accept v:true and v:false
2016-04-18 02:45:49 +03:00
ZyX
6167ce6df2
eval: Remove v:none
...
To get v:none back just rever this commit. This will not make json*() functions
compatible with Vim though.
2016-04-18 02:45:49 +03:00
ZyX
e303ea8a19
eval/decode: Add support for special maps
...
Special dictionaries representing map are created when encountering duplicate
key or when key is empty or contains NUL.
Also checks that values are separated by a comma/colon properly.
2016-04-18 02:45:49 +03:00
ZyX
2c378fdfaf
eval/decode: Parse strings with NUL to special dictionaries
2016-04-18 02:45:49 +03:00
ZyX
5814e29cdb
eval/decode: Fix surrogate pairs processing
2016-04-18 02:45:49 +03:00
ZyX
ea82270d30
eval/decode: Fail on control and invalid unicode characters
2016-04-18 02:45:49 +03:00