Date: Thursday, November 4, 2021 @ 22:50:49 Author: heftig Revision: 1037039
0.5.1-2: fix scrolling with ncurses 6.3 Added: neovim/trunk/0001-patch_terminfo_bugs-Extend-smglr-ignores-to-smglp-an.patch Modified: neovim/trunk/PKGBUILD -----------------------------------------------------------------+ 0001-patch_terminfo_bugs-Extend-smglr-ignores-to-smglp-an.patch | 64 ++++++++++ PKGBUILD | 21 ++- 2 files changed, 79 insertions(+), 6 deletions(-) Added: 0001-patch_terminfo_bugs-Extend-smglr-ignores-to-smglp-an.patch =================================================================== --- 0001-patch_terminfo_bugs-Extend-smglr-ignores-to-smglp-an.patch (rev 0) +++ 0001-patch_terminfo_bugs-Extend-smglr-ignores-to-smglp-an.patch 2021-11-04 22:50:49 UTC (rev 1037039) @@ -0,0 +1,64 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" <jan.steff...@gmail.com> +Date: Thu, 4 Nov 2021 22:04:17 +0000 +Subject: [PATCH] patch_terminfo_bugs: Extend smglr ignores to smglp and smgrp + +The latter were added for xterm by ncurses 6.3 and are similarly +affected. + +Fixes https://github.com/neovim/neovim/issues/16238 +--- + src/nvim/tui/tui.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c +index f9c5521bdb63..bb752863692d 100644 +--- a/src/nvim/tui/tui.c ++++ b/src/nvim/tui/tui.c +@@ -1663,30 +1663,46 @@ static void patch_terminfo_bugs(TUIData *data, const char *term, const char *col + ILOG("Disabling smglr with TERM=xterm for non-xterm."); + unibi_set_str(ut, unibi_set_lr_margin, NULL); + } ++ if (unibi_get_str(ut, unibi_set_left_margin_parm)) { ++ ILOG("Disabling smglp with TERM=xterm for non-xterm."); ++ unibi_set_str(ut, unibi_set_left_margin_parm, NULL); ++ } ++ if (unibi_get_str(ut, unibi_set_right_margin_parm)) { ++ ILOG("Disabling smgrp with TERM=xterm for non-xterm."); ++ unibi_set_str(ut, unibi_set_right_margin_parm, NULL); ++ } + } + + #ifdef WIN32 + // XXX: workaround libuv implicit LF => CRLF conversion. #10558 + unibi_set_str(ut, unibi_cursor_down, "\x1b[B"); + #endif + } else if (rxvt) { + // 2017-04 terminfo.src lacks these. Unicode rxvt has them. + unibi_set_if_empty(ut, unibi_enter_italics_mode, "\x1b[3m"); + unibi_set_if_empty(ut, unibi_exit_italics_mode, "\x1b[23m"); + unibi_set_if_empty(ut, unibi_to_status_line, "\x1b]2"); + unibi_set_if_empty(ut, unibi_from_status_line, "\x07"); + // 2017-04 terminfo.src has older control sequences. + unibi_set_str(ut, unibi_enter_ca_mode, "\x1b[?1049h"); + unibi_set_str(ut, unibi_exit_ca_mode, "\x1b[?1049l"); + } else if (screen) { + // per the screen manual; 2017-04 terminfo.src lacks these. + unibi_set_if_empty(ut, unibi_to_status_line, "\x1b_"); + unibi_set_if_empty(ut, unibi_from_status_line, "\x1b\\"); + // Fix an issue where smglr is inherited by TERM=screen.xterm. + if (unibi_get_str(ut, unibi_set_lr_margin)) { + ILOG("Disabling smglr with TERM=screen.xterm for screen."); + unibi_set_str(ut, unibi_set_lr_margin, NULL); + } ++ if (unibi_get_str(ut, unibi_set_left_margin_parm)) { ++ ILOG("Disabling smglp with TERM=screen.xterm for screen."); ++ unibi_set_str(ut, unibi_set_left_margin_parm, NULL); ++ } ++ if (unibi_get_str(ut, unibi_set_right_margin_parm)) { ++ ILOG("Disabling smgrp with TERM=screen.xterm for screen."); ++ unibi_set_str(ut, unibi_set_right_margin_parm, NULL); ++ } + } else if (tmux) { + unibi_set_if_empty(ut, unibi_to_status_line, "\x1b_"); + unibi_set_if_empty(ut, unibi_from_status_line, "\x1b\\"); Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-11-04 22:20:38 UTC (rev 1037038) +++ PKGBUILD 2021-11-04 22:50:49 UTC (rev 1037039) @@ -4,7 +4,7 @@ pkgname=neovim pkgver=0.5.1 -pkgrel=1 +pkgrel=2 pkgdesc='Fork of Vim aiming to improve user experience, plugins, and GUIs' arch=('x86_64') url='https://neovim.io' @@ -17,9 +17,18 @@ 'xclip: for clipboard support on X11 (or xsel) (see :help clipboard)' 'xsel: for clipboard support on X11 (or xclip) (see :help clipboard)' 'wl-clipboard: for clipboard support on wayland (see :help clipboard)') -source=("https://github.com/neovim/neovim/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz") -sha512sums=('a5a976c4998e821e0d9a9038d3f0c9e7c424a951f6bfc6d75898916d6a004ac668f31a34c3472fc4fca6b1d9652ac662b06780dd04dc6a77ecdc81564ec05709') +source=("https://github.com/neovim/neovim/archive/v${pkgver}/${pkgname}-${pkgver}.tar.gz" + '0001-patch_terminfo_bugs-Extend-smglr-ignores-to-smglp-an.patch') +sha512sums=('a5a976c4998e821e0d9a9038d3f0c9e7c424a951f6bfc6d75898916d6a004ac668f31a34c3472fc4fca6b1d9652ac662b06780dd04dc6a77ecdc81564ec05709' + '0771c9d141bc4253f8750b5ffdd8f4768cb8b2cefd70c2ae23c95bc659d598c91c15e94da58198fa1fb883d15984cafcf2d6e94c81c3892ce9f6e286854af184') +prepare() { + cd neovim-${pkgver} + + # https://github.com/neovim/neovim/issues/16238 + patch -Np1 -i ../0001-patch_terminfo_bugs-Extend-smglr-ignores-to-smglp-an.patch +} + build() { cd neovim-${pkgver} cmake \ @@ -28,7 +37,7 @@ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/usr \ -DUSE_BUNDLED=OFF - ninja -C build + cmake --build build } check() { @@ -39,7 +48,7 @@ package() { cd neovim-${pkgver} - DESTDIR="${pkgdir}" ninja -C build install + DESTDIR="${pkgdir}" cmake --install build cd "${srcdir}/neovim-${pkgver}" install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE" @@ -56,4 +65,4 @@ echo "set runtimepath+=/usr/share/vim/vimfiles" > "${pkgdir}"/usr/share/nvim/archlinux.vim } -# vim:set sw=2 sts=2 et: +# vim:set ft=sh sw=2 sts=2 et: