aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
...
* | | | 'pastetoggle': Revert support for multi-key value (#6724)Matthew Malcomson2017-05-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverts commit 337b6179df852350b52409fd3806e4b47ab2875b Closes #6716 at the expense of not being able to use a multi-key 'pastetoggle' manually. Multi-key 'pastetoggle' can still be used when inserting the entire option into the typebuffer at once (though the use here is questionable). Also remove those tests to do with waiting for the completion of 'pastetoggle' and mention in the documentation that 'pastetoggle' doesn't wait for timeout.
* | | | Merge pull request #6740 from oni-link/fix.snprintfJames McCoy2017-05-30
|\ \ \ \ | | | | | | | | | | if_cscope: Fix truncation of formated output
| * | | | if_cscope: Fix truncation of formated outputoni-link2017-05-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | snprintf() has to truncate the string written to buffer buf for maximal size_t value. Increase buffer size to fix this.
* | | | | sockets: don't deadlock when connecting to own pipe addressBjörn Linse2017-05-29
| | | | |
* | | | | channels: implement sockopen() to connect to socketBjörn Linse2017-05-29
| | | | | | | | | | | | | | | | | | | | Helped-By: oni-link <knil.ino@gmail.com>
* | | | | Merge pull request #6680 from mhinz/listen/localhostJames McCoy2017-05-28
|\ \ \ \ \ | | | | | | | | | | | | Use uv_getaddrinfo() for servers
| * | | | | socket_watcher_start: Silence conversion warning for sin(6)_portJames McCoy2017-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Although in_port_t is a typedef for uint16_t, GCC in Ubuntu 12.04 complains about potential loss of data due to converting int to uint16_t. Since we know this isn't possible, silence the warning to avoid breaking QB until it gets upgraded to a newer Ubuntu.
| * | | | | eval: serverstart: Return finalized address to userJames McCoy2017-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the process of setting up the socket watcher, the address may be changed (e.g., adding the OS-selected port).
| * | | | | Server: Call uv_getaddrinfo with NULL service when no portJames McCoy2017-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using serverstart("ip.ad.d.r:") to listen on a random port, we need to abide by getaddrinfo()'s API and pass in a NULL service, rather than an empty string. When given an empty string, getaddrinfo() is free to search for a service by the given name (since the string isn't a number) which will fail. At least FreeBSD does perform this lookup.
| * | | | | Server: don't fall back to Unix socketsMarco Hinz2017-05-22
| | | | | |
| * | | | | Server: use uv_getaddrinfo() for $NVIM_LISTEN_ADDRESSMarco Hinz2017-05-22
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | vim-patch:8.0.0605 (#6821)Daniel Hahler2017-05-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: The buffer that quickfix caches for performance may become invalid. (Daniel Hahler) Solution: Reset qf_last_bufref in qf_init_ext(). (Daniel Hahler, closes vim/vim#1728, closes vim/vim#1676) https://github.com/vim/vim/commit/6dd4a53502fb4ec1b66104eab1805e7254ad9e41
* | | | | Merge #6777 from justinmk/bsdJustin M. Keyes2017-05-28
|\ \ \ \ \
| * | | | | pty_process_unix.c: include <libutil.h> on DragonFly BSDJustin M. Keyes2017-05-21
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | terminal: Do not change 'number', 'relativenumber' (#6796)Justin M. Keyes2017-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | | get_keymap API (#6236)TJ DeVries2017-05-25
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | * Add api function get keymap nvim_get_keymap(mode) nvim_buf_get_keymap(buffer, mode)
* | | | tui: Improve scrolling mechanism.Jonathan de Boyne Pollard2017-05-23
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | tui: Reset the scroll region when resizing.Jonathan de Boyne Pollard2017-05-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | tui: resize: use an extended terminal capabilityJonathan de Boyne Pollard2017-05-23
| | | | | | | | | | | | | | | | | | | | ... rather than hardwiring the string and testing the terminal type every time the screen is re-sized.
* | | | tui: Only use dtterm's extension where supported.Jonathan de Boyne Pollard2017-05-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | oldtests: Mark Test_lambda_with_timer as flakyJustin M. Keyes2017-05-23
| | | |
* | | | tui.c: Initialize TUI input component only once. (#6784)Justin M. Keyes2017-05-22
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | term_input_start should be called only once. This fixes a leak introduced by af2e629be4d20dda334a7c6ca817f5599956e4ff. 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). ```
* | | api/nvim_replace_termcodes: Document keycodes behaviorJustin M. Keyes2017-05-20
| | |
* | | vim_getenv: Remove redundant NULL check.Justin M. Keyes2017-05-20
| | |
* | | Merge pull request #6735 from justinmk/funcattrJames McCoy2017-05-20
|\ \ \ | | | | | | | | clang 3.6+ REAL_FATTR_NONNULL_RET
| * | | func_attr.h: use NVIM_HAS_ATTRIBUTEJustin M. Keyes2017-05-13
| | | |
| * | | func_attr.h: clang 3.7+: REAL_FATTR_NONNULL_RETJustin M. Keyes2017-05-13
| | | | | | | | | | | | | | | | Closes #1627
| * | | path.c: Remove invalid FUNC_ATTR_NONNULL_RETJustin M. Keyes2017-05-13
| |/ / | | | | | | | | | References https://github.com/neovim/neovim/pull/6514#issuecomment-301235265
* | | lua: Add PVS comment to lua/*.cZyX2017-05-20
| | |
* | | options: Silence V542 without using commentsZyX2017-05-20
| | |
* | | options: Silence V542 the other wayZyX2017-05-20
| | | | | | | | | Still does not work though.
* | | syntax: Silence V782ZyX2017-05-20
| | | | | | | | | | | | Just another pointer hack used with hash tables.
* | | tui: Fix V547: always true conditionZyX2017-05-20
| | | | | | | | | | | | | | | The variable in question is initalized at the start of the function with something non-NULL, specifically pointer to a static buffer.
* | | spellfile: Fix V547: always true conditionZyX2017-05-20
| | | | | | | | | This condition was already checked at the surrounding if() at line 2422.
* | | tag: Silence V522: potential null dereferenceZyX2017-05-20
| | | | | | | | | | | | | | | Call PVS is referring to is using DT_FREE which will make function exit earlier, in #ifdef EXITFREE block.
* | | shada: Fix V581: adjacent branches with same conditionZyX2017-05-20
| | |
* | | search: Fix V502: ?: ambiguityZyX2017-05-20
| | |
* | | options: Silence V542: odd casts for .def_valZyX2017-05-20
| | |
* | | memfile: Fix V547: always true conditionZyX2017-05-20
| | | | | | | | | | | | | | | `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.
* | | main: Silence V522: potential NULL pointer dereferenceZyX2017-05-20
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | getchar: Eliminate two-iteration loopZyX2017-05-20
| | |
* | | eval: Silence V614: potentially uninitialized variableZyX2017-05-20
| | | | | | | | | | | | | | | 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.
* | | eval: Fix V507ZyX2017-05-20
| | |
* | | eval: Silence V782ZyX2017-05-20
| | |
* | | eval/encode: Silence V595 errorZyX2017-05-20
| | |
* | | buffer: Silence V519ZyX2017-05-20
| | |
* | | edit: Silence V595ZyX2017-05-20
| | |
* | | *: Fix all V641 errorsZyX2017-05-20
| | |
* | | charset: Fix V695: dead branchesZyX2017-05-20
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | startup: init v:progpath before calling vim_getenv (#6755)Justin M. Keyes2017-05-17
| | |