Commit Graph

10532 Commits

Author SHA1 Message Date
Rob Pilling
5f60861f5a fnamemodify: fix handling of :r after :e #11165
- Test fnamemodify()
- Test handling of `expand("%:e:e:r")`.
- Fix :e:e:r on filenames with insufficiently many extensions

During `fnamemodify()`, ensuring that we don't go before the filename's
tail is insufficient in cases where we've already handled a ":e"
modifier, for example:

```
"path/to/this.file.ext" :e:e:r:r
         ^    ^-------- *fnamep
         +------------- tail
```

This means for a ":r", we'll go before `*fnamep`, and outside the bounds
of the filename. This is both incorrect and causes neovim to exit with
an allocation error.

We exit because we attempt to calculate `s - *fnamep` (line 23948).
Since `s` is before `*fnamep`, we caluclate a negative length, which
ends up being interpreted as an amount to allocate, causing neovim to
exit with ENOMEM (`memory.c:xmalloc`).

We must instead ensure we don't go before `*fnamep` nor `tail`.
The check for `tail` is still relevant, for example:

```
"path/to/this.file.ext" :r:r:r
 ^       ^------------- tail
 +--------------------- *fnamep
```
Here we don't want to go before `tail`.

close #11165
2019-10-10 22:33:42 -07:00
Björn Linse
b772b86d2b Remove "highbright bold" conversion. Fixes #11190
When using TUI host terminal should take care of this (regardless
if 'termguicolors' is active or not). For GUI the behavior doesn't make
sense (GUI should display bold attr as bold always).
2019-10-10 23:59:59 +02:00
Justin M. Keyes
3b3a409781 Merge #11077 'vim-patch:8.1.{1354,1356,1362,1588}' 2019-10-07 21:51:04 -07:00
Jurica Bradaric
0586a4b512 vim-patch:8.1.1588: in :let-heredoc line continuation is recognized
Problem:    In :let-heredoc line continuation is recognized.
Solution:   Do not consume line continuation. (Ozaki Kiichi, closes vim/vim#4580)
e96a2498f9
2019-10-07 14:14:13 +02:00
Jurica Bradaric
c84b39150f vim-patch:8.1.1362: code and data in tests can be hard to read
Problem:    Code and data in tests can be hard to read.
Solution:   Use the new heredoc style. (Yegappan Lakshmanan, closes vim/vim#4400)
c79745a82f
2019-10-07 14:14:13 +02:00
Jurica Bradaric
b5ac11139e vim-patch:8.1.1356: some text in heredoc assignment ends the text
Problem:    Some text in heredoc assignment ends the text. (Ozaki Kiichi)
Solution:   Recognize "let v =<<" and skip until the end.
8471e57026
2019-10-07 14:14:13 +02:00
Jurica Bradaric
b1ada8ec21 vim-patch:8.1.1354: getting a list of text lines is clumsy
Problem:    Getting a list of text lines is clumsy.
Solution:   Add the =<< assignment. (Yegappan Lakshmanan, closes vim/vim#4386)
f5842c5a53
2019-10-07 14:14:13 +02:00
Jan Edmund Lazo
97cdfdcde2 Remove dead code 2019-10-06 21:22:02 -04:00
Jan Edmund Lazo
09232958ff vim-patch:8.1.2120: some MB_ macros are more complicated than necessary
Problem:    Some MB_ macros are more complicated than necessary. (Dominique
            Pelle)
Solution:   Simplify the macros.  Expand inline.
1614a14901
2019-10-06 21:11:38 -04:00
Daniel Hahler
c8fe2a8d23 test/old: add test_fnamemodify.vim (#11168)
Moved to a new-style test in vim/vim@610cc1b9b (v7.4.1652).

Ref: https://github.com/neovim/neovim/pull/11165#issuecomment-538785588
2019-10-06 23:35:52 +02:00
Justin M. Keyes
93bceac9bd Merge #11157 from janlazo/vim-8.1.2113
vim-patch:8.1.{59, 586, 2113}
2019-10-06 12:32:27 -07:00
Jan Edmund Lazo
d1abd6513e vim-patch:8.1.0586: :digraph output is not easy to read
Problem:    :digraph output is not easy to read.
Solution:   Add highlighting for :digraphs. (Marcin Szamotulski, closes vim/vim#3572)
            Also add section headers for :digraphs!.
eae8ae1b2b
2019-10-06 09:43:39 -04:00
Jan Edmund Lazo
b007e5d882 vim-patch:8.1.0059: displayed digraph for "ga" wrong with 'encoding' "cp1251"
Problem:    Displayed digraph for "ga" wrong with 'encoding' "cp1251".
Solution:   Convert from 'encoding' to "utf-8" if needed. (closes vim/vim#3015)
bc5020aa4d
2019-10-06 09:34:47 -04:00
Jurica Bradarić
fe074611cd vim-patch:8.1.1371: cannot recover from a swap file #11081
Problem:    Cannot recover from a swap file.
Solution:   Do not expand environment variables in the swap file name.
            Do not check the extension when we already know a file is a swap
            file.  (Ken Takata, closes 4415, closes vim/vim#4369)
99499b1c05
2019-10-05 20:35:48 -07:00
Marvim the Paranoid Android
1396cc9abb version.c: update [ci skip] #10981
vim-patch:8.0.0934: change to struts.h missing in patch
vim-patch:8.0.1176: job_start() does not handle quote and backslash correctly
vim-patch:8.0.1492: memory leak in balloon_split()
vim-patch:8.0.1582: in the MS-Windows console mouse movement is not used
vim-patch:8.0.1619: Win32 GUI: crash when winpty is not installed
vim-patch:8.0.1624: options for term_dumpdiff() and term_dumpload() not implemented
vim-patch:8.0.1665: when running a terminal from the GUI 'term' is not useful
vim-patch:8.0.1666: % argument in ch_log() causes trouble
vim-patch:8.0.1685: can't set ANSI colors of a terminal window
vim-patch:8.0.1711: term_setsize() is not implemented yet
vim-patch:8.0.1722: cannot specify a minimal size for a terminal window
vim-patch:8.0.1725: terminal debugger doesn't handle command arguments
vim-patch:8.0.1742: cannot get a list of all the jobs
vim-patch:8.0.1798: MS-Windows: file considered read-only too often
vim-patch:8.0.1835: print document name does not support multi-byte

vim-patch:8.1.0080: can't see the breakpoint number in the terminal debugger
vim-patch:8.1.0156: MS-Windows compiler warning
vim-patch:8.1.0226: too many #ifdefs
vim-patch:8.1.0722: cannot build without the virtualedit feature
vim-patch:8.1.0745: compiler warnings for signed/unsigned string
vim-patch:8.1.0752: one more compiler warning for signed/unsigned string
vim-patch:8.1.2025: MS-Windows: Including shlguid.h causes problems for msys2
vim-patch:8.1.2027: MS-Windows: problem with ambiwidth characters
vim-patch:8.1.2033: cannot build with tiny features
vim-patch:8.1.2049: cannot build tiny version
vim-patch:8.1.2061: MS-Windows GUI: ":sh" crashes when trying to use a terminal
vim-patch:8.1.2075: get many log messages when waiting for a typed character
vim-patch:8.1.2078: build error with +textprop but without +terminal
vim-patch:8.1.2084: Amiga: cannot get the user name
vim-patch:8.1.2086: missing a few changes for the renamed files
vim-patch:8.1.2088: renamed libvterm mouse.c file not in distributed file list
vim-patch:8.1.2090: not clear why channel log file ends
vim-patch:8.1.2101: write_session_file() often defined but not used
vim-patch:8.1.2102: can't build with GTK and FEAT_GUI_GNOME
vim-patch:8.1.2112: build number for ConPTY is outdated

The following `if_pyth` patch seems to be N/A. In `~/.local/`, python 2 and 3 have their own subfolders in `~/.local/include/` and `~/.local/lib/`. `PYTHONUSERBASE` is enough to make the user modules work (on my machine) for the legacy tests.
vim-patch:8.0.1451: difficult to set the python home directories properly

The following patch requires `set compatible` and unsupported `cpoptions`:
vim-patch:8.1.1331: test 29 is old style
2019-10-05 20:13:47 -07:00
Jan Edmund Lazo
5581ffac74 vim-patch:8.1.2113: ":help expr-!~?" only works after searching
Problem:    ":help expr-!~?" only works after searching.
Solution:   Escape "~" after "expr-". (closes vim/vim#5015)
9ca250855b
2019-10-05 11:17:30 -04:00
Daniel Hahler
402afb0895 Makefile: use $TMPDIR below src/nvim/testdir (#11153)
This makes it ignored/cleaned automatically.
It was made absolute in 8821579ba, but to the root back then.
2019-10-04 22:10:16 +02:00
erw7
b4ea09cc06 Fix potential deadlock #11151
ELOG may call os_getenv and os_setenv internally. In that case, a
deadlock occurs.
2019-10-04 08:18:24 -07:00
Daniel Hahler
a341eb6087 win_line: update w_last_cursorline always
Vim patch 8.1.0856 (54d9ea6) caused a performance regression in Neovim,
when `set conceallevel=1 nocursorline` was used, since then due to
refactoring in 23c71d5 `w_last_cursorline` would never get updated
anymore.

Adds/uses `redrawdebug+=nodelta` for testing this.

Fixes https://github.com/neovim/neovim/issues/11100.
Closes https://github.com/neovim/neovim/pull/11101.
2019-10-04 08:48:57 +02:00
Daniel Hahler
c3ae5e1375 test/old: align with Vim #11096 2019-10-03 00:32:14 -07:00
Zach Wegner
8d68a37c5a refactor: wrap common plines() usage in plines_win_full() #11141 2019-10-02 23:06:05 -07:00
Daniel Hahler
f96d1e6bc4 tui: fix handling of bg response after suspend (#11145)
`tui_terminal_after_startup` gets called right after resuming from
suspending (via `Ctrl-z`) already (not delayed as with the startup
itself), and would set `waiting_for_bg_response` to false then directly.
This results in the terminal response not being processed then anymore,
and leaking into Neovim itself.

This changes it to try 5 times always, which means that it typically
would stop after a few characters of input from the user typically, e.g.
with tmux, which does not send a reply.

While it might be better to have something based on the time (e.g. only
wait for max 1s), this appears to be easier to do.

Fixes regression in 8a4ae3d.
2019-10-03 08:04:24 +02:00
Justin M. Keyes
30479417e8 Merge #11087 from janlazo/vim-8.1.0010
vim-patch:8.1.{10,230,315,330,514,517,518,1327,1347,1758,2072,2074,2091,2095,2103}
2019-10-02 22:43:59 -07:00
Jan Edmund Lazo
4518f230fa vim-patch:8.1.0330: the qf_add_entries() function is too long
Problem:    The qf_add_entries() function is too long.
Solution:   Split in two parts. (Yegappan Lakshmanan)
6f6ef7c195
2019-10-02 00:52:22 -04:00
Daniel Hahler
0c1be45ea0 shell: improve displaying of pulse (#11130)
- output "[...]" to indicate throttling is being used, instead of just
  an empty line
- go to beginning of line after displaying the pulse, so that following
  output is displayed over it
2019-10-02 06:26:57 +02:00
Jan Edmund Lazo
ada2ec4416 vim-patch:8.1.0315: helpgrep with language doesn't work properly
Problem:    Helpgrep with language doesn't work properly. (Takuya Fujiwara)
Solution:   Check for the language earlier. (Hirohito Higashi)
c631f2df62
2019-10-01 22:27:45 -04:00
Jan Edmund Lazo
655085204e vim-patch:8.1.0230: directly checking 'buftype' value
Problem:    Directly checking 'buftype' value.
Solution:   Add the bt_normal() function. (Yegappan Lakshmanan)
91335e5a67
2019-10-01 22:27:45 -04:00
Jan Edmund Lazo
8b67c8f8c6 vim-patch:8.1.2095: leaking memory when getting item from dict
Problem:    Leaking memory when getting item from dict.
Solution:   Also free the key when not evaluating.
a893194d91
2019-10-01 22:27:44 -04:00
Jan Edmund Lazo
74947203af vim-patch:8.1.2091: double free when memory allocation fails
Problem:    Double free when memory allocation fails. (Zu-Ming Jiang)
Solution:   Use VIM_CLEAR() instead of vim_free(). (closes vim/vim#4991)
0f1c6708fd
2019-10-01 22:27:44 -04:00
Jan Edmund Lazo
56c860ac4a quickfix: fix pvs/v547 errors 2019-10-01 22:27:44 -04:00
Jan Edmund Lazo
8732cce315 vim-patch:8.1.2074: test for SafeState autocommand is a bit flaky
Problem:    Test for SafeState autocommand is a bit flaky.
Solution:   Add to list of flaky tests.
0d0c3ca007
2019-10-01 22:27:44 -04:00
Jan Edmund Lazo
90c2abc53f vim-patch:8.1.1347: fractional scroll position not restored after closing window
Problem:    Fractional scroll position not restored after closing window.
Solution:   Do restore fraction if topline is not one.
bd2d68c2f4
2019-10-01 22:27:44 -04:00
Jan Edmund Lazo
6ed20ff25c vim-patch:8.1.1327: unnecessary scroll after horizontal split
Problem:    Unnecessary scroll after horizontal split.
Solution:   Don't adjust to fraction if all the text fits in the window.
            (Martin Kunev, closes vim/vim#4367)
a9b2535f44
2019-10-01 22:27:43 -04:00
Jan Edmund Lazo
e8144d204c vim-patch:8.1.0518: Test_window_split_edit_bufnr() fails on AppVeyor
Problem:    Test_window_split_edit_bufnr() fails on AppVeyor.
Solution:   Disable the failing part for now.
8617b40159
2019-10-01 22:27:43 -04:00
Jan Edmund Lazo
14f3287b98 vim-patch:8.1.0517: Test_window_split_edit_alternate() fails on AppVeyor
Problem:    Test_window_split_edit_alternate() fails on AppVeyor.
Solution:   Disable the failing part for now.
d42333d8e9
2019-10-01 22:27:43 -04:00
Jan Edmund Lazo
17e96d96ba vim-patch:8.1.0514: CTRL-W ^ does not work when alternate buffer has no name
Problem:    CTRL-W ^ does not work when alternate buffer has no name.
Solution:   Use another method to split and edit the alternate buffer. (Jason
            Franklin)
1bbb619483
2019-10-01 22:27:43 -04:00
Jan Edmund Lazo
8d0bc3c189 vim-patch:8.1.1758: count of g$ not used correctly when text is not wrapped
Problem:    Count of g$ not used correctly when text is not wrapped.
Solution:   Do use the count. (Christian Brabandt, closes vim/vim#4729, closes vim/vim#4566)
d5c8234517
2019-10-01 22:27:43 -04:00
Jan Edmund Lazo
24c4d4e125 vim-patch:8.1.2072: "gk" moves to start of line instead of upwards
Problem:    "gk" moves to start of line instead of upwards.
Solution:   Fix off-by-one error. (Christian Brabandt, closes vim/vim#4969)
03ac52fc02
2019-10-01 22:27:43 -04:00
Jan Edmund Lazo
0253f0cd92 vim-patch:8.1.0010: efm_to_regpat() is too long
Problem:    efm_to_regpat() is too long.
Solution:   Split off three functions. (Yegappan Lakshmanan, closes vim/vim#2924)
6bff719f7e
2019-10-01 22:27:42 -04:00
Daniel Hahler
8e25cf3881 patch_terminfo_bugs: TERM=xterm with non-xterm: ignore smglr (#11132)
"smglr" was added for TERM=xterm recently to the terminfo database,
which causes display issues with terminals that use `TERM=xterm` by
default for themselves, although not supporting it.

This patch makes "smglr" to be ignored then.

Fixes https://github.com/neovim/neovim/issues/10562
2019-10-02 04:07:10 +02:00
Daniel Hahler
b7d6caaa03 Fix redraw regression with w_p_cole in visual mode
Fixes https://github.com/neovim/neovim/issues/11024, regressed in 23c71d51.
Closes https://github.com/neovim/neovim/pull/11120.
2019-10-02 03:51:46 +02:00
Daniel Hahler
30ae60e7ca Fix/revisit git-describe enhancement (#11124)
* Fix/keep massaging git-describe result

Ref: https://github.com/neovim/neovim/pull/11117#issuecomment-536416223

* build: revisit generation of version from Git

Fixes "make clean && make", where "auto/versiondef.h" would be missing
since b18b84d - because BYPRODUCTS are apparently removed when cleaning.

This includes the following improvements/changes:

- do not run git-describe during CMake's configure phase just for
  reporting
- do not print with changed Git version (too noisy, simplifies code)

* Move to src/nvim (included before config) for easier flow

* fallback to describe always, write empty include file

* update_version_stamp.lua: use prefix always
2019-10-02 03:45:59 +02:00
Daniel Hahler
8a4ae3d664 tui: improve handle_background_color: short-circuit (#11067)
* handle_background_color: short-circuit if handled already

* Unit tests for handle_background_color

* set waiting_for_bg_response to false in tui_terminal_after_startup
  By then it should have been received.
2019-09-30 22:00:55 +02:00
Björn Linse
dd26bd5974 screen: don't crash on invalid grid cells being recomposed 2019-09-30 19:05:54 +02:00
Björn Linse
ce637d0ef1 Merge pull request #11115 from bfredl/wildmenumode
cmdline: wildmenumode() should be true with wildoptions+=pum
2019-09-29 15:55:18 +02:00
Daniel Hahler
34d55f8607 terminfo_start: keep first flushing of ui buffer (#11118)
Initially done in 3626d2107 (#11074, for #11062), it was reverted then
in 445f2f409 (#11083, which added flushing later).

But it is still required here to avoid the reporting of the background
response with urxvt/kitty (`nvim -u NONE -cq`).
Apparently I've tested this not enough with 445f2f409 (probably only within tmux).
2019-09-29 03:06:36 +02:00
Björn Linse
0636b25f28 cmdline: wildmenumode() should be true with wildoptions+=pum 2019-09-28 21:00:27 +02:00
Björn Linse
d5a69eb076 tree-sitter: handle node equality 2019-09-28 17:46:25 +02:00
Björn Linse
e0d6228978 tree-sitter: use "range" instead of "point_range" consistently in lua API 2019-09-28 17:46:25 +02:00
Björn Linse
06ee45b9b1 tree-sitter: fix lint, delete "demo" plugin (replaced by functional tests) 2019-09-28 17:46:25 +02:00