Commit Graph

8753 Commits

Author SHA1 Message Date
Justin M. Keyes
41fd278317 oldtests: Mark Test_lambda_with_timer as flaky 2017-05-23 00:44:21 +02:00
Justin M. Keyes
41f27ae3f3 doc
Closes #6788
2017-05-23 00:25:15 +02:00
Drew Neil
620df53860 doc: *Terminal-mode* #6757
Closes #6756
2017-05-23 00:08:24 +02:00
Marco Hinz
156e6f274f
Doc: explain the format for serverstart() 2017-05-22 23:38:09 +02:00
Marco Hinz
fd5e4e2e4c
Server: don't fall back to Unix sockets 2017-05-22 23:38:09 +02:00
ZyX
a5a5c83608 api/vim: Fix nvim_list_runtimepaths
It used to

1. Always omit last component in runtimepath.
2. Always omit trailing empty item and leave uninitialized memory in place of 
   it.
2017-05-23 00:16:23 +03:00
Justin M. Keyes
7b55d50bbd tui.c: Initialize TUI input component only once. (#6784)
term_input_start should be called only once. This fixes a leak
introduced by af2e629be4.

Closes #6780

Steps to demonstrate memory leak:

    CC=clang CFLAGS=" -O0 -g -DEXITFREE " cmake .. -DMIN_LOG_LEVEL=0 -DCMAKE_BUILD_TYPE=Debug -DBUSTED_OUTPUT_TYPE=nvim -DCMAKE_INSTALL_PREFIX=$PWD/root -DCLANG_ASAN_UBSAN=ON -DPREFER_LUAJIT=false
    nvim -u NONE -i NONE --cmd $'function S()\nsuspend\nendfunction' --cmd 'inoremap <expr> X S()' --cmd 'call feedkeys("iX", "t")'
    fg<CR><Esc>:cq<CR>

```
=================================================================
==25050==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 4159 byte(s) in 1 object(s) allocated from:
    #0 0x4f6a30 in calloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:72
    #1 0xf8d222 in xcalloc /home/zyx/a.a/Proj/c/neovim/src/nvim/memory.c:147:15
    #2 0x1349d28 in rbuffer_new /home/zyx/a.a/Proj/c/neovim/src/nvim/rbuffer.c:24:17
    #3 0xa6867b in rstream_init /home/zyx/a.a/Proj/c/neovim/src/nvim/event/rstream.c:42:20
    #4 0xa68651 in rstream_init_fd /home/zyx/a.a/Proj/c/neovim/src/nvim/event/rstream.c:28:3
    #5 0x1866451 in term_input_init /home/zyx/a.a/Proj/c/neovim/src/nvim/tui/input.c:55:3
    #6 0x187f049 in tui_terminal_start /home/zyx/a.a/Proj/c/neovim/src/nvim/tui/tui.c:223:3
    #7 0x187b491 in tui_main /home/zyx/a.a/Proj/c/neovim/src/nvim/tui/tui.c:258:3
    #8 0x18b3171 in ui_thread_run /home/zyx/a.a/Proj/c/neovim/src/nvim/ui_bridge.c:124:3
    #9 0x7f54c2d5f39b  (/lib64/libpthread.so.0+0x739b)

Direct leak of 4159 byte(s) in 1 object(s) allocated from:
    #0 0x4f6a30 in calloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:72
    #1 0xf8d222 in xcalloc /home/zyx/a.a/Proj/c/neovim/src/nvim/memory.c:147:15
    #2 0x1349d28 in rbuffer_new /home/zyx/a.a/Proj/c/neovim/src/nvim/rbuffer.c:24:17
    #3 0x1865a4a in term_input_init /home/zyx/a.a/Proj/c/neovim/src/nvim/tui/input.c:29:23
    #4 0x187f049 in tui_terminal_start /home/zyx/a.a/Proj/c/neovim/src/nvim/tui/tui.c:223:3
    #5 0x187b491 in tui_main /home/zyx/a.a/Proj/c/neovim/src/nvim/tui/tui.c:258:3
    #6 0x18b3171 in ui_thread_run /home/zyx/a.a/Proj/c/neovim/src/nvim/ui_bridge.c:124:3
    #7 0x7f54c2d5f39b  (/lib64/libpthread.so.0+0x739b)

Indirect leak of 7144 byte(s) in 62 object(s) allocated from:
    #0 0x4f6840 in malloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:64
    #1 0x7f54c231636c  (/usr/lib64/libtermkey.so.1+0x636c)

Indirect leak of 1500 byte(s) in 75 object(s) allocated from:
    #0 0x4f6840 in malloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:64
    #1 0x7f54c2316b34  (/usr/lib64/libtermkey.so.1+0x6b34)

Indirect leak of 704 byte(s) in 1 object(s) allocated from:
    #0 0x4f6840 in malloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:64
    #1 0x7f54c23129dd in _init (/usr/lib64/libtermkey.so.1+0x29dd)

Indirect leak of 520 byte(s) in 1 object(s) allocated from:
    #0 0x4f6c40 in realloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:77
    #1 0x7f54c2313b7c in termkey_register_keyname (/usr/lib64/libtermkey.so.1+0x3b7c)

Indirect leak of 256 byte(s) in 1 object(s) allocated from:
    #0 0x4f6840 in malloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:64
    #1 0x7f54c2313c3c  (/usr/lib64/libtermkey.so.1+0x3c3c)

Indirect leak of 48 byte(s) in 2 object(s) allocated from:
    #0 0x4f6840 in malloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:64
    #1 0x7f54c2313d9e  (/usr/lib64/libtermkey.so.1+0x3d9e)

Indirect leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x4f6840 in malloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:64
    #1 0x7f54c2316553  (/usr/lib64/libtermkey.so.1+0x6553)

Indirect leak of 24 byte(s) in 1 object(s) allocated from:
    #0 0x4f6840 in malloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:64
    #1 0x7f54c2315a2f  (/usr/lib64/libtermkey.so.1+0x5a2f)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x485ca8 in __interceptor_strdup /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_interceptors.cc:562
    #1 0x7f54c2316bef  (/usr/lib64/libtermkey.so.1+0x6bef)

Indirect leak of 8 byte(s) in 1 object(s) allocated from:
    #0 0x485ca8 in __interceptor_strdup /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_interceptors.cc:562
    #1 0x7f54c2316c0f  (/usr/lib64/libtermkey.so.1+0x6c0f)

Indirect leak of 4 byte(s) in 1 object(s) allocated from:
    #0 0x4f6840 in malloc /var/tmp/portage/sys-devel/llvm-3.9.1-r1/work/llvm-3.9.1.src/projects/compiler-rt/lib/asan/asan_malloc_linux.cc:64
    #1 0x7f54c2316a26  (/usr/lib64/libtermkey.so.1+0x6a26)

SUMMARY: AddressSanitizer: 18574 byte(s) leaked in 149 allocation(s).
```
2017-05-22 17:26:26 +02:00
Drew Neil
170d8af397 doc: on_stdout, on_stderr, onexit (#6761) 2017-05-22 16:57:16 +02:00
Justin M. Keyes
db0159be26 doc: update *feature-list*, remove "gui_running"
Closes #6783
2017-05-22 07:02:51 +02:00
Marco Hinz
afa781f420
Server tests: endpoint parsing in serverstart() 2017-05-22 01:05:40 +02:00
Marco Hinz
f913ba6e06
Server tests: use helpers.command() 2017-05-22 01:05:40 +02:00
Marco Hinz
3efc82cbb2
Server: use uv_getaddrinfo() for $NVIM_LISTEN_ADDRESS
This change implicitly adds IPv6 support.

If the address contains ":", we try to use a TCP socket instead of a Unix domain
socket. Everything in front of the last occurrence of ":" is the hostname and
everything after it the port.

If the hostname lookup fails, we fall back to using a Unix domain socket.

If the port is empty ("localhost:"), a random port will be assigned.

Examples:

  NVIM_LISTEN_ADDRESS=localhost:12345 -> TCP (IPv4 or IPv6), port: 12345
  NVIM_LISTEN_ADDRESS=localhost:      -> TCP (IPv4 or IPv6), port: random (> 1024)
  NVIM_LISTEN_ADDRESS=localhost:0     -> TCP (IPv4 or IPv6), port: random (> 1024)
  NVIM_LISTEN_ADDRESS=localhost       -> Unix domain socket "localhost" in current dir
2017-05-22 01:05:39 +02:00
Justin M. Keyes
17a46dc5e0 pty_process_unix.c: include <libutil.h> on DragonFly BSD
From FreeBSD ports patch:
https://svnweb.freebsd.org/ports/head/editors/neovim/files/patch-src_nvim_os_pty__process__unix.c?revision=425833&view=markup

References https://github.com/neovim/neovim/issues/6771#issuecomment-302921368
2017-05-21 13:47:39 +02:00
Justin M. Keyes
6255c4e053 build: FreeBSD: Disable -Wc11-extensions only for clang
From FreeBSD ports patch:
https://svnweb.freebsd.org/ports/head/editors/neovim/files/patch-CMakeLists.txt?revision=425833&view=markup

References #4363
2017-05-21 13:44:02 +02:00
Justin M. Keyes
9cc10c69f2 Merge #6775 from justinmk/doc 2017-05-21 13:38:59 +02:00
Justin M. Keyes
872465cf1d doc 2017-05-21 00:01:52 +02:00
Justin M. Keyes
bdd73fc07f api/nvim_replace_termcodes: Document keycodes behavior 2017-05-20 22:20:32 +02:00
Justin M. Keyes
bfb9cf1fc3 vim_getenv: Remove redundant NULL check. 2017-05-20 19:40:38 +02:00
James McCoy
6a7514feaa Merge pull request #6735 from justinmk/funcattr
clang 3.6+ REAL_FATTR_NONNULL_RET
2017-05-20 12:37:18 -04:00
Justin M. Keyes
bde46fdece Merge #6772 from ZyX-I/fix-pvs-errors 2017-05-20 17:07:35 +02:00
ZyX
7dc7d2f83f lua: Add PVS comment to lua/*.c 2017-05-20 05:06:55 +03:00
ZyX
c585a72cdc pvscheck: Provide arguments to patch_sources in correct order 2017-05-20 05:06:16 +03:00
ZyX
e14f678689 options: Silence V542 without using comments 2017-05-20 05:02:03 +03:00
ZyX
a052040430 options: Silence V542 the other way
Still does not work though.
2017-05-20 04:56:38 +03:00
ZyX
1dafe1e002 syntax: Silence V782
Just another pointer hack used with hash tables.
2017-05-20 04:47:01 +03:00
ZyX
a494bf847d tui: Fix V547: always true condition
The variable in question is initalized at the start of the function with
something non-NULL, specifically pointer to a static buffer.
2017-05-20 04:47:01 +03:00
ZyX
d9398982ea spellfile: Fix V547: always true condition
This condition was already checked at the surrounding if() at line 2422.
2017-05-20 04:47:01 +03:00
ZyX
c7c4aad387 tag: Silence V522: potential null dereference
Call PVS is referring to is using DT_FREE which will make function exit earlier,
in #ifdef EXITFREE block.
2017-05-20 04:47:01 +03:00
ZyX
b2265a0977 shada: Fix V581: adjacent branches with same condition 2017-05-20 04:29:54 +03:00
ZyX
8bd903cd51 search: Fix V502: ?: ambiguity 2017-05-20 04:28:21 +03:00
ZyX
5bea4906a2 options: Silence V542: odd casts for .def_val 2017-05-20 04:26:24 +03:00
ZyX
7d895ee053 memfile: Fix V547: always true condition
`blocksize` was checked against UINT_MAX after it was checked against 
MAX_SWAP_PAGE_SIZE which makes it always pass the check. Better use 
STATIC_ASSERT instead.
2017-05-20 04:21:00 +03:00
ZyX
40444e9186 main: Silence V522: potential NULL pointer dereference
AFAIK there is no way NULL can be there, including from the line it points to.
Dunno what analyser was thinking, but dereferencing of `argv[0]` happened just
before `get_number_arg()` call: in `ascii_isdigit()` two lines above. And `idx`
cannot possibly be NULL ever, it comes from `&varname`, this could not ever give
anything, but a valid pointer.
2017-05-20 04:21:00 +03:00
ZyX
9ec2bf26ce getchar: Eliminate two-iteration loop 2017-05-20 04:21:00 +03:00
ZyX
37a77506b0 eval: Silence V614: potentially uninitialized variable
Could not be uninitialized because `func_or_func_caller_profiling` is true only 
if `do_profiling` is `YES`, and if `do_profiling` is `YES` then 
`script_prof_save()` was called to initialize the variable.
2017-05-20 03:54:07 +03:00
ZyX
d9239181af eval: Fix V507 2017-05-20 03:51:19 +03:00
ZyX
98baea63ff eval: Silence V782 2017-05-20 03:49:36 +03:00
ZyX
1db29cb5e5 eval/encode: Silence V595 error 2017-05-20 03:47:01 +03:00
ZyX
7f24736ebc pvscheck: Handle invalid option error gracefully 2017-05-20 03:44:23 +03:00
ZyX
d72df05b93 pvscheck: Add --only-analyse mode 2017-05-20 03:35:50 +03:00
ZyX
a914029278 buffer: Silence V519 2017-05-20 03:28:44 +03:00
ZyX
956ef785f5 edit: Silence V595 2017-05-20 03:28:27 +03:00
ZyX
df67785886 *: Fix all V641 errors 2017-05-20 03:25:22 +03:00
ZyX
2411b6f137 charset: Fix V695: dead branches
Based on comments it appears that some non-printable characters intended to be 
shown as `|x` (0xA0..0xFE) and some as `~x` (0x80..0x9F, 0xFF, excluding 
previous). But this never happens because this is being catched by condition `c 
>= 0x80` above which makes them be represented as `<A0>`. Since I find this 
variant more useful and it additionally is backwards compatible (Vim does the 
same thing) I just dropped dead branches.
2017-05-20 03:21:18 +03:00
raichoo
3280765f2d man.vim: check for -l flag #6766 2017-05-19 14:02:11 +02:00
Justin M. Keyes
060ce0e0bc startup: init v:progpath before calling vim_getenv (#6755) 2017-05-17 03:23:34 +02:00
James McCoy
96ede7c567 Merge pull request #6759 from jamessan/flaky-timers
oldtests: Mark test_timer's Test_oneshot as flaky
2017-05-16 20:24:11 -04:00
James McCoy
4a08320007 oldtests: Mark test_timer's Test_oneshot as flaky 2017-05-16 15:32:19 -04:00
Justin M. Keyes
597d65b4b7 Merge #6741 from justinmk/progpath 2017-05-15 16:11:01 +02:00
Justin M. Keyes
cc5a42a774 env_iter: Learn delim parameter. 2017-05-15 15:01:52 +02:00