Commit Graph

248 Commits

Author SHA1 Message Date
Björn Linse
160c9fd126 Merge pull request #14199 from bfredl/chansend2
api: fix use-after-free in nvim_chan_send
2021-04-04 22:41:01 +02:00
Björn Linse
3d6831a30a api: fix use-after-free in nvim_chan_send 2021-04-04 18:11:48 +02:00
Lewis Russell
5257bce979 vim-patch:8.1.1682: placing a larger number of ...
...signs is slow

Problem:    Placing a larger number of signs is slow.
Solution:   Add functions for dealing with a list of signs. (Yegappan
            Lakshmanan, closes #4636)
2021-04-03 23:56:54 +01:00
Björn Linse
7e799502e5 luaref: simplify handling of table callables and fix leak in vim.fn.call(table)
I AM THE TABLE
2021-04-03 16:27:58 +02:00
Jan Edmund Lazo
abdda66410 vim-patch:8.2.2694: when 'matchpairs' is empty every character beeps (#14279)
Problem:    When 'matchpairs' is empty every character beeps. (Marco Hinz)
Solution:   Bail out when no character in 'matchpairs' was found.
            (closes vim/vim#8053)  Add assert_nobeep().
5b8cabfef7
2021-04-03 08:49:39 -04:00
Jan Edmund Lazo
375f957af6 vim-patch:8.1.0989: various small code ugliness
Problem:    Various small code ugliness.
Solution:   Remove pointless NULL checks. Fix function calls. Fix typos.
            (Dominique Pelle, closes vim/vim#4060)
bdace838c6
2021-03-29 18:29:25 -04:00
VVKot
7fc58ec99a vim-patch:8.1.0542: shiftwidth() does not take 'vartabstop' into account
Problem:    shiftwidth() does not take 'vartabstop' into account.
Solution:   Use the cursor position or a position explicitly passed.
            Also make >> and << work better with 'vartabstop'. (Christian
            Brabandt)
f951416a83
2021-03-28 08:38:21 +01:00
VVKot
6752ac4968 vim-patch:8.1.0105: all tab stops are the same
Problem:    All tab stops are the same.
Solution:   Add the variable tabstop feature. (Christian Brabandt,
            closes vim/vim#2711)
04958cbaf2
2021-03-28 08:37:01 +01:00
Jan Edmund Lazo
a7e0b0edbc vim-patch:8.2.0949: strptime() does not use DST
Problem:    Strptime() does not use DST.
Solution:   Set the tm_isdst field to -1. (Tomáš Janoušek, closes vim/vim#6230)
ea1233fccf
2021-03-27 10:53:42 -04:00
Jan Edmund Lazo
3261ba98a2 vim-patch:8.1.2326: cannot parse a date/time string
Problem:    Cannot parse a date/time string.
Solution:   Add strptime(). (Stephen Wall, closes #)
10455d43fe

N/A patches for version.c:

vim-patch:8.1.2344: Cygwin: warning for using strptime()

Problem:    Cygwin: warning for using strptime().
Solution:   Move defining _XOPEN_SOURCE and __USE_XOPEN to vim.h. (Ken Takata,
            closes vim/vim#5265)  Use 700 for _XOPEN_SOURCE for mkdtemp().
6a228c6463
2021-03-27 10:53:41 -04:00
Jan Edmund Lazo
d41778c993 Merge pull request #14178 from andymass/vim-8.2.0088
[RFC] vim-patch 8.2.0088: insufficient tests for tags...
2021-03-22 20:35:24 -04:00
Andy K. Massimino
e25ebf6b4f Fix neovim tag bugs uncovered by vim-8.2.0088,
but not related to the patch.  Specifically:

    - settagstack()'s e_listreq is in the wrong place
    - in :ltag, vim_strncpy -> xstrlcpy length parameter is different
        xstrlcpy's length includes the null terminator (so add one)
    - in :ltag, STRNCAT -> xstrlcat takes dest size, not number to copy
        use snprintf instead
2021-03-21 12:06:23 -04:00
Jan Edmund Lazo
749a8b6be7 vim-patch:8.2.2631: commands from winrestcmd() do not always work properly
Problem:    Commands from winrestcmd() do not always work properly. (Leonid V.
            Fedorenchik)
Solution:   Repeat the size commands twice. (closes vim/vim#7988)
a0c8aea479
2021-03-21 00:26:42 -04:00
Andy K. Massimino
0cec2d39c9 vim-patch:8.2.0422: crash when passing popup window to win_splitmove()
Problem:    Crash when passing popup window to win_splitmove(). (john Devin)
Solution:   Disallow moving a popup window. (closes vim/vim#5816)
0f1563ffee

Add translated test for 8.2.0422 (popup->floating)
2021-03-19 23:02:34 -04:00
Andy K. Massimino
b2ec770070 vim-patch:8.2.0093: win_splitmove() can make Vim hang
Problem:    win_splitmove() can make Vim hang.
Solution:   Check windows exists in the current tab page. (closes vim/vim#5444)
7b94e77132
2021-03-19 23:02:34 -04:00
Andy K. Massimino
1ef4340f22 vim-patch:8.1.2020: it is not easy to change the window layout
Problem:    It is not easy to change the window layout.
Solution:   Add win_splitmove(). (Andy Massimino, closes vim/vim#4561)
d20dcb3d01
2021-03-19 23:02:28 -04:00
Jan Edmund Lazo
a4ea602788 vim-patch:8.2.2341: expresison command line completion incomplete after "g:"
Problem:    Expresison command line completion shows variables but not
            functions after "g:". (Gary Johnson)
Solution:   Prefix "g:" when needed to a global function.
1bb4de5302

Port most of patch v8.2.0335 to complete script-local functions
if the name starts with "s:".
2021-03-12 23:20:56 -05:00
Björn Linse
ed08936987 api: allow open non-current buffer as terminal (+ xmas bonus)
vim.api.nvim_chan_send(vim.api.nvim_open_term(0), io.open("/path/to/smile.cat", "r"):read("*a"))
2021-03-12 14:44:47 +01:00
Björn Linse
f901149de4 state: throttle batched event processing when input is available
before, calling vim.schedule() from inside an event would execute
the scheduled callback immediately after this event without
checking for user input in between. Break event processing
whenever user input or an interrupt is available.
2021-03-08 16:08:58 +01:00
erw7
6deabca3e7 eval: add fname_case to feature list 2021-02-25 13:50:31 +09:00
kuuote
0450e155d4 vim-patch:8.2.2233: cannot convert a byte index into a character index (#13978)
Problem:    Cannot convert a byte index into a character index.
Solution:   Add charidx(). (Yegappan Lakshmanan, closes vim/vim#7561)
17793ef23a
2021-02-22 20:13:14 -05:00
Jan Edmund Lazo
147d40f2a0 vim-patch:8.2.0925: getcompletion() does not return command line arguments
Problem:    Getcompletion() does not return command line arguments.
Solution:   Add the "cmdline" option. (Shougo, closes vim/vim#1140)
1f1fd44ef7
2021-02-14 10:00:59 -05:00
Jan Edmund Lazo
be981112b8 vim-patch:8.2.2489: current buffer is wrong after deletebufline() fails
Problem:    current buffer is wrong after deletebufline() fails to delete a
            line in another buffer.
Solution:   Restore the current buffer.
963ffa0a5a
2021-02-10 17:54:24 -05:00
Jan Edmund Lazo
b1df53e868 menu: use char* for set_context_in_menu_cmd() param
All calls to set_context_in_menu_cmd() cast "cmd" arg to char_u.
get_menu_cmd_nodes() doesn't require "cmd" to be unsigned char.
Use "char" type for "cmd" function param to reduce type casts.
2021-02-07 17:28:00 -05:00
James McCoy
33f92fe025 fix(pty): Always use $TERM from the job's env dict
Before #12937, the only way to specify the `$TERM` for a pty job was
through the `TERM` key in the job's opts dict.  This was shuttled to the
child process throug a special field on the PtyProcess object and
injected into the environment after forking.

Now that we have a proper way to specify the environment for a job, we
can simply ensure that the env dict has a proper `TERM` set and avoid
the extra shuttling of data around.

This deprecates the use of the `TERM` option, but will still honor it if
present, although at a lower priority than a `TERM` present in the env
dict.

This also fixes #13874 because we're no longer trying to overwrite
`TERM` in the env dict with the special pty `term_name`.  Doing so
raises an internal error because of the existing key which, under
certain circumstances, would cause the "hit enter" prompt.  However,
since the child process had already forked, there was no way for the
user to acknowledge the prompt and we would just hang there.
2021-02-06 07:12:33 -05:00
James McCoy
27a7a4d384 Use abort() instead of assert(false) for things that should never happen
assert() is compiled out for release builds, but we don't want to
continue running in these impossible situations.

This also resolves the "implicit fallthrough" warnings for the asserts
in switch cases.
2021-01-31 11:28:52 -05:00
James McCoy
a54ac073fb eval/environ: Prefer the last definition of an env var
It's possible for the environment variable block given to nvim to
contain multiple definitions for the same env var.  In this case, nvim
should preserve the last one defined.
2021-01-31 07:54:21 -05:00
James McCoy
8eec9c7d5b Common handling of required/ignored env vars
When starting a pty job, there are certain env vars that we need to
either add or remove.  Currently, there are two relevant scenarios.

* Removing irrelevant env vars on Unix, mostly related to the terminal
  hosting nvim since they do not apply to a libvterm-hosted terminal.

* Adding required env vars for Windows jobs.
2021-01-31 07:54:20 -05:00
James McCoy
ef7c6b972a Support specifying "env" option for termopen()
Co-authored-by: erw7 <erw7.github@gmail.com>
2021-01-31 07:54:20 -05:00
James McCoy
7f50c69268 Use dict_T to pass env vars to process spawning code
Co-authored-by: Matthieu Coudron <mattator@gmail.com>
2021-01-31 07:54:20 -05:00
Jan Edmund Lazo
a1ed941a78 vim-patch:8.2.0861: cannot easily get all the current marks (#13676)
Problem:    Cannot easily get all the current marks.
Solution:   Add getmarklist(). (Yegappan Lakshmanan, closes #6032)
cfb4b47de0

Cherry-pick the column number fix from patch v8.2.0871
because patch v8.2.0871 cannot be fully ported
without the method patches.

Co-authored-by: Peter Wolf <pwolf2310@gmail.com>
2021-01-03 15:33:21 -05:00
Jan Edmund Lazo
ffc3df51f1 vim-patch:8.1.1667: flags for Ex commands may clash with other symbols
Problem:    Flags for Ex commands may clash with other symbols.
Solution:   Prepend with EX_.
8071cb2c64

N/A patches for version.c:

vim-patch:8.1.1672: "make cmdidxs" doesn't work

Problem:    "make cmdidxs" doesn't work.
Solution:   Update macro names. (Naruhiko Nishino, closes vim/vim#4660)
d94ac0caca

Error message for src/nvim/ex_cmds.lua
which omits the "EX_" prefix for the flags.
2021-01-02 12:20:35 -05:00
Jan Edmund Lazo
883114e882 vim-patch:8.2.0928: many type casts are used for vim_strnsave()
Problem:    Many type casts are used for vim_strnsave().
Solution:   Make the length argument size_t instead of int. (Ken Takata,
            closes vim/vim#5633)  Remove some type casts.
df44a27b53

N/A patches for version.c:

vim-patch:8.2.0315: build failure on HP-UX system

Problem:    Build failure on HP-UX system.
Solution:   Use LONG_LONG_MIN instead of LLONG_MIN.  Add type casts for switch
            statement. (John Marriott)
c593bec412

vim-patch:8.2.1052: build failure with older compilers

Problem:    Build failure with older compilers.
Solution:   Move declaration to start of block.
7acde51832

vim-patch:8.2.2229: build failure without the +eval feature

Problem:    build failure without the +eval feature.
Solution:   Add #ifdef.
39cb2dab18

vim-patch:8.2.2232: compiler error for falling through into next case

Problem:    Compiler error for falling through into next case.
Solution:   Move FALLTHROUGH below the #endif
9618a25b9c
2020-12-27 14:05:41 -05:00
Jan Edmund Lazo
172f619b9a vim-patch:8.1.1837: popup test fails if clipboard is supported but not working
Problem:    Popup test fails if clipboard is supported but not working.
Solution:   Add the "clipboard_working" feature. Also use Check commands
            instead of "if" and "throw".  And remove stray ch_logfile().
4999a7fb65

Treat "clipboard_working" feature as an alias to "clipboard" feature.

N/A patches for version.c:

vim-patch:8.1.1840: Testing: WorkingClipboard() is not accurate

Problem:    Testing: WorkingClipboard() is not accurate.
Solution:   Check feature clipboard_working instead.
52992feafe

Neovim did not port WorkingClipboard() for the legacy tests.
2020-12-24 09:18:33 -05:00
Jan Edmund Lazo
3026a5f41d vim-patch:8.2.2136: Vim9: Using uninitialized variable
Problem:    Vim9: Using uninitialized variable.
Solution:   Initialize "len" to zero.  Clean up fnamemodify().
c530852315

N/A patches for version.c:

vim-patch:8.1.0839: when using VTP wrong colors after a color scheme change

Problem:    When using VTP wrong colors after a color scheme change.
Solution:   When VTP is active always clear after a color scheme change.
            (Nobuhiro Takasaki, closes vim/vim#3872)
f58d81a187

vim-patch:8.1.2382: MS-Windows: When using VTP bold+inverse doesn't work

Problem:    MS-Windows: When using VTP bold+inverse doesn't work.
Solution:   Compare with the default colors. (Nobuhiro Takasaki, closes vim/vim#5303)
a050b9471c

vim-patch:8.2.0669: MS-Windows: display in VTP is a bit slow

Problem:    MS-Windows: display in VTP is a bit slow.
Solution:   Optimize the code. (Nobuhiro Takasaki, closes vim/vim#6014)
4e5534fab7

vim-patch:8.2.0739: incomplete profiling when exiting because of a dealy signal

Problem:    Incomplete profiling when exiting because of a dealy signal.
Solution:   Call __gcov_flush() if available.
b415168a98

vim-patch:8.2.1911: tiny build fails

Problem:    Tiny build fails.
Solution:   Add #ifdef.
977fd0b327

vim-patch:8.2.2140: build failure with tiny features

Problem:    Build failure with tiny features.
Solution:   Add #ifdef.
2a3cd3af45
2020-12-13 15:40:19 -05:00
Jan Edmund Lazo
5ccc79e880 eval: executable(), exepath() accept strings only
Cherry-pick f_executable(), f_exepath(), check_for_string() from patch 8.2.2117.
Rename check_for_string() to tv_check_for_string().
7bb4e74c38

Close https://github.com/neovim/neovim/issues/13485
2020-12-11 21:20:20 -05:00
Jan Edmund Lazo
062576f679 vim-patch:8.2.0047: cannot skip tests for specific MS-Windows platform (#13461)
Problem:    Cannot skip tests for specific MS-Windows platform.
Solution:   Add windowsversion().
0c1e3744ff
2020-12-11 19:45:22 -05:00
Magnus Kokk
21c6b40a59 fall back to os_realpath 2020-11-30 19:27:56 +02:00
Magnus Kokk
f348923934 Fix undeclared identifier when HAVE_READLINK is not defined 2020-11-30 19:27:56 +02:00
Jan Edmund Lazo
7b8b786062 vim-patch:8.1.0951: using WIN64 even though it is never defined
Problem:    Using WIN64 even though it is never defined.
Solution:   Only use _WIN64. (Ken Takata, closes vim/vim#3997)
44b443c5db
2020-11-27 20:28:54 -05:00
Jan Edmund Lazo
8d7fa8962b vim-patch:8.2.0996: using "aucmdwin" in win_gettype() is not ideal
Problem:    Using "aucmdwin" in win_gettype() is not ideal.
Solution:   Rename to "autocmd".
40a019f157
2020-11-25 02:46:20 -05:00
Jan Edmund Lazo
9b2efe6b7d vim-patch:8.2.0991: cannot get window type for autocmd and preview window
Problem:    Cannot get window type for autocmd and preview window.
Solution:   Add types to win_gettype(). (Yegappan Lakshmanan, closes vim/vim#6277)
0fe937fd86

Cherry-pick test_preview.vim,test_window_cmd.vim changes
from patch v8.2.0522.
2020-11-25 02:45:00 -05:00
Jan Edmund Lazo
ede747c2cc vim-patch:8.2.0257: cannot recognize a terminal in a popup window
Problem:    Cannot recognize a terminal in a popup window.
Solution:   Add the win_gettype() function.
00f3b4e007
2020-11-25 02:10:44 -05:00
Jan Edmund Lazo
0c86e70bf0 vim-patch:8.2.1608: Vim9: getchar() test fails with GUI
Problem:    Vim9: getchar() test fails with GUI.
Solution:   Avoid that getchar(0) gets stuck on K_IGNORE.
15183b41c4

N/A patches for version.c:

vim-patch:8.1.0323: reverse order of VTP calls only needed the first time

Problem:    Reverse order of VTP calls only needed the first time.
Solution:   Add a flag to remember the state. (Nobuhiro Takasaki, closes vim/vim#3366)
2551c037e4

vim-patch:8.1.0777: Win32: using pipes for channel does not work well

Problem:    Win32: using pipes for channel does not work well.
Solution:   Use a larger buffer and handle overlaps. (Yasuhiro Matsumoto,
            closes vim/vim#3782)
b091f30bf3

vim-patch:8.1.0933: When using VTP scroll region isn't used properly

Problem:    When using VTP scroll region isn't used properly.
Solution:   Make better use of the scroll region. (Nobuhiro Takasaki,
            closes vim/vim#3974)
6982f42f33

vim-patch:8.1.0938: background color is wrong in MS-Windows console

Problem:    Background color is wrong in MS-Windows console when not using VTP.
Solution:   Use g_attrCurrent. (Nobuhiro Takasaki, closes vim/vim#3987)
21edde8742

vim-patch:8.2.0178: with VTP the screen may not be restored properly

Problem:    With VTP the screen may not be restored properly.
Solution:   Add another set of saved RGB values. (Nobuhiro Takasaki,
            closes vim/vim#5548)
df54382eac

vim-patch:8.2.0248: MS-Windows: dealing with deprecation is too complicated

Problem:    MS-Windows: dealing with deprecation is too complicated.
Solution:   Use io.h directly. Move _CRT_SECURE_NO_DEPRECATE to the build
            file. Suppress C4091 warning by setting "_WIN32_WINNT". (Ken
            Takata, closes vim/vim#5626)
2f18975088

vim-patch:8.2.0547: Win32: restoring screen not always done right

Problem:    Win32: restoring screen not always done right.
Solution:   Use a more appropriate method. (Nobuhiro Takasaki, closes vim/vim#5909)
e7f234120f

vim-patch:8.2.0581: Win32 console: the cursor position is always top-left

Problem:    Win32 console: the cursor position is always top-left.
Solution:   Revert the patch for restoring screen.
81ccbf199f

vim-patch:8.2.0592: MS-Windows with VTP: cursor is not made invisible

Problem:    MS-Windows with VTP: cursor is not made invisible.
Solution:   Output the code to make the cursor visible or invisible. (Nobuhiro
            Takasaki, closes vim/vim#5941)
2695de63e3

vim-patch:8.2.0646: t_Co uses the value of $COLORS in the GUI

Problem:    t_Co uses the value of $COLORS in the GUI. (Masato Nishihata)
Solution:   Ignore $COLORS for the GUI. (closes vim/vim#5992)
759d81549c

vim-patch:8.2.0658: HP-UX build fails when setenv() is not defined

Problem:    HP-UX build fails when setenv() is not defined.
Solution:   Change "colors" to "t_colors". (John Marriott)
affc8fd2cd

vim-patch:8.2.0793: MS-Windows: cannot build GUI with small features

Problem:    MS-Windows: cannot build GUI with small features. (Michael Soyka)
Solution:   Add #ifdef around use of windowsVersion. (Ken Takata)
1e1d2e89fa

vim-patch:8.2.1975: Win32: memory leak when encoding conversion fails

Problem:    Win32: memory leak when encoding conversion fails.
Solution:   Free the allocated memory. (Ken Takata, closes vim/vim#7277)
bbf9f344af

vim-patch:8.2.1991: Coverity warns for not using the ga_grow() return value

Problem:    Coverity warns for not using the ga_grow() return value.
Solution:   Bail out if ga_grow() fails. (Yegappan Lakshmanan, closes vim/vim#7303)
ca359cbedd

vim-patch:8.2.1992: build fails with small features

Problem:    Build fails with small features.
Solution:   Add #ifdef.
4792a679f9

vim-patch:8.2.1993: occasional failure of the netbeans test

Problem:    Occasional failure of the netbeans test.
Solution:   Add "silent!". (Yegappan Lakshmanan, closes vim/vim#7304)
50dc3ecc64

vim-patch:8.2.1994: MS-Windows: MinGW always does a full build

Problem:    MS-Windows: MinGW always does a full build.
Solution:   Only check if $OUTDIR exists. (Masamichi Abe, closes vim/vim#7311)
c4390fe6c0

vim-patch:8.2.1998: terminal Cmd test sometimes fails to close popup

Problem:    Terminal Cmd test sometimes fails to close popup.
Solution:   Add "term_finish" option.
27f4f6baee

vim-patch:8.2.1999: terminal popup test sometimes fails

Problem:    Terminal popup test sometimes fails.
Solution:   Wait for the popup to close.
e6329e4c55

vim-patch:8.2.2003: build error with +conceal but without +popupwin

Problem:    Build error with +conceal but without +popupwin.
Solution:   Add #ifdef. (Tom Ryder, closes vim/vim#7316)
1efefda623

vim-patch:8.2.2007: test for insert mode in popup is not reliable

Problem:    Test for insert mode in popup is not reliable.
Solution:   Wait for the popup to disappear. (Ozaki Kiichi, closes vim/vim#7321)
17ab28daa0

vim-patch:8.2.2008: MS-Windows GUI: handling channel messages lags

Problem:    MS-Windows GUI: handling channel messages lags.
Solution:   Reduce the wait time from 100 to 10 msec. (closes vim/vim#7097)
032f40afb8

vim-patch:8.2.2009: MS-Windows: setting $LANG in gvimext only causes problems

Problem:    MS-Windows: setting $LANG in gvimext only causes problems.
Solution:   Do not set $LANG. (Ken Takata, closes vim/vim#7325)
382319211a
2020-11-20 19:55:04 -05:00
Jan Edmund Lazo
5d6ecfa3c7 vim-patch:8.1.0805: too many #ifdefs
Problem:    Too many #ifdefs.
Solution:   Graduate FEAT_MBYTE, part 1.
135059724f
2020-11-12 21:22:06 -05:00
georg3tom
7777532ceb Removed restricted mode - Fix #11972 2020-11-11 18:07:58 +01:00
tamago324
40a742725c vim-patch:8.1.0268: file type checking has too many #ifdef (#13182)
Problem:    File type checking has too many #ifdef.
Solution:   Always define the S_IF macros. (Ken Takata, closes vim/vim#3306)
d569bb0299
2020-11-06 17:59:28 -05:00
skippi
6a0cb2a948 vim-patch:8.2.1747: result of expand() unexpectedly depends on 'completeslash'
Problem:    Result of expand() unexpectedly depends on 'completeslash'.
Solution:   Temporarily reset 'completeslash'. (Yasuhiro Matsumoto,
            closes vim/vim#7021)
8f187fc630
2020-10-26 15:22:23 -05:00
skippi
f8fd3d44ac vim-patch:8.1.1791: 'completeslash' also applies to globpath()
Problem:    'completeslash' also applies to globpath().
Solution:   Add the WILD_IGNORE_COMPLETESLASH flag. (test by Yasuhiro
            Matsumoto, closes vim/vim#4760)
2020-10-26 15:22:23 -05:00
Jan Edmund Lazo
b7cd7e0e5c vim-patch:8.2.1102: Coverity gets confused by an unnecessary NULL check
Problem:    Coverity gets confused by an unnecessary NULL check.
Solution:   Remove the check for NULL.
9004949221
2020-10-25 02:10:47 -04:00