Nimit Bhardwaj
8d64a2fb1d
test: lua test for vim-patch:8.0.0184
...
2b7bc567b9
2018-03-24 23:06:09 +01:00
Jan Edmund Lazo
131aad953c
win: defaults: 'shellcmdflag', 'shellxquote' #7343
...
closes #7698
Wrapping a command in double-quotes allows cmd.exe to safely dequote the
entire command as if the user entered the entire command in an
interactive prompt. This reduces the need to escape nested and uneven
double quotes.
The `/s` flag of cmd.exe makes the behaviour more reliable:
:set shellcmdflag=/s\ /c
Before this patch, cmd.exe cannot use cygwin echo.exe (as opposed to
cmd.exe `echo` builtin) even if it is wrapped in double quotes.
Example:
:: internal echo
> cmd /s /c " echo foo\:bar" "
foo\:bar"
:: cygwin echo.exe
> cmd /s /c " "echo" foo\:bar" "
foo:bar
2018-03-24 22:05:53 +01:00
Justin M. Keyes
6a7c904648
Merge #4419 'implement <Cmd> key'
2018-03-24 17:45:48 +01:00
Justin M. Keyes
189c5abeba
provider/RPC: apply_autocmds_group(): fix double-free
...
During provider dispatch, eval_call_provider() saves global
state--including pointers, such as `autocmd_fname`--into
`provider_caller_scope` which is later restored by f_rpcrequest().
But `autocmd_fname` is special-cased in eval_vars(), for performance
(see Vim patch 7.2.021; this is also the singular purpose of the
`autocmd_fname_full` global. Yay!)
If eval_vars() frees `autocmd_fname` then its provider-RPC-scoped alias
becomes a problem.
Solution: Don't free autocmd_fname in eval_vars(), just copy into it.
closes #5245
closes #5617
Reference
------------------------------------------------------------------------
Vim patch 7.2.021
f6dad43c98
Problem: When executing autocommands getting the full file name may be
slow. (David Kotchan)
Solution: Postpone calling FullName_save() until autocmd_fname is used.
vim_dev discussion (2008): "Problem with CursorMoved AutoCommand when
Editing Files on a Remote WIndows Share"
https://groups.google.com/d/msg/vim_dev/kj95weZa_eE/GTgj4aq5sIgJ
2018-03-24 11:01:24 +01:00
Björn Linse
d407a48665
getchar: implement <Cmd> key to invoke command in any mode
2018-03-23 14:01:49 +01:00
Justin M. Keyes
ae409b5042
test/win: use cmd.exe for test
...
Can revert this after #8120 .
2018-03-18 17:15:06 +01:00
Justin M. Keyes
167898a517
test: jobstop() kills entire process tree
...
Test correctly fails before 8d90171f8b
.
ref #6530
2018-03-18 17:03:05 +01:00
Justin M. Keyes
a034d4b69d
API: nvim_get_proc()
...
TODO: "exepath" field (win32: QueryFullProcessImageName())
On unix-likes `ps` is used because the platform-specific APIs are
a nightmare. For reference, below is a (incomplete) attempt:
diff --git a/src/nvim/os/process.c b/src/nvim/os/process.c
index 09769925aca5..99afbbf290c1 100644
--- a/src/nvim/os/process.c
+++ b/src/nvim/os/process.c
@@ -208,3 +210,60 @@ int os_proc_children(int ppid, int **proc_list, size_t *proc_count)
return 0;
}
+/// Gets various properties of the process identified by `pid`.
+///
+/// @param pid Process to inspect.
+/// @return Map of process properties, empty on error.
+Dictionary os_proc_info(int pid)
+{
+ Dictionary pinfo = ARRAY_DICT_INIT;
+#ifdef WIN32
+
+#elif defined(__APPLE__)
+ char buf[PROC_PIDPATHINFO_MAXSIZE];
+ if (proc_pidpath(pid, buf, sizeof(buf))) {
+ name = getName(buf);
+ PUT(pinfo, "exepath", STRING_OBJ(cstr_to_string(buf)));
+ return name;
+ } else {
+ ILOG("proc_pidpath() failed for pid: %d", pid);
+ }
+#elif defined(BSD)
+# if defined(__FreeBSD__)
+# define KP_COMM(o) o.ki_comm
+# else
+# define KP_COMM(o) o.p_comm
+# endif
+ struct kinfo_proc *proc = kinfo_getproc(pid);
+ if (proc) {
+ PUT(pinfo, "name", cstr_to_string(KP_COMM(proc)));
+ xfree(proc);
+ } else {
+ ILOG("kinfo_getproc() failed for pid: %d", pid);
+ }
+
+#elif defined(__linux__)
+ char fname[256] = { 0 };
+ char buf[MAXPATHL];
+ snprintf(fname, sizeof(fname), "/proc/%d/comm", pid);
+ FILE *fp = fopen(fname, "r");
+ // FileDescriptor *f = file_open_new(&error, fname, kFileReadOnly, 0);
+ // ptrdiff_t file_read(FileDescriptor *const fp, char *const ret_buf,
+ // const size_t size)
+ if (fp == NULL) {
+ ILOG("fopen() of /proc/%d/comm failed", pid);
+ } else {
+ size_t n = fread(buf, sizeof(char), sizeof(buf) - 1, fp);
+ if (n == 0) {
+ WLOG("fread() of /proc/%d/comm failed", pid);
+ } else {
+ size_t end = MIN(sizeof(buf) - 1, n);
+ end = (end > 0 && buf[end - 1] == '\n') ? end - 1 : end;
+ buf[end] = '\0';
+ PUT(pinfo, "name", STRING_OBJ(cstr_to_string(buf)));
+ }
+ }
+ fclose(fp);
+#endif
+ return pinfo;
+}
2018-03-18 00:11:45 +01:00
Justin M. Keyes
dbad797edd
API: nvim_get_proc_children()
...
ref https://github.com/libuv/libuv/pull/836
2018-03-16 10:55:12 +01:00
Justin M. Keyes
de47515477
test: use luv.now() instead of os.time()
2018-03-16 10:55:12 +01:00
Marco Hinz
cca407b43e
DirChanged: support <buffer> ( #8140 )
2018-03-16 07:29:20 +01:00
Justin M. Keyes
496b0f944f
test: next_msg(): default timeout
to 10s
...
Infinite timeout results in hangs which waste time. If some test needs
longer than 10s to wait for a message, it should specify the timeout
explicitly.
2018-03-11 12:43:42 +01:00
Justin M. Keyes
fd4021387e
test: rename next_message() to next_msg()
2018-03-11 12:43:42 +01:00
Justin M. Keyes
2bf0869160
test: handle non-deterministic message cadence
2018-03-11 12:43:42 +01:00
Justin M. Keyes
9cefd83cc7
Merge #8084 'build/win: support MSVC'
2018-03-08 20:26:18 +01:00
b-r-o-c-k
c29a82c45f
build/msvc: Make shell-test fix only apply to MSCV
2018-03-06 20:38:10 -06:00
b-r-o-c-k
773f23e00d
build/msvc: Make shell-test work
...
MSVC doesn't have unistd.h or usleep() so it was replaced with the
Sleep() WinAPI function.
2018-03-04 17:44:23 -06:00
Björn Linse
cee9a8ce8a
message: don't output unprintable chars to screen
...
fixes #7586 #8070
2018-03-04 08:37:57 +01:00
geekodour
9f994bb699
api: nvim_list_uis #8004
...
ref #7438
closes #4842
2018-03-03 15:06:24 +01:00
Matthieu Coudron
384a39479a
'fillchars': fix defaults logic; handle ambiwidth=double #7986
...
Update tests.
2018-02-23 00:48:35 +01:00
Björn Linse
c57d315963
Merge pull request #8031 from bfredl/gotintstatus
...
jobwait: return -2 on interrupt even with timeout
2018-02-20 15:15:06 +01:00
Björn Linse
04fdbfe17d
jobwait: return -2 on interrupt also with timeout
2018-02-20 12:32:23 +01:00
Jan Edmund Lazo
7fa69fb288
Resolve issues mentioned in PR review
2018-02-19 07:10:47 -05:00
Jan Edmund Lazo
795da343bb
test: win: emulate yes with for loop
2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
07dfe0f5ea
test: win: enable ui/wildmode_spec.lua
2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
8dcfd58e2c
test: win: enable termclose_spec.lua
2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
d80bf3c656
test: enable ex_cmds/cd_spec.lua on Windows
2018-02-19 07:10:46 -05:00
Jan Edmund Lazo
df99ab461e
test: enable legacy/fixeol_spec in Windows
...
Try nvim's delete() for cross-platform file remove in Windows
2018-02-19 07:10:45 -05:00
Jan Edmund Lazo
55ce6bfffb
test: enable ex_cmds/write_spec.lua in Windows
2018-02-19 07:10:45 -05:00
Jan Edmund Lazo
6beb7ee77a
win: enable legacy test 051
2018-02-19 07:10:44 -05:00
Jan Edmund Lazo
f1e6828b7b
win: enable legacy test 059
2018-02-19 07:10:44 -05:00
Jan Edmund Lazo
2943056f75
win: enable legacy test 107
2018-02-19 07:10:44 -05:00
Jan Edmund Lazo
44dc8b4753
win: enable legacy test 093
2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
10fbae086a
win: enable legacy/arglist_spec.lua
2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
18a53b6502
win: enable legacy test 30
2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
c5a7f451ce
win: enable legacy/getcwd_spec.lua
2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
3c0cc9c2fb
win: enable legacy/wordcount_spec.lua
2018-02-19 07:10:43 -05:00
Jan Edmund Lazo
e55de56a99
win: enable legacy/packadd_spec.lua
2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
f4d82c1438
win: enable legacy test 011
2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
4f65cd7c0a
win: enable legacy/delete_spec.lua
2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
bde32edefe
win: enable legacy test 097
2018-02-19 07:10:42 -05:00
Jan Edmund Lazo
0fd899aa07
win: enable legacy test 025
2018-02-19 07:10:41 -05:00
Jan Edmund Lazo
3e19e18f4c
win: enable job tests that use jobstart only
...
- echo "" does not hang in powershell
- cmd.exe's echo command does not hang.
- job tests default to powershell (WHY?)
- wait 5 seconds for powershell to create an empty file
- powershell is slow
- cannot reliably validate the id returned by jobstart via jobpid, jobstop
- if using cmd.exe, waiting for a second should be enough
- remaining job tests are unreliable in Windows because any build can pass/fail
for same conditions without changes, especially if the error is in stderr
2018-02-19 07:10:41 -05:00
Shougo
00665d3c70
vim-patch:8.0.1493: completion items cannot be annotated ( #8003 )
...
Problem: Completion items cannot be annotated.
Solution: Add a "user_data" entry to the completion item. (Ben Jackson,
coses vim/vim#2608 , closes vim/vim#2508 )
9b56a57cda
2018-02-18 23:56:59 +01:00
Justin M. Keyes
7973847d02
test/util: remove eq_any()
...
It was added in the parent commit, but ended up not being used. And
I can't think of a case where it will be used: instead we would probably
want to generalize expect_msg_seq() if necessary.
2018-02-18 19:22:44 +01:00
Justin M. Keyes
e72ecdb7ca
test/util: expect_msg_seq()
...
job_spec.lua on AppVeyor (Windows) often fails like this:
FAILED ] C:/projects/neovim/test/functional\core\job_spec.lua @ 72: jobs changes to given `cwd` directory
C:/projects/neovim/test/functional\core\job_spec.lua:81: Expected objects to be the same.
Passed in:
(table) {
[1] = 'notification'
[2] = 'stdout'
*[3] = {
[1] = 0
*[2] = {
[1] = 'C:\projects\neovim\Xtest-tmpdir\nvimmSjq1S\0' } } }
Expected:
(table) {
[1] = 'notification'
[2] = 'stdout'
*[3] = {
[1] = 0
*[2] = {
[1] = 'C:\projects\neovim\Xtest-tmpdir\nvimmSjq1S\0'
*[2] = '' } } }
stack traceback:
Message chunking is non-deterministic, so we need to try different
variants.
2018-02-18 19:19:03 +01:00
Nimit Bhardwaj
e9134421ab
vim-patch-8.0.0649 and vim-patch-8.0.0650: autocmd open help 2 times
2018-02-17 00:02:16 +05:30
Björn Linse
77286915a8
Merge pull request #8008 from bfredl/arrayfree
...
ex_getln: clear cmdline_block after it's freed
2018-02-14 19:23:11 +01:00
Björn Linse
d9497053e8
ex_getln: clear cmdline_block after it's freed
2018-02-14 19:20:28 +01:00
Björn Linse
6e5cb0debd
ui: refactor ui options
2018-02-13 20:48:51 +01:00