<feed xmlns='http://www.w3.org/2005/Atom'>
<title>rneovim.git/src/nvim/tui/termkey, branch userregs_2</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>feat(tui): recognize X1 and X2 mouse events</title>
<updated>2025-01-21T13:01:46+00:00</updated>
<author>
<name>zeertzjq</name>
<email>zeertzjq@outlook.com</email>
</author>
<published>2025-01-21T12:50:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=44dbfcfba4b09bb0e38f4a3f1960fa256a7bed71'/>
<id>44dbfcfba4b09bb0e38f4a3f1960fa256a7bed71</id>
<content type='text'>
Ref:
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Other-buttons
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ref:
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Other-buttons
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: delete duplicate utf8-functionality</title>
<updated>2025-01-13T12:16:41+00:00</updated>
<author>
<name>dundargoc</name>
<email>gocdundar@gmail.com</email>
</author>
<published>2025-01-09T16:28:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=47866cd8d20c62afa8a3c3929d3aada2db9162f5'/>
<id>47866cd8d20c62afa8a3c3929d3aada2db9162f5</id>
<content type='text'>
Also remove British National Replacement Character Set.

We keep the DEC Special Graphics and ASCII despite it not being unicode
as some old software such as calcurse still rely on this functionality.

References:
- https://github.com/neovim/neovim/pull/31934#discussion_r1911046426
- https://en.wikipedia.org/wiki/DEC_Special_Graphics
- https://vt100.net/docs/vt220-rm/chapter2.html#S2.4.3
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also remove British National Replacement Character Set.

We keep the DEC Special Graphics and ASCII despite it not being unicode
as some old software such as calcurse still rely on this functionality.

References:
- https://github.com/neovim/neovim/pull/31934#discussion_r1911046426
- https://en.wikipedia.org/wiki/DEC_Special_Graphics
- https://vt100.net/docs/vt220-rm/chapter2.html#S2.4.3
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(tui): handle key events for arrow and function keys (#31804)</title>
<updated>2024-12-31T18:16:25+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2024-12-31T18:16:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=b5cb69f8a4a310fb3f18e79bcf5c7ed41d635a48'/>
<id>b5cb69f8a4a310fb3f18e79bcf5c7ed41d635a48</id>
<content type='text'>
Arrow and function keys do not use CSI u with the kitty keyboard
protocol. For example, the Up arrow key uses CSI A, and the function
keys use a variety of different CSI sequences.

Until now, termkey only parsed subparams used by key events for CSI u
sequences. The result being that any key which did not use CSI u (e.g.
arrow and function keys) was being emitted twice by termkey since it was
not recognizing the separate press and release events.

This commit makes termkey also parse subparams for other key sequences
so that the release key events do not send duplicate keys.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Arrow and function keys do not use CSI u with the kitty keyboard
protocol. For example, the Up arrow key uses CSI A, and the function
keys use a variety of different CSI sequences.

Until now, termkey only parsed subparams used by key events for CSI u
sequences. The result being that any key which did not use CSI u (e.g.
arrow and function keys) was being emitted twice by termkey since it was
not recognizing the separate press and release events.

This commit makes termkey also parse subparams for other key sequences
so that the release key events do not send duplicate keys.</pre>
</div>
</content>
</entry>
<entry>
<title>feat(tui): handle kitty key events in libtermkey (#31727)</title>
<updated>2024-12-31T14:29:14+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2024-12-31T14:29:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=4fb3b57a19cb83a99d4c5489982c22d96e28e8c2'/>
<id>4fb3b57a19cb83a99d4c5489982c22d96e28e8c2</id>
<content type='text'>
Enable key event reporting in the kitty keyboard protocol. This causes
supporting terminals to send key events for presses, repeats, and key
releases. For now we ignore release events, but eventually we will
support users mapping those.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enable key event reporting in the kitty keyboard protocol. This causes
supporting terminals to send key events for presses, repeats, and key
releases. For now we ignore release events, but eventually we will
support users mapping those.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(termkey): fix null pointer dereference (#31792)</title>
<updated>2024-12-30T22:36:47+00:00</updated>
<author>
<name>Gregory Anders</name>
<email>greg@gpanders.com</email>
</author>
<published>2024-12-30T22:36:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=e9c077d197a80a2ecd858821b18d0be3e3eb6d0b'/>
<id>e9c077d197a80a2ecd858821b18d0be3e3eb6d0b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(build): &lt;termios.h&gt; is system-dependent #31705</title>
<updated>2024-12-23T19:13:19+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2024-12-23T19:13:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=ffaab09e998678ba2309821300ac10d62f3d3a78'/>
<id>ffaab09e998678ba2309821300ac10d62f3d3a78</id>
<content type='text'>
Problem:
Since 2a7d0ed6145bf3f8b139c2694563f460f829813a, build fails with glibc
version 2.28 / RHEL8 (where `termios.h` does not include unistd.h and is
therefore missing `_POSIX_VDISABLE`):

    …/src/nvim/tui/termkey/termkey.c: In function 'termkey_start':
    …/src/nvim/tui/termkey/termkey.c:516:31: error: '_POSIX_VDISABLE' undeclared (first use in this function)
      516 |         termios.c_cc[VQUIT] = _POSIX_VDISABLE;
          |                               ^~~~~~~~~~~~~~~
    …/src/nvim/tui/termkey/termkey.c:516:31: note: each undeclared identifier is reported only once for each function it appears in

Solution:
- Undo the `&lt;termios.h&gt;` change and mark the imports with `IWYU pragma: keep`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
Since 2a7d0ed6145bf3f8b139c2694563f460f829813a, build fails with glibc
version 2.28 / RHEL8 (where `termios.h` does not include unistd.h and is
therefore missing `_POSIX_VDISABLE`):

    …/src/nvim/tui/termkey/termkey.c: In function 'termkey_start':
    …/src/nvim/tui/termkey/termkey.c:516:31: error: '_POSIX_VDISABLE' undeclared (first use in this function)
      516 |         termios.c_cc[VQUIT] = _POSIX_VDISABLE;
          |                               ^~~~~~~~~~~~~~~
    …/src/nvim/tui/termkey/termkey.c:516:31: note: each undeclared identifier is reported only once for each function it appears in

Solution:
- Undo the `&lt;termios.h&gt;` change and mark the imports with `IWYU pragma: keep`.</pre>
</div>
</content>
</entry>
<entry>
<title>refactor: iwyu #31637</title>
<updated>2024-12-23T13:43:52+00:00</updated>
<author>
<name>Justin M. Keyes</name>
<email>justinkz@gmail.com</email>
</author>
<published>2024-12-23T13:43:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=2a7d0ed6145bf3f8b139c2694563f460f829813a'/>
<id>2a7d0ed6145bf3f8b139c2694563f460f829813a</id>
<content type='text'>
Result of `make iwyu` (after some "fixups").</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Result of `make iwyu` (after some "fixups").</pre>
</div>
</content>
</entry>
<entry>
<title>docs: misc (#31138)</title>
<updated>2024-11-20T22:50:30+00:00</updated>
<author>
<name>dundargoc</name>
<email>33953936+dundargoc@users.noreply.github.com</email>
</author>
<published>2024-11-20T22:50:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=07db909eb5ae2a559771068be64439eba394cd61'/>
<id>07db909eb5ae2a559771068be64439eba394cd61</id>
<content type='text'>
Co-authored-by: zeertzjq &lt;zeertzjq@outlook.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: zeertzjq &lt;zeertzjq@outlook.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>fix(coverity/509227/509228): tui driver_ti underflow #30341</title>
<updated>2024-09-19T08:33:40+00:00</updated>
<author>
<name>Devon Gardner</name>
<email>devon@goosur.com</email>
</author>
<published>2024-09-19T08:33:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.josher.dev/cgit/rneovim.git/commit/?id=0fe4362e216e659e5236cf49beba0e10cce0579d'/>
<id>0fe4362e216e659e5236cf49beba0e10cce0579d</id>
<content type='text'>
Problem:
write() can return -1 but is cast to unsigned type causing coverity
to detect possible overflowed integer

Solution:
Perform check to ensure all negative values are captured rather than
just -1 before casting to unsigned type</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Problem:
write() can return -1 but is cast to unsigned type causing coverity
to detect possible overflowed integer

Solution:
Perform check to ensure all negative values are captured rather than
just -1 before casting to unsigned type</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>
</feed>
