Justin M. Keyes
1cf377f23a
Merge #6777 from justinmk/bsd
2017-05-28 02:37:07 +02:00
Justin M. Keyes
a84926763f
install: bsd: install manpages to /usr/local/man
...
https://svnweb.freebsd.org/ports/head/editors/neovim/Makefile?revision=428479&view=markup#l28
Closes #6771
2017-05-27 21:42:10 +02:00
Justin M. Keyes
023f67cad8
terminal: Do not change 'number', 'relativenumber' ( #6796 )
...
Showing the 'number' column in terminal buffers is a bit silly because
of 'scrollback'. But it's mostly harmless and technically works as
expected.
The least surprising thing is to leave the user's settings alone. Since
there are tradeoffs in both cases, we choose inertia.
We still disable 'relativenumber' in *terminal-mode* (as opposed to
normal-mode) because it is totally broken: the Nvim cursor (not terminal
cursor) is always on the last line.
2017-05-27 15:08:38 +02:00
raichoo
967e892cb6
man.vim: feature-test section (-s) flag #6815
...
Different implementations of `man` might be using different
flags for sections.
2017-05-26 00:30:40 +02:00
Justin M. Keyes
7a1a3a1258
build: Default BUSTED_OUTPUT_TYPE to "nvim" ( #6811 )
2017-05-25 14:51:53 +02:00
TJ DeVries
45626de63f
get_keymap API ( #6236 )
...
* Add api function get keymap
nvim_get_keymap(mode)
nvim_buf_get_keymap(buffer, mode)
2017-05-25 12:41:53 +02:00
Justin M. Keyes
f4fddbfb77
Merge #6799 from justinmk/tui-dtterm
2017-05-24 02:00:27 +02:00
Jonathan de Boyne Pollard
133ae5eeef
tui: Improve scrolling mechanism.
...
Respect the BGE flag from terminfo rather than guessing that it is
always off. Emit DECLRMM and DECSLRM (or equivalent) to properly define
the scroll rectangle.
2017-05-23 21:55:15 +02:00
Jonathan de Boyne Pollard
0de7b17d03
tui: Reset the scroll region when resizing.
...
DECSLPP is explicitly documented as not affecting the scroll region. The
dtterm extension is not as well documented, but it is safer than not to
assume that it operates similarly.
This also eliminates a pointlessly repeated test from tui_scroll(). It
additionally uses a non-parameterized DECSTBM sequence when attempting
to reset back to whole-screen scrolling.
2017-05-23 15:35:47 +02:00
Jonathan de Boyne Pollard
593af64943
tui: resize: use an extended terminal capability
...
... rather than hardwiring the string and testing the terminal
type every time the screen is re-sized.
2017-05-23 15:35:16 +02:00
Jonathan de Boyne Pollard
36d1fd0602
tui: Only use dtterm's extension where supported.
...
This limits the use of dtterm's extension to DECSLPP to only those
terminal types where it is known to be supported.
Because it can be potentially understood as genuine DECSLPP
sequence, setting the number of lines to a number larger than 25,
which of course can cause confusion (especially if it is the width
parameter that results in this) only use it on terminals that are
known to support the dtterm extension.
rxvt (Unicode) also understands dtterm's extension.
2017-05-23 15:24:34 +02:00
James McCoy
c4a8950281
Merge pull request #6790 from justinmk/oldtest
...
oldtests: Mark Test_lambda_with_timer as flaky
2017-05-22 22:05:56 -04:00
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
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
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