<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/src/vterm, branch rahm</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>refactor: adopt vterm</title>
<updated>2025-01-07T11:35:24+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2025-01-03T14:40:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=d8bc08db7fd8d0efbf2e9ebf39fecb6f732f84e8'/>
<id>d8bc08db7fd8d0efbf2e9ebf39fecb6f732f84e8</id>
<content type='text'>
We have changed too much to consider it a mere bundled dependency (such
as unicode handling in e3bfcf2fd4a4ebf00b104b082cfe83c8144a842d), and
can consider it our own at this point.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We have changed too much to consider it a mere bundled dependency (such
as unicode handling in e3bfcf2fd4a4ebf00b104b082cfe83c8144a842d), and
can consider it our own at this point.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(terminal): support grapheme clusters, including emoji</title>
<updated>2025-01-02T11:55:11+00:00</updated>
<author>
<name>bfredl</name>
<email>bjorn.linse@gmail.com</email>
</author>
<published>2024-12-18T13:49:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e3bfcf2fd4a4ebf00b104b082cfe83c8144a842d'/>
<id>e3bfcf2fd4a4ebf00b104b082cfe83c8144a842d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>test(vterm): move test functions into vterm_test fixture</title>
<updated>2024-12-03T02:49:14+00:00</updated>
<author>
<name>James McCoy</name>
<email>jamessan@jamessan.com</email>
</author>
<published>2024-11-27T16:17:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=7a367c6967d8bd1e386e391216a41b15bde5b28a'/>
<id>7a367c6967d8bd1e386e391216a41b15bde5b28a</id>
<content type='text'>
In order to run unittests with a release build, we need the test
functions to be accessible when NDEBUG is defined. Moving the functions
into the test fixture ensures they are available and only available for
use by the unit tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to run unittests with a release build, we need the test
functions to be accessible when NDEBUG is defined. Moving the functions
into the test fixture ensures they are available and only available for
use by the unit tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>test: port libvterm unit test to neovim test suite</title>
<updated>2024-10-22T19:20:11+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2024-09-25T14:07:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=4c25e60767508a3f8bc0631d280407a08f24a67e'/>
<id>4c25e60767508a3f8bc0631d280407a08f24a67e</id>
<content type='text'>
These were imported from the v0.3.3 git tag
https://github.com/neovim/libvterm/tree/v0.3.3 and not the latest
commit. This is for compatibility reasons as the libvterm code was
imported from v0.3.3.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These were imported from the v0.3.3 git tag
https://github.com/neovim/libvterm/tree/v0.3.3 and not the latest
commit. This is for compatibility reasons as the libvterm code was
imported from v0.3.3.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(vterm): inline REFLOW macro</title>
<updated>2024-09-05T13:38:58+00:00</updated>
<author>
<name>Paul "LeoNerd" Evans</name>
<email>leonerd@leonerd.org.uk</email>
</author>
<published>2024-09-05T13:07:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=f4d823b1231fd3b8782fc7d8ef525b531ef31445'/>
<id>f4d823b1231fd3b8782fc7d8ef525b531ef31445</id>
<content type='text'>
cherry-picked from https://github.com/neovim/libvterm/commit/dfc4c5e5b3dd99247dc95031a8f40087f181dea5
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
cherry-picked from https://github.com/neovim/libvterm/commit/dfc4c5e5b3dd99247dc95031a8f40087f181dea5
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: adopt termkey and eliminate duplicate code</title>
<updated>2024-09-05T12:28:12+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2024-08-14T13:52:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=f9108378b7a7e08b48685f0a3ff4f7a3a14b56d6'/>
<id>f9108378b7a7e08b48685f0a3ff4f7a3a14b56d6</id>
<content type='text'>
Termkey is abandoned and it's now our code, so there's no reason not to
treat it as such. An alternative approach could be to have a proper repo
that we maintain such as with unibilium, although with this approach we
can make a few assumptions that will allow us to remove more code.

Also eliminate duplicate code from both termkey and libvterm.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Termkey is abandoned and it's now our code, so there's no reason not to
treat it as such. An alternative approach could be to have a proper repo
that we maintain such as with unibilium, although with this approach we
can make a few assumptions that will allow us to remove more code.

