Commit Graph

262 Commits

Author SHA1 Message Date
Jan Edmund Lazo
d2be261e8d Merge pull request #14403 from seandewar/vim-8.2.1933
vim-patch:8.2.{0174,1933,1935,1946,2286,2287}
2021-05-09 17:08:21 -04:00
Jan Edmund Lazo
5165513198 Merge pull request #13664 from ivechan/win_exectute
vim-patch:8.1.{1418,1425,1832,2124},8.2.{0137, 2340}
2021-05-07 08:34:28 -04:00
Shougo
4be0e92db0 vim-patch:8.1.1378: delete() can not handle a file name that looks like a pattern (#12784)
Problem:    Delete() can not handle a file name that looks like a pattern.
Solution:   Use readdir() instead of appending "/*" and expanding wildcards.
            (Ken Takata, closes vim/vim#4424, closes vim/vim#696)
701ff0a3e5
2021-05-07 08:07:13 -04:00
jing
03b3ff8610 vim-patch:8.2.2340: win_execute() unexpectedly returns number zero when failing
Problem:    win_execute() unexpectedly returns number zero when failing.
Solution:   Return an empty string. (closes vim/vim#7665)
37487e16da
2021-05-06 23:45:16 +08:00
jing
ec3524da29 vim-patch:8.1.2124: ruler is not updated if win_execute() moves cursor
Problem:    Ruler is not updated if win_execute() moves cursor.
Solution:   Update the status line. (closes vim/vim#5022)
345f28df54
2021-05-06 23:45:16 +08:00
jing
73154bbae0 vim-patch:8.1.1832: win_execute() does not work in other tab
Problem:    Win_execute() does not work in other tab. (Rick Howe)
Solution:   Take care of the tab. (closes vim/vim#4792)
820680b9ff
2021-05-06 23:45:16 +08:00
jing
97abf8ee63 vim-patch:8.1.1425: win_execute() does not set window pointers properly
Problem:    Win_execute() does not set window pointers properly.
Solution:   Use switch_win_noblock().  Also execute autocommands in a popup
            window.
89adc3a137
2021-05-06 23:45:16 +08:00
jing
f6518e5516 vim-patch:8.1.1418: win_execute() is not implemented yet
Problem:    Win_execute() is not implemented yet.
Solution:   Implement it.
868b7b6712
2021-05-06 23:44:47 +08:00
Jan Edmund Lazo
f70ecbd4dc vim-patch:8.2.1166: once mouse move events are enabled getchar() returns them
Problem:    Once mouse move events are enabled getchar() returns them.
Solution:   Ignore K_MOUSEMOVE in getchar(). (closes vim/vim#6424)
ae97b94176
2021-05-06 00:26:37 -04:00
Sean Dewar
65f35e0c7d vim-patch:8.2.1588: cannot read back the prompt of a prompt buffer
Problem:    Cannot read back the prompt of a prompt buffer.
Solution:   Add prompt_getprompt(). (Ben Jackson, closes vim/vim#6851)
077cc7aa0e

Updated prompt_getprompt() doc to cb80aa2d53
and removed mention of method syntax usage (not supported by Nvim).
2021-04-21 14:55:04 +01:00
Sean Dewar
60870d1531 eval: port tv_get_buf_from_arg()
Cherry-picked from v8.2.1562, but uses Nvim's tv_check_str_or_nr().
Required for v8.2.1588.

It isn't used for f_bufnr() to avoid a double error message if the first
argument isn't a number or string similiar to what's seen in Vim.
2021-04-21 11:29:47 +01:00
Sean Dewar
6a0b8cbd81 vim-patch:8.2.1933: cannot sort using locale ordering
Problem:    Cannot sort using locale ordering.
Solution:   Add a flag for :sort and sort() to use the locale. (Dominique
            Pellé, closes vim/vim#7237)
55e29611d2
2021-04-20 10:12:02 +01:00
Jan Edmund Lazo
1a1fe58f7e vim-patch:8.0.1505: debugger can't break on a condition
Problem:    Debugger can't break on a condition. (Charles Campbell)
Solution:   Add ":breakadd expr". (Christian Brabandt, closes vim/vim#859)
c6f9f739d3

Do not port "has_watchexpr()" to avoid dead code.
"has_watchexpr()" always returns 0 because "debug_expr" is always 0.

Restore "eval_expr()" as a wrapper to allocate "typval_T" for "eval0()".
Remove it in later patches.

Include "typval_compare()" changes from patch v8.1.0958,
partially ported in 8b60368c1b.

Close https://github.com/neovim/neovim/pull/12373

N/A patches for version.c:

vim-patch:8.2.2720: GTK menu tooltip moves the cursor

Problem:    GTK menu tooltip moves the cursor.
Solution:   Position the cursor after displaying the tooltip.  Do not show the
            tooltip when editing the command line.
01ac0a1f66
2021-04-08 07:28:46 -04:00
Shougo Matsushita
356a35a848 vim-patch:8.2.2704: adding a lot of completions can be a bit slow
Problem:    Adding a lot of completions can be a bit slow.
Solution:   Use fast_breakcheck() instead of ui_breakcheck() when adding a
            list of completions. (Ben Jackson, closes vim/vim#8061)
440cf096fa
2021-04-05 09:22:26 +09:00
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