aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Merge pull request #6844 from bfredl/channelBjörn Linse2017-11-26
|\ | | | | channels: support buffered output and bytes sockets/stdio
| * provider: delete vimL stderr collector, now that it exists builtinBjörn Linse2017-11-26
| |
| * channels: testsBjörn Linse2017-11-26
| |
| * channels: update documentationBjörn Linse2017-11-25
| |
| * core dumps: don't use pipe, it does not workBjörn Linse2017-11-25
| |
| * test: add hexdump utilitiy functionBjörn Linse2017-11-25
| |
| * input: only change mode of input fd if there is an input fdBjörn Linse2017-11-25
| |
| * tui: job-control: use saved termios for pty jobsJustin M. Keyes2017-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | On startup, if running in a terminal, save the termios properties. Use the saved termios for `:terminal` and `jobstart()` pty jobs. This won't affect nvim spawned outside of a terminal. questions: - This affects `:terminal` and `jobstart({'pty':v:true})`. Should we be more conservative for `jobstart({'pty':v:true})` (e.g. pass NULL to forkpty() and let the OS defaults prevail)? - Note: `iutf8` would not be set in that case.
| * channels: improvements to bufferingBjörn Linse2017-11-25
| |
| * channels: more consistent event handlingBjörn Linse2017-11-25
| | | | | | | | | | terminal: libvterm now receives data in async context. This was "almost" safe already, as redraws were queued anyway.
| * channels: refactor jobwaitBjörn Linse2017-11-25
| |
| * channels: reimplement logging (as stub for proper event)Björn Linse2017-11-25
| |
| * channels: stderr channelBjörn Linse2017-11-25
| |
| * channels: generalize jobclose()Björn Linse2017-11-25
| |
| * channels: move away term code from eval.cBjörn Linse2017-11-25
| |
| * channels: allow bytes sockets and stdio, and buffered bytes outputBjörn Linse2017-11-24
| |
| * channels: refactorBjörn Linse2017-11-24
| |
| * Revert channel logging, rebased on new code belowBjörn Linse2017-11-24
| |
* | Merge #7631 'highlight: no refresh on validation error'Justin M. Keyes2017-11-25
|\ \
| * | test: :highlight validation errorsnate2017-11-25
| | | | | | | | | | | | | | | add test when highlight group doesn't exist. add test when an invalid color name is used for `cterm`.
| * | :highlight : avoid redraw on errornate2017-11-25
|/ / | | | | | | | | do_highlight() should not redraw if a validation error occurred. closes #7489
* | Merge #7624 'tui: disable BCE almost always'Justin M. Keyes2017-11-25
|\ \ | |/ |/| | | closes #7035 closes #7337
| * tui: update cleared area only if non-default bgJustin M. Keyes2017-11-24
| | | | | | | | This check was removed in 133ae5eeeff3 without explanation.
| * tui: Disable BCE almost always. #7624Justin M. Keyes2017-11-24
| | | | | | | | | | | | | | | | | | | | 133ae5eeeff3 implemented BCE (background color erase). But we can't trust terminfo, so it is safer disable BCE if we are not certain. Per https://github.com/kovidgoyal/kitty/issues/160#issuecomment-346470545 terminal support for BCE seems to be (1) optional and (2) inconsistent. ref #4210 #4421 #7035 #7337 #7381 #7425 #7618
| * tui: Disable BCE by default. #7624Justin M. Keyes2017-11-23
|/ | | | | | | | | | | | 133ae5eeeff3 implemented BCE (background color erase). That's fine if the system terminfo claims to support it; but our built-in fallback should not assume it. Per https://github.com/kovidgoyal/kitty/issues/160#issuecomment-346470545 terminal support for BCE seems to be (1) optional and (2) inconsistent. So the built-in terminfos should disable it by default. ref #4210 #4421 #7035 #7337 #7381 #7425 #7618
* FIXUP: duplicate error number in #7422Björn Linse2017-11-23
|
* tui: move terminfo_is_term_family()Justin M. Keyes2017-11-22
|
* Merge #7593 'PVS static analysis fixes'Justin M. Keyes2017-11-22
|\
| * move.c: remove unreachable break statementPeter Kalauskas2017-11-22
| | | | | | | | n > 0 verified by while condition, (--n < 0) always false
| * eval.c: remove nonnullret deadcodePeter Kalauskas2017-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The following calls can't return null: * xmalloc * xcalloc * get_buffer_info * get_tabpage_info * get_vim_var_str * get_win_info * tv_get_string * tv_list_alloc * tv_list_alloc_ret * vim_strnsave
| * helpers.c: statically assert integer falls within rangePeter Kalauskas2017-11-22
| |
| * Fix for pvs V782, pointer access to first element of arrayPeter Kalauskas2017-11-22
| |
| * input.c: replace if/else with switchPeter Kalauskas2017-11-22
| |
| * menu.c: remove conditional expression that is always truePeter Kalauskas2017-11-22
| |
* | cmdline: CmdlineEnter and CmdlineLeave autocommands (#7422)Björn Linse2017-11-22
|/ | | | | | | | | | vim-patch:fafcf0dd59fd patch 8.0.1206: no autocmd for entering or leaving the command line Problem: No autocmd for entering or leaving the command line. Solution: Add CmdlineEnter and CmdlineLeave. https://github.com/vim/vim/commit/fafcf0dd59fd9c4ef743bb333ae40d1d322b6079
* vim-patch:8.0.0289 (#7591)KunMing Xie2017-11-22
| | | | | | | Problem: No test for "ga" and :ascii. Solution: Add a test. (Dominique Pelle, closes vim/vim#1429) https://github.com/vim/vim/commit/21d7c9b601f3048e1293ecd6c09b8325a15503cd
* vim-patch:8.0.0292 (#7592)KunMing Xie2017-11-22
| | | | | | | Problem: The stat test is a bit slow. Solution: Remove a couple of sleep comments and reduce another. https://github.com/vim/vim/commit/a2f28859bfb3fa52bde14c9d2ca3ab7196a9154a
* win: default grepprg to findstr.exe (#7611)Jan Edmund Lazo2017-11-22
|
* Merge #7345 'location-list update on buffer-modified'Justin M. Keyes2017-11-21
|\
| * quickfix: fix location list updates.Lech Lorens2017-10-31
| | | | | | | | | | | | Fix quickfix performance optimization which prevented quickfix items from being updated when there were multiple windows with location lists but the buffer with errors only in one of the lists.
| * quickfix: fix location list updates (test).Lech Lorens2017-10-31
| |
* | pvscheck.sh: auto-detect URL by defaultJustin M. Keyes2017-11-21
| | | | | | | | | | | | | | The hardcoded URL breaks very often, this confuses people. Instead, auto-detect if no URL is provided. Also auto-detect if the script is invoked with no arguments.
* | syntax.c: Fix maybe-uninitialized warning (#7596)Phlosioneer2017-11-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building in release mode, gcc generated a maybe-initialized warning in get_syn_options. The warning is both right and wrong; there is an execution path where the len variable is not initialized in the code: ... int len; ... for (fidx = ARRAY_SIZE(flagtab); --fidx >= 0; ) { p = flagtab[fidx].name; int i; for (i = 0, len = 0; p[i] != NUL; i += 2, ++len) if (arg[len] != p[i] && arg[len] != p[i + 1]) break; // <snip> } ... arg = skipwhite(arg + len); ... The initial for loop will not execute if ARRAY_SIZE(flagtab) == 0, and thus len will never be initialized. flagtab is a local-static variable, initialized to a long array of structured data, so ARRAY_SIZE(flagtab) can't be 0. However, gcc doesn't recognize ARRAY_SIZE(flagtab) as a constant. There are any number of reasons this could happen. In any case, the message can be fixed with a len=0 before the first for loop. In addition to the above warning, I've labeled flagtab and first_letters as const. They should never change.
* | helptags: fix double-free (#7600)Hannu Hartikainen2017-11-20
| | | | | | | | | | | | | | | | | | closes #7599 Helped-by: oni-link <knil.ino@gmail.com> Freeing `dirname` was first introduced by a code refactoring from `ex_helptags()` to `do_helptags()` (`vim-patch:7.4.1551`)(#4648) and later removed by `vim-patch:7.4.1562`(#4660). Only problem with that is, that the patches were not applied in order so the fixing patch was declared `N/A`. So `do_helptags()` should have never freed `dirname`.
* | vim-patch:8.0.0287 (#7590)KunMing Xie2017-11-20
| | | | | | | | | | | | | | Problem: Cannot access the arguments of the current function in debug mode. (Luc Hermitte) Solution: use get_funccal(). (Lemonboy, closes vim/vim#1432, closes vim/vim#1352) https://github.com/vim/vim/commit/c7d9eacefa319e5ac3b3b2334fda5acb126b8716
* | server.c: Fix bug in release mode (#7594)Phlosioneer2017-11-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When compiling with CMAKE_BUILD_TYPE=RelWithDebInfo, several -Wmaybe-uninitialized warnings are printed. These were thought to be false positives (#5061); there are no control paths that lead to an uninitialized value. However, when gcc is run in -O2 mode, it makes a mistake while generating the necessary logic. Specifically, for the code: ... int = 0; // Index of the server whose address equals addr. for (; i < watchers.ga_len; i++) { watcher = ((SocketWatcher **)watchers.ga_data)[i]; // <snip> } if (i >= watchers.ga_len) { ELOG("Not listening on %s", addr); return; } ... Gcc generates: ... <+98>: cmp %ebx, %ebp <+100>: jg 0x530f13 <server_stop+55> <+102>: cmp %ebp, ebx <+104>: jl 0x530f7e <server_stop+162> ... Normally, the if statement should catch the only control path where watcher is not assigned: watchers.ga_len <= 0. When compiled, the assembly lines 98 and 100 correspond to checking if i < watchers.ga_len, and the lines 102 and 104 correspond to checking if i >= watchers.ga_len. The assembly seems to compare ebp (which is watchers.ga_len) with ebx (which is i), and jump if greater; then do the same comparison and jump if less. This is where gcc makes a mistake: it flips the order of the cmp instruction. This means that the REAL behavior is first check if i < watchers.ga_len and then check if i < watchers.ga_len. Which means the code inside the if statement is NEVER executed; no combination of i and watchers.ga_len will ever trigger ELOG(). So not only is this a use of an uninitialized value if watchers.ga_len == 0 (or technically, if it's less than zero too), it also clobbers any error detection if the for loop reaches the last entry (which would normally cause i == watchers.ga_len too). This commit fixes this issue by adding a bool to keep track of whether a watcher was found during the loop. This makes gcc generate the correct code, avoiding both bugs.
* | Merge #7587 'vim-patch:8.0.0283'Justin M. Keyes2017-11-19
|\ \
| * | vim-patch:8.0.0283ckelsel2017-11-19
|/ / | | | | | | | | | | | | | | | | Problem: The return value of mode() does not indicate that completion is active in Replace and Insert mode. (Zhen-Huan (Kenny) Hu) Solution: Add "c" or "x" for two kinds of completion. (Yegappan Lakshmanan, closes vim/vim#1397) Test some more modes. https://github.com/vim/vim/commit/e90858d0229444b3cd16b1cd3a8d61a24c435705
* | version bumpJustin M. Keyes2017-11-18
| |
* | NVIM v0.2.2v0.2.2Justin M. Keyes2017-11-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FEATURES: a6de144c3e5c 'viewoptions': add "curdir" flag #7447 b6a603fe515e node.js remote-plugin support #7458 f5d4da0144c9 :checkhealth : validate 'runtimepath' #7526 FIXES: e6beb60da517 :terminal : fix crash on resize #7547 f19e5d653098 work around gnome-terminal memory leak #7573 07931ed1c8cc 'guicursor': use DECSCUSR for xterm-likes #7576 f185c739bc84 'os_open: UV_EINVAL on NULL filename' #7561 e8af34dc6359 win: provider: Detect(): return *.cmd path #7577 eacd788cf56f :checkhealth : fix check for npm and yarn #7569 a43a573ad5e5 health.vim: normalize slashes for script path #7525 69e33087716c cmake: install runtime/rgb.txt d0b05e3c3622 runtime: syntax error in `runtime/syntax/tex.vim` #7518 55d8967147ef tutor: some fixes #7510 CHANGES: 9837a9c40105 remove legacy alias to `v:count` #7407 c5f001a46a8e runtime: revert netrw update #7557 67e45292925d defaults: scrollback=10000 #7556 881f9e42d182 process_close(): uv_unref() detached processes #7539