| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: The list returned by 'quickfixtextfunc' is never
unreferenced, so it is not freed until garbage collection.
Solution: Unreference the list after filling the quickfix buffer
(Volodymyr Chernetskyi).
closes: vim/vim#21437
https://github.com/vim/vim/commit/84d86c65d3bc612320c3d38c2fc987c5cdd81ae9
Co-authored-by: Volodymyr Chernetskyi <19735328+chernetskyi@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Case-folded regexp matches can end inside a UTF-8 character
when the input is longer than the literal pattern.
Solution: Return the input byte length after a successful comparison
even when it exceeds the pattern byte length, and test literal
replacements and backreferences (Volodymyr Chernetskyi).
related: vim/vim#14756
related: vim/vim#21212
closes: vim/vim#21439
https://github.com/vim/vim/commit/c9a9517ce8498256b50576e8291709083b607d70
Co-authored-by: Volodymyr Chernetskyi <19735328+chernetskyi@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
case-folded widths
Problem: NFA literal matches miss characters with different case-folded
widths, including when retrying after a failed suffix match.
Solution: Advance past the actual input character in both paths and test
string and buffer searches (Volodymyr Chernetskyi).
related: vim/vim#14294
closes: vim/vim#21438
https://github.com/vim/vim/commit/b3affdd29ea4b1017f5c870824a9e4576731fa95
Co-authored-by: Volodymyr Chernetskyi <19735328+chernetskyi@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
| |
Problem: Cannot complete the command after ++once or ++nested for
:autocmd.
Solution: Skip over these flags in set_context_in_autocmd() (glepnir).
closes: vim/vim#21429
https://github.com/vim/vim/commit/cf57ec0db8a9bc9926c7ede86a8586f057545723
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
vim-patch:9.2.1191: crash with "//e" when only a substitute pattern exists
Problem: Crash when using "//e" or "//" while there is a substitute
pattern but no previous search pattern (after v9.2.0374).
Solution: Use the previous pattern selected for an empty pattern
(Jonas Ornfelt).
related: vim/vim#19998
closes: vim/vim#21533
AI-assisted
https://github.com/vim/vim/commit/c58607c9a0579de0da909fc46f68144a01378af1
|
| |
|
|
|
|
|
|
|
|
|
| |
via filename
While at it, also fix E716 when calling gnat.Get_Command('Find')
by renaming the key from 'Find_Program' to the expected 'Find_Command'.
https://github.com/vim/vim/commit/26d8c851889df19e93dde2a3572e1e356b3a84e3
Co-authored-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
|
| |
|
|
|
|
| |
https://github.com/vim/vim/commit/abb6f3ea4cf61ec1b5702a6fbb6be2594549fb16
Co-authored-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: Fuzzy completion sort order is unstable for equal scores.
Solution: Remember the list position when a match is first scored and
use it to break ties (glepnir).
closes: vim/vim#21443
https://github.com/vim/vim/commit/8c735cae9e589d1e587127386d6bf6869caed93b
Co-authored-by: glepnir <glephunter@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: [security]: possible code injection via rubycomplete
(tnshima)
Solution: Do not use eval() for arbitrary buffer text
Github Security Advisory:
https://github.com/vim/vim/security/advisories/GHSA-4xgr-vqh2-xfx8
https://github.com/vim/vim/commit/05d704d2856dbb75e95bd33cf222c2e6264fff8b
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Fixed-size windows are resized when sharing free space to a
group of windows.
Solution: When resizing a group of windows, skip windows with a fixed
size if possible (Aryan).
fixes: vim/vim#21478
closes: vim/vim#21479
https://github.com/vim/vim/commit/354c4c0d04c3524b74f8ce6175efebda6cfa4c67
Co-authored-by: Aryan <ether9095cable@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: setreg() with blockwise type computes a different width for
control characters, NUL and illegal UTF-8 bytes than a
blockwise yank does.
Solution: Use byte2cells() for ASCII bytes and count a truncated UTF-8
sequence as an illegal byte (bfredl).
This applies to:
- ASCII control chars like ^G
- truncated or invalid UTF-8 bytes, displayed as <c4>
- embedded NUL byte, displayed as ^@
The function utf_ptr2cells_len() is only used for registers, so there
should be no surprising change elsewhere.
closes: vim/vim#21477
https://github.com/vim/vim/commit/0f07525b20807e68df43274c5ebbae952b02b56f
Co-authored-by: bfredl <bjorn.linse@gmail.com>
|
| |
|
|
|
|
|
|
|
| |
Problem: Eval test is still old style.
Solution: Change into new style tests. (Yegappan Lakshmanan, closes vim/vim#6009)
https://github.com/vim/vim/commit/339d60c89bef0315343a6128a1b4826510b0efe4
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: getfsize() checks the file type twice.
Solution: Use S_ISDIR macro instead of calling mch_isdir()
(Yasuhiro Matsumoto).
On MS-Windows: 40.8 us -> 26.6 us for a file, 41.1 us -> 25.3 us for
a directory.
closes: vim/vim#21448
Assisted-by: AI
https://github.com/vim/vim/commit/ea1e40e5e06b1a6a5abebe77223f4a7e36930a87
Co-authored-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
|
| |
|
|
|
|
|
|
| |
Problem: A few typos in code and tests.
Solution: Fix them (zeertzjq).
closes: vim/vim#21441
https://github.com/vim/vim/commit/1992e432a111641ca89122e0632cad36aa6e8b6c
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
(#42251)
Problem: Visual highlight not updated for partially visible line at the
bottom of the window.
Solution: Limit the last line of update to w_botline instead of the line
above (zeertzjq).
fixes: vim/vim#21451
closes: vim/vim#21452
https://github.com/vim/vim/commit/f7ea0407aa2e03e66fec35beb0bca0411be0b98e
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem:
'isident' decides how env var names are parsed, which is more
"confusing" than "useful":
- Changing 'isident' (for 'define' or "\i") can break `$NAME` expansion.
- Its default byte ranges let multibyte names work on Windows (`$aあ`)
but not Unix (`$é`).
Solution:
Ignore 'isident' when parsing env var names.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: A DiffUpdated autococmd wiping the current buffer
can cause a use-after-free (Evaopo).
Solution: Disallow changing the window layout while DiffUpdated
autocommand runs.
closes: vim/vim#21177
https://github.com/vim/vim/commit/d81720e01a7ce79afa2c55aff5270d9f394ccbbe
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
|
| |
Problem: tests: Test_diff_screen() fails on BSD
Solution: Use gdiff on BSD systems if available (zeertzjq).
related: vim/vim#19336
https://github.com/vim/vim/commit/991434d8dfe40770f3214e549df16ec3369316a9
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: CI: Fix MacOS-14 tests (after 9.1.0070)
Solution: Re-enable sound tests by granting Mic access,
disable Test_diff_screen because of buggy MacOS diff
(non GNU version), re-enable Test_term_gettitle()
(Yee Cheng Chin)
macos-14 runner was turned on in vim/vim#13943, but it had to turn off a few
tests in order for CI to run. Re-enable them and fix the underlying
issues.
* `Test_diff_screen`: The test failure is due to a bug in Apple's diff
utility. Apple introduced a new diff tool based on FreeBSD in macOS 13
and it has buggy behaviors when using unified diff (`-U0`) and the
diff is on the first line of the file. Simply disable this test for
now if we detect Apple diff (instead of the old GNU diff). Can
re-enable this in the future if Apple fixes the issue.
* `Test_play_event` / `Test_play_silent`: GitHub Actions currently has
an issue with playing sound in CI in macos-14 runners. It for some
reason triggers a microphone permission dialog popup which blocks the
CI action (see https://github.com/actions/runner-images/issues/9330).
To fix this, add a temporary step in macos-14 to manually allow
microphone permissions in the runner.
* `Test_term_gettitle`: I could not reproduce the failure, so I just
turned it on and it seems to run just fine. Maybe it's a timing issue
and whatnot but either way that should be fixed when we can reproduce
the issue.
closes: vim/vim#14032
https://github.com/vim/vim/commit/49f2ba6d41d3c6142deaa4a50b0b16e03969a904
Co-authored-by: Yee Cheng Chin <ychin.git@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: CI: testsuite not run on M1 Mac
Solution: Make it run on gh runners for M1, disable failing tests for
now, until we figure the problem with the failings tests out
(rhysd)
closes: vim/vim#13943
https://github.com/vim/vim/commit/e93d5cadec6323d6be90f1ec29066441ffbc9477
Co-authored-by: rhysd <lin90162@yahoo.co.jp>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: "rvim" can execute a shell through :diffpatch.
Solution: Disallow the shell "patch" command.
----
"No_" prefix implies the test must not run instead of being skipped.
N/A but ported to minimize patch conflicts.
----
https://github.com/vim/vim/commit/23a971da506249fc8388f06cd5c011b83406ac5c
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
skipped (#42226)
Problem: Vim9: :append parsing depends on whether command is skipped
(after 9.2.1159).
Solution: Do not discard text up to "." when skipping in Vim9 script
(zeertzjq).
closes: vim/vim#21415
https://github.com/vim/vim/commit/6d862f58dd6d51b292dd26ae658b02fb1e691ca5
|
| |
|
|
|
|
|
|
|
|
|
| |
'tabstop' (#42202)
Problem: Wrong cursor position with 'linebreak' and large 'tabstop'.
Solution: Avoid "colmax" becoming smaller than the whitespace char's
final column (zeertzjq).
closes: vim/vim#21418
https://github.com/vim/vim/commit/a3082ffc13f8115b0c815492fa8f437d2b96d20c
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
as commands (#42196)
Problem: In a block that is not executed, the text lines of :append,
:insert and :change are parsed as commands, so e.g. a text
line "endif" ends the block
Solution: Read and discard the text up to "." while skipping. Add the
commands to the ":help :bar" list.
closes: vim/vim#21331
https://github.com/vim/vim/commit/ae8837c19d33801426cb2dfa1cdbd7be7c1cf8e2
Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
|
| |
|
|
|
|
|
|
|
|
| |
Problem: Tests pass an invalid 'B' flag to writefile()
(after v9.2.1149).
Solution: Remove the flag (zeertzjq).
closes: vim/vim#21408
https://github.com/vim/vim/commit/d8249e23d9b31cd859482102e06ad19a56db00df
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: read_tree_node() does not check for a negative return
value from getc() causing a crash. (Yuyao Jiang)
Solution: Reject a negative values.
related: vim/vim#21373
https://github.com/vim/vim/commit/366777aedf950a099685086a22e09489884189c7
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Sourcing lines from a buffer drops the line after one that is
248 bytes long: it is taken for the rest of that line.
Solution: Only read more of a line when reading from a file; a line of
a buffer is taken as a whole (Hirohito Higashi).
closes: vim/vim#21392
https://github.com/vim/vim/commit/7aa9820618ba579fa0374ffd43655bca5f4407bc
Cherry-pick some changes from patch 9.0.0613.
Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
|
| |
|
|
|
|
|
|
| |
Problem: Crash when using NUL in buffer that uses :source.
Solution: Don't get a next line when skipping over NL.
https://github.com/vim/vim/commit/69082916c8b5d321545d60b9f5facad0a2dd5a4e
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
(#42191)
Problem: Missing search stat when search pattern has semicolon and no
trailing slash (after 9.1.0426).
Solution: Decrement patlen correctly in do_search() (zeertzjq).
closes: vim/vim#21405
related: neovim/neovim#42057
related: neovim/neovim#42150
https://github.com/vim/vim/commit/2c88f7007f67033d2069e5f5a55c0a20500af20b
|
| |
|
|
|
|
|
|
| |
Problem: Python 3: non-utf8 character cannot be handled.
Solution: Change the string decode. (Björn Linse, closes vim/vim#1053)
https://github.com/vim/vim/commit/2e2f52a4a0fd560d37a11a7383a4d52b63ca6cfc
Co-authored-by: Bram Moolenaar <Bram@vim.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: Using assert_true() does not show value on failure.
Solution: Use assert_inrange(). (closes vim/vim#10593)
----
Cherry-pick "min_timeout" from patch v8.2.5057.
----
https://github.com/vim/vim/commit/cdc6a43559d5b880f81efceb849f40c20af1ada1
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: diff_refine_inline_word_highlight() checks the index of the
line after the block, but uses the index of the last line of
the block. A block with zero lines makes the index negative
and causes heap-buffer underflow (Yuyao Jiang).
Solution: Check that the indexes are not negative.
related: vim/vim#21373
https://github.com/vim/vim/commit/f84ab19890c467fe2d1c001494e996178ece6e11
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: MB_MAXBYTES assumes a screen cell holds a three byte character plus
six composing characters of three bytes each, but both can take
more bytes, so utfc_char2bytes() causes an overflow (Yuyao Jiang)
Solution: Raise MB_MAXBYTES to 30: six bytes for the character plus MAX_MCO
composing characters of four bytes each.
related: vim/vim#21373
https://github.com/vim/vim/commit/f5a01332dac3f29a5f7bc905150b85b472c44646
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Problem: repeat() with a large number can cause an overflow
(Yuyao Jiang)
Solution: Add overflow check for the various repeat() functions.
related: vim/vim#21373
https://github.com/vim/vim/commit/70903d2be29ddf759ea55cfa6d343c026ea04779
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem:
- `[count]Q` and `{Visual}Q` are implemented as ad hoc utils, because
`Q` is not an "operator".
- `Q` always "toggles", it is not "idempotent".
- Various *cursor-relative* marks (`'.`, `'[`) are not saved/restored
per-cursor, so they don't work during cascade.
- Insert cascade clobbers the primary's `'^` and changelist.
Solution:
- Introduce the `zq{motion}` operator, which places cursors at every
reachable `{motion}`.
- `{Visual}Q` is now an alias to `{Visual}zqj`.
- Introduce `1Q` and `2Q` for idempotent cursor placement.
- Drop `[count]Q`, it's redundant with `zqgn`.
- Classify cursor-relative marks as `type=motion` instead of
`type=jump`. Save/restore per-cursor during cascade.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: list2blob() appends one byte at a time.
Solution: Preallocate the buffer and write the bytes directly
(Yasuhiro Matsumoto).
Cover large conversions, descending ranges, and invalid trailing items.
All 33 blob tests pass. Local five-run medians improve by 17% for 4096
items and 19% for 65536 items.
closes: vim/vim#21385
https://github.com/vim/vim/commit/c77608d35e899a0103d022fb9edb19c58ea00396
Co-authored-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
characters (#42125)
Problem: With 'ignorecase' and UTF-8, the old regexp engine no longer
matches U+017F and U+212A against [a-z]/[A-Z], since it emits
an ASCII only range (after v9.2.1131).
Solution: Keep the [a-z] and [A-Z] ranges as a collection under UTF-8,
so that case folding can be taken into account
(Yasuhiro Matsumoto).
closes: vim/vim#21369
https://github.com/vim/vim/commit/075053abdbe889e30614dcdaab9f0d8f89dab5b2
Co-authored-by: Yasuhiro Matsumoto <mattn.jp@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
position #42105
vim-patch:9.2.1114: Visual selection is not highlighted at the cursor position
Problem: In a terminal the character under the cursor is normally not
shown as part of the visual selection.
Solution: Don't set "noinvcur" in win_line() (Shane Harper).
The problem did not occur in the GUI, only in a terminal.
The name "noinvcur" ("don't invert the cursor") was misleading: the
variable did not affect the cursor, but whether the character under the
cursor could be displayed as part of the visual selection.
The "noinvcur" handling may have been meant to help during a visual
selection when Visual is shown in reverse video and the terminal draws
the cursor by inverting the character under it, as otherwise the
character under the cursor would not look highlighted like the rest of
the selection. But Vim cannot know in general how a terminal draws the
cursor, and when either the cursor is not drawn by inverting the
character under it or Visual is not shown in reverse video, the handling
just left a character of the visual selection unhighlighted.
closes: vim/vim#21317
https://github.com/vim/vim/commit/d10aab4ba6602f8f2f2576d2d62ceb63869db6fb
Co-authored-by: Shane Harper <shane@shaneharper.net>
AI-assisted
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
commands (#42102)
Problem: "if 0" condition not correctly skipped for :command, :autocmd,
:class, :interface, :enum and :loadkeymap
Solution: Skip those commands and discard the blocks they read
(Hirohito Higashi).
closes: vim/vim#21349
https://github.com/vim/vim/commit/f3dc0fee778439ac8ff8680b42552f7f13d47396
Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#42101)
Problem: The backtracking regexp engine expands the collections into a
character set that is tested one character at a time,
even though the NFA engine already recognizes them as the
faster \<type> classes.
Solution: Share the collection-parsing code between the two engines and
emit the corresponding class atom in the bt engine too.
These ranges are all unaffected by 'ignorecase' (which applies at
execution time): the digit and octal classes have no case, and the hex,
word, head and alpha classes already contain both cases, so the emitted
atom matches the collection identically. Only the bare LOWER ([a-z]) and
UPPER ([A-Z]) ranges and their negations are left out, because the old
engine has no case-insensitive opcode for them. Add tests for the
conversions.
closes: vim/vim#21340
https://github.com/vim/vim/commit/33402ca930f611c7ad28c9bb11e16f7aee52b09e
Co-authored-by: Julien Voisin <julien.voisin@dustri.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(#42079)
Problem: set_cpt_callbacks() always uses the F{func} callback array from
the buffer-local value, causing heap-buffer-overflow
(Evaopo, after v9.1.1603)
Solution: Parse the option value that actually changed and check the
callback array index.
closes: vim/vim#21358
https://github.com/vim/vim/commit/7854b1dbdb50b6264cb8b54cdd90e042d19f93b4
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: icalendar files are not recognized
Solution: Detect *.ics files as icalendar filetype, include
syntax and filetype plugins (Anakin Childerhose).
Reference:
https://datatracker.ietf.org/doc/html/rfc5545
closes: vim/vim#21356
https://github.com/vim/vim/commit/7c049d5ce1d6bc119abf9749ca5cad74225ca83e
Co-authored-by: Anakin Childerhose <anakin@childerhose.ca>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: Gentoo portage config files are not recognized
Solution: Detect portage files as sh or confini filetype
(Wu, Zhenyu)
Reference:
https://wiki.gentoo.org/wiki//etc/portage/make.conf
https://wiki.gentoo.org/wiki//etc/portage/repos.conf
https://wiki.gentoo.org/wiki//etc/portage/binrepos.conf
closes: vim/vim#21343
https://github.com/vim/vim/commit/2c2bae52ac66dbb8ff13c3842aba64c1b64aa0e5
Co-authored-by: Wu, Zhenyu <wuzhenyu@ustc.edu>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Problem: filetype: hlsl files are not recognized
Solution: Detect *.hlsl files hlsl filetype, include
ftplugin, indent and syntax plugins, update
gvim menu (Maxim Kim)
closes: vim/vim#20993
https://github.com/vim/vim/commit/11fca33162ad2e6a6365dbf6202fb1af0f21b7cb
Co-authored-by: Maxim Kim <habamax@gmail.com>
|
| |
|
|
|
|
|
|
|
| |
Problem: Need a new Vim release
Solution: Release Vim 9.2 🎉
https://github.com/vim/vim/commit/e7e21018fc0b60c153c8e668f696d95e574cc5a4
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
| |
Problem: Need a new release
Solution: Release Vim 9.1
https://github.com/vim/vim/commit/b4ddc6c11e95cef4b372e239871fae1c8d4f72b6
Co-authored-by: Christian Brabandt <cb@256bit.org>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
In th |