| Commit message (Collapse) | Author | Age |
|\
| |
| | |
channels: support buffered output and bytes sockets/stdio
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| | |
terminal: libvterm now receives data in async context. This was "almost" safe
already, as redraws were queued anyway.
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | | |
add test when highlight group doesn't exist.
add test when an invalid color name is used for `cterm`.
|
|/ /
| |
| |
| |
| | |
do_highlight() should not redraw if a validation error occurred.
closes #7489
|
|\ \
| |/
|/|
| | |
closes #7035
closes #7337
|
| |
| |
| |
| | |
This check was removed in 133ae5eeeff3 without explanation.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| | |
n > 0 verified by while condition, (--n < 0) always false
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| | |
|
| | |
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
Problem: No test for "ga" and :ascii.
Solution: Add a test. (Dominique Pelle, closes vim/vim#1429)
https://github.com/vim/vim/commit/21d7c9b601f3048e1293ecd6c09b8325a15503cd
|
|
|
|
|
|
|
| |
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
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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`.
|
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \ |
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|