Also eliminate duplicate code from both termkey and libvterm.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(terminal): handle C0 characters in OSC terminator (#30090)</title>
<updated>2024-08-19T11:43:06+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>8965202+gpanders@users.noreply.github.com</email>
</author>
<published>2024-08-19T11:43:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=6d997f8068a89703823f1572c56a6331c9e024aa'/>
<id>6d997f8068a89703823f1572c56a6331c9e024aa</id>
<content type='text'>
When a C0 character is present in an OSC terminator (i.e. after the ESC
but before a \ (0x5c) or printable character), vterm executes the
control character and resets the current string fragment. If the C0
character is the final byte in the sequence, the string fragment has a
zero length. However, because the VT parser is still in the "escape"
state, vterm attempts to subtract 1 from the string length (to account
for the escape character). When the string fragment is empty, this
causes an underflow in the unsigned size variable, resulting in a buffer
overflow.

The fix is simple: explicitly check if the string length is non-zero
before subtracting.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When a C0 character is present in an OSC terminator (i.e. after the ESC
but before a \ (0x5c) or printable character), vterm executes the
control character and resets the current string fragment. If the C0
character is the final byte in the sequence, the string fragment has a
zero length. However, because the VT parser is still in the "escape"
state, vterm attempts to subtract 1 from the string length (to account
for the escape character). When the string fragment is empty, this
causes an underflow in the unsigned size variable, resulting in a buffer
overflow.

The fix is simple: explicitly check if the string length is non-zero
before subtracting.</pre>
</div>
</content>
</entry>
<entry>
<title>feat(term): support OSC 8 hyperlinks in :terminal (#30050)</title>
<updated>2024-08-15T11:09:14+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>8965202+gpanders@users.noreply.github.com</email>
</author>
<published>2024-08-15T11:09:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=4199671047b0cb62781995a8f6a4b66fb6e8b6fd'/>
<id>4199671047b0cb62781995a8f6a4b66fb6e8b6fd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(term): enable reflow by default (#21124)</title>
<updated>2024-08-10T08:26:07+00:00</updated>
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<published>2023-05-24T08:04:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=8df6736ca14d09f87cf0a8486758ac5708819434'/>
<id>8df6736ca14d09f87cf0a8486758ac5708819434</id>
<content type='text'>
Problem: Contents of terminal buffer are not reflown when Nvim is
resized.

Solution: Enable reflow in libvterm by default. Now that libvterm is
vendored, also fix "TUI rapid resize" test failures there.

Note: Neovim's scrollback buffer does not support reflow (yet), so lines
vanishing into the buffer due to a too small window will be restored
without reflow.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Contents of terminal buffer are not reflown when Nvim is
resized.

Solution: Enable reflow in libvterm by default. Now that libvterm is
vendored, also fix "TUI rapid resize" test failures there.

Note: Neovim's scrollback buffer does not support reflow (yet), so lines
vanishing into the buffer due to a too small window will be restored
without reflow.
</pre>
</div>
</content>
</entry>
<entry>
<title>build(deps): vendor libvterm at v0.3.3</title>
<updated>2024-08-10T08:26:07+00:00</updated>
<author>
<name>Christian Clason</name>
<email>c.clason@uni-graz.at</email>
</author>
<published>2024-08-08T10:28:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=fa79a8ad6deefeea81c1959d69aa4c8b2d993f99'/>
<id>fa79a8ad6deefeea81c1959d69aa4c8b2d993f99</id>
<content type='text'>
Problem: Adding support for modern Nvim features (reflow, OSC 8, full
utf8/emoji support) requires coupling libvterm to Nvim internals
(e.g., utf8proc).

Solution: Vendor libvterm at v0.3.3.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem: Adding support for modern Nvim features (reflow, OSC 8, full
utf8/emoji support) requires coupling libvterm to Nvim internals
(e.g., utf8proc).

Solution: Vendor libvterm at v0.3.3.
</pre>
</div>
</content>
</entry>
</feed>
