<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/test/functional/legacy, branch userreg</title>
<subtitle>Neovim fork with Rahm's personal hacks.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/'/>
<entry>
<title>vim-patch:9.0.2125: File info disappears when 'cmdheight' has decreased (#26180)</title>
<updated>2023-11-23T22:13:24+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2023-11-23T22:13:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=951034614110cf2e4388645ee17ed4a315d0d382'/>
<id>951034614110cf2e4388645ee17ed4a315d0d382</id>
<content type='text'>
Problem:  File info disappears immediately when 'cmdheight' has just
          decreased due to switching tabpage and 'shortmess' doesn't
          contain 'o' or 'O'.
Solution: Make sure msg_row isn't smaller than cmdline_row.

fixes: vim/vim#13560
closes: vim/vim#13561

https://github.com/vim/vim/commit/40ed6711bd385051021691980e8ce16375b4b510</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  File info disappears immediately when 'cmdheight' has just
          decreased due to switching tabpage and 'shortmess' doesn't
          contain 'o' or 'O'.
Solution: Make sure msg_row isn't smaller than cmdline_row.

fixes: vim/vim#13560
closes: vim/vim#13561

https://github.com/vim/vim/commit/40ed6711bd385051021691980e8ce16375b4b510</pre>
</div>
</content>
</entry>
<entry>
<title>vim-patch:9.0.1969: [security] buffer-overflow in trunc_string()</title>
<updated>2023-11-17T01:59:16+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2023-11-17T01:33:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=3ab0e296c674a6846512df24a0a70199bba8c59a'/>
<id>3ab0e296c674a6846512df24a0a70199bba8c59a</id>
<content type='text'>
Problem:  buffer-overflow in trunc_string()
Solution: Add NULL at end of buffer

Currently trunc_string() assumes that when the string is too long,
buf[e-1] will always be writeable. But that assumption may not always be
true. The condition currently looks like this

    else if (e + 3 &lt; buflen)
    [...]
    else
    {
	// can't fit in the "...", just truncate it
	buf[e - 1] = NUL;
    }

but this means, we may run into the last else clause with e still being
larger than buflen. So a buffer overflow occurs.

So instead of using `buf[e - 1]`, let's just always
truncate at `buf[buflen - 1]` which should always be writable.

https://github.com/vim/vim/commit/3bd7fa12e146c6051490d048a4acbfba974eeb04

vim-patch:9.0.2004: Missing test file

Problem:  Missing test file
Solution: git-add the file to the repo

closes: vim/vim#13305

https://github.com/vim/vim/commit/d4afbdd0715c722cfc73d3a8ab9e578667615faa

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  buffer-overflow in trunc_string()
Solution: Add NULL at end of buffer

Currently trunc_string() assumes that when the string is too long,
buf[e-1] will always be writeable. But that assumption may not always be
true. The condition currently looks like this

    else if (e + 3 &lt; buflen)
    [...]
    else
    {
	// can't fit in the "...", just truncate it
	buf[e - 1] = NUL;
    }

but this means, we may run into the last else clause with e still being
larger than buflen. So a buffer overflow occurs.

So instead of using `buf[e - 1]`, let's just always
truncate at `buf[buflen - 1]` which should always be writable.

https://github.com/vim/vim/commit/3bd7fa12e146c6051490d048a4acbfba974eeb04

vim-patch:9.0.2004: Missing test file

Problem:  Missing test file
Solution: git-add the file to the repo

closes: vim/vim#13305

https://github.com/vim/vim/commit/d4afbdd0715c722cfc73d3a8ab9e578667615faa

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vim-patch:9.0.2107: [security]: FPE in adjust_plines_for_skipcol (#26082)</title>
<updated>2023-11-17T00:40:02+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2023-11-17T00:40:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=6952b1951b6a60df8d477279f4451094fb51c413'/>
<id>6952b1951b6a60df8d477279f4451094fb51c413</id>
<content type='text'>
Problem:  [security]: FPE in adjust_plines_for_skipcol
Solution: don't divide by zero, return zero

Prevent a floating point exception when calculating w_skipcol (which can
happen with a small window when the number option is set and cpo+=n).

Add a test to verify

https://github.com/vim/vim/commit/cb0b99f0672d8446585d26e998343dceca17d1ce

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  [security]: FPE in adjust_plines_for_skipcol
Solution: don't divide by zero, return zero

Prevent a floating point exception when calculating w_skipcol (which can
happen with a small window when the number option is set and cpo+=n).

Add a test to verify

https://github.com/vim/vim/commit/cb0b99f0672d8446585d26e998343dceca17d1ce

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>vim-patch:9.0.2105: skipcol not reset when topline changed (#26042)</title>
<updated>2023-11-14T22:28:56+00:00</updated>
<author>
<name>luukvbaal</name>
<email>luukvbaal@gmail.com</email>
</author>
<published>2023-11-14T22:28:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=f4d95c05b98c2ce2f70e73d4fe6a03cf54ed44cd'/>
<id>f4d95c05b98c2ce2f70e73d4fe6a03cf54ed44cd</id>
<content type='text'>
Problem:  Skipcol is not reset when topline changed scrolling cursor to top
Solution: reset skipcol

closes: vim/vim#13528

https://github.com/vim/vim/commit/bb800a7907209f7d349f87b76b3b9ca30b416298</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  Skipcol is not reset when topline changed scrolling cursor to top
Solution: reset skipcol

closes: vim/vim#13528

https://github.com/vim/vim/commit/bb800a7907209f7d349f87b76b3b9ca30b416298</pre>
</div>
</content>
</entry>
<entry>
<title>vim-patch:9.0.2102: matchparen highlight not cleared in completion mode (#26019)</title>
<updated>2023-11-13T02:47:12+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2023-11-13T02:47:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=2a58aa57098a4876afa8d865d6d9ec32407d7f11'/>
<id>2a58aa57098a4876afa8d865d6d9ec32407d7f11</id>
<content type='text'>
Problem:  matchparen highlight not cleared in completion mode
Solution: Clear matchparen highlighting in completion mode

Remove hard-coded hack in insexpand.c to clear the :3match before
displaying the completion menu.

Add a test for matchparen highlighting. While at it, move all test tests
related to the matchparen plugin into a separate test file.

closes: vim/vim#13493
closes: vim/vim#13524

https://github.com/vim/vim/commit/9588666360e94de3ff58d4bc79aa9148fbf5fc44

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:  matchparen highlight not cleared in completion mode
Solution: Clear matchparen highlighting in completion mode

Remove hard-coded hack in insexpand.c to clear the :3match before
displaying the completion menu.

Add a test for matchparen highlighting. While at it, move all test tests
related to the matchparen plugin into a separate test file.

closes: vim/vim#13493
closes: vim/vim#13524

https://github.com/vim/vim/commit/9588666360e94de3ff58d4bc79aa9148fbf5fc44

Co-authored-by: Christian Brabandt &lt;cb@256bit.org&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>vim-patch:8.2.4809: various things no6 properly tested (#26017)</title>
<updated>2023-11-13T00:55:25+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2023-11-13T00:55:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=1fd0ded08029c575ac4887e513732c50eaf05be2'/>
<id>1fd0ded08029c575ac4887e513732c50eaf05be2</id>
<content type='text'>
Problem:    Various things no6 properly tested.
Solution:   Add various test cases. (Yegappan Lakshmanan, closes vim/vim#10259)

https://github.com/vim/vim/commit/885de449c0c0ef4a8541ed1f5377351844384516

Co-authored-by: Yegappan Lakshmanan &lt;yegappan@yahoo.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:    Various things no6 properly tested.
Solution:   Add various test cases. (Yegappan Lakshmanan, closes vim/vim#10259)

https://github.com/vim/vim/commit/885de449c0c0ef4a8541ed1f5377351844384516

Co-authored-by: Yegappan Lakshmanan &lt;yegappan@yahoo.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(options)!: unify `set_option` and `set_string_option`</title>
<updated>2023-10-30T15:38:02+00:00</updated>
<author>
<name>Famiu Haque</name>
<email>famiuhaque@proton.me</email>
</author>
<published>2023-10-14T16:19:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e19cc9c9b715d8171f7940632b8855104b5290b6'/>
<id>e19cc9c9b715d8171f7940632b8855104b5290b6</id>
<content type='text'>
While the interfaces for setting number and boolean options are now unified by #25394, there is still a separate `set_string_option` function that is used for setting a string option. This PR removes that function and merges it with set_option.

BREAKING CHANGE: `v:option_old` is now the old global value for all global-local options, instead of just string global-local options. Local value for a global-local number/boolean option is now unset when the option is set (e.g. using `:set` or `nvim_set_option_value`) without a scope, which means they now behave the same way as string options.

Ref: #25672
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While the interfaces for setting number and boolean options are now unified by #25394, there is still a separate `set_string_option` function that is used for setting a string option. This PR removes that function and merges it with set_option.

BREAKING CHANGE: `v:option_old` is now the old global value for all global-local options, instead of just string global-local options. Local value for a global-local number/boolean option is now unset when the option is set (e.g. using `:set` or `nvim_set_option_value`) without a scope, which means they now behave the same way as string options.

Ref: #25672
</pre>
</div>
</content>
</entry>
<entry>
<title>docs: small fixes (#25585)</title>
<updated>2023-10-29T08:02:32+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2023-10-29T08:02:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=2dc9ceb99c018b15dcf0c443cad46efecccaf94e'/>
<id>2dc9ceb99c018b15dcf0c443cad46efecccaf94e</id>
<content type='text'>
Co-authored-by: tmummert &lt;doczook@gmx.de&gt;
Co-authored-by: parikshit adhikari &lt;parikshitadhikari@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: tmummert &lt;doczook@gmx.de&gt;
Co-authored-by: parikshit adhikari &lt;parikshitadhikari@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(options)!: make OptionSet `v:` values use typval</title>
<updated>2023-10-16T18:08:47+00:00</updated>
<author>
<name>Famiu Haque</name>
<email>famiuhaque@proton.me</email>
</author>
<published>2023-10-08T16:13:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=5df4fdf253f9c9cc35f9f5f16c6d0ba9d87b4c71'/>
<id>5df4fdf253f9c9cc35f9f5f16c6d0ba9d87b4c71</id>
<content type='text'>
BREAKING CHANGE: This breaks the OptionSet autocommand, as the `v:` values associated with it (`v:option_new`, `v:option_old`, `v:option_oldlocal` and `v:option_oldglobal`) are now the same type as the option, instead of all option values being converted to strings.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
BREAKING CHANGE: This breaks the OptionSet autocommand, as the `v:` values associated with it (`v:option_new`, `v:option_old`, `v:option_oldlocal` and `v:option_oldglobal`) are now the same type as the option, instead of all option values being converted to strings.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(message): simplify msg_puts_display and use batched grid updates</title>
<updated>2023-10-03T13:20:09+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2023-09-30T08:31:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=a9a48d6b5f00241e16e7131c997f0117bc5e9047'/>
<id>a9a48d6b5f00241e16e7131c997f0117bc5e9047</id>
<content type='text'>
msg_puts_display was more complex than necessary in nvim, as in
nvim, it no longer talks directly with a terminal.

In particular we don't need to scroll the grid before emiting the last
char. The TUI already takes care of things like that, for terminals
where it matters.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
msg_puts_display was more complex than necessary in nvim, as in
nvim, it no longer talks directly with a terminal.

In particular we don't need to scroll the grid before emiting the last
char. The TUI already takes care of things like that, for terminals
where it matters.
</pre>
</div>
</content>
</entry>
</feed>
