[arch-commits] Commit in neovim/repos (4 files)
Baptiste Jonglez
zorun at archlinux.org
Sat May 12 01:03:27 UTC 2018
Date: Saturday, May 12, 2018 @ 01:03:27
Author: zorun
Revision: 320926
archrelease: copy trunk to community-staging-x86_64
Added:
neovim/repos/community-staging-x86_64/
neovim/repos/community-staging-x86_64/3a5721e91ba890718319213154ba6964c9dca4d2.patch
(from rev 320925, neovim/trunk/3a5721e91ba890718319213154ba6964c9dca4d2.patch)
neovim/repos/community-staging-x86_64/PKGBUILD
(from rev 320925, neovim/trunk/PKGBUILD)
neovim/repos/community-staging-x86_64/neovim.install
(from rev 320925, neovim/trunk/neovim.install)
------------------------------------------------+
3a5721e91ba890718319213154ba6964c9dca4d2.patch | 41 +++++++++++++++
PKGBUILD | 60 +++++++++++++++++++++++
neovim.install | 10 +++
3 files changed, 111 insertions(+)
Copied: neovim/repos/community-staging-x86_64/3a5721e91ba890718319213154ba6964c9dca4d2.patch (from rev 320925, neovim/trunk/3a5721e91ba890718319213154ba6964c9dca4d2.patch)
===================================================================
--- community-staging-x86_64/3a5721e91ba890718319213154ba6964c9dca4d2.patch (rev 0)
+++ community-staging-x86_64/3a5721e91ba890718319213154ba6964c9dca4d2.patch 2018-05-12 01:03:27 UTC (rev 320926)
@@ -0,0 +1,41 @@
+From 3a5721e91ba890718319213154ba6964c9dca4d2 Mon Sep 17 00:00:00 2001
+From: Chih-Hsuan Yen <yan12125 at gmail.com>
+Date: Mon, 29 Jan 2018 22:47:25 +0800
+Subject: [PATCH] tui: libtermkey: force CSI driver for mouse input #7948
+
+Fixes #7932
+
+Nvim (tui.c) always enables SGR mouse (TUIData.unibi_ext.enable_mouse).
+But if libtermkey sees key_mouse (kmous) in terminfo its terminfo driver
+(driver-ti.c) will be activated, which by accident only supports X10
+protocol. The libtermkey CSI driver (driver-csi.c), in contrast,
+supports SGR.
+
+We can force libtermkey to ignore the terminfo key_mouse entry by
+returning NULL in the tui_tk_ti_getstr hook. That forces the CSI driver.
+
+What is the effect of returning NULL from `tui_tk_ti_getstr()`?
+- libtermkey `driver-ti.c:load_terminfo()` skips the entry.
+- `termkey.c:peekkey()` iterates through all drivers, it finds
+ `TERMKEY_RES_NONE` for the ti driver and falls back to the CSI driver.
+---
+ src/nvim/tui/tui.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c
+index 2dfe7faa04c..70e19e1d932 100644
+--- a/src/nvim/tui/tui.c
++++ b/src/nvim/tui/tui.c
+@@ -1813,6 +1813,12 @@ static const char *tui_tk_ti_getstr(const char *name, const char *value,
+ if (value != NULL && strequal(stty_erase, value)) {
+ return stty_erase[0] == DEL ? CTRL_H_STR : DEL_STR;
+ }
++ } else if (strequal(name, "key_mouse")) {
++ DLOG("libtermkey:kmous=%s", value);
++ // If key_mouse is found, libtermkey uses its terminfo driver (driver-ti.c)
++ // for mouse input, which by accident only supports X10 protocol.
++ // Force libtermkey to fallback to its CSI driver (driver-csi.c). #7948
++ return NULL;
+ }
+
+ return value;
Copied: neovim/repos/community-staging-x86_64/PKGBUILD (from rev 320925, neovim/trunk/PKGBUILD)
===================================================================
--- community-staging-x86_64/PKGBUILD (rev 0)
+++ community-staging-x86_64/PKGBUILD 2018-05-12 01:03:27 UTC (rev 320926)
@@ -0,0 +1,60 @@
+# Maintainer: Sven-Hendrik Haase <sh at lutzhaase.com>
+# Contributor: Florian Walch <florian+aur at fwalch.com>
+# Contributor: Florian Hahn <flo at fhahn.com>
+
+pkgname=neovim
+pkgver=0.2.2
+pkgrel=6
+pkgdesc='Fork of Vim aiming to improve user experience, plugins, and GUIs'
+arch=('x86_64')
+url='https://neovim.io'
+license=('custom:neovim')
+depends=('jemalloc' 'libtermkey' 'libuv' 'msgpack-c' 'unibilium' 'libvterm' 'luajit')
+makedepends=('cmake' 'lua51-mpack' 'lua51-lpeg' 'gperf')
+optdepends=('python2-neovim: for Python 2 plugin support (see :help python)'
+ 'python-neovim: for Python 3 plugin support (see :help python)'
+ 'xclip: for clipboard support (or xsel) (see :help clipboard)'
+ 'xsel: for clipboard support (or xclip) (see :help clipboard)')
+source=(https://github.com/neovim/neovim/archive/v${pkgver}.tar.gz
+ 3a5721e91ba890718319213154ba6964c9dca4d2.patch)
+sha512sums=('5609defe86ac98356f1b9ae9adc6049bb4df920a9a2ae3104f761d52d4dd54cbc84d2596231595dd9b0aa97201fef2121e6c5c86a19267ab6b871dbf4b568209'
+ 'f3dabd1bbe195a45a10efacfc4bb78007e32b91c32c01e42f8045c6e39d7a5f7e20eea1c4407c313d7ec0bb6d951a0b4e10b402f50d2022a5b4770ec62594a8a')
+install=neovim.install
+
+prepare() {
+ cd "${srcdir}/neovim-${pkgver}"
+
+ patch -Np1 < "${srcdir}/3a5721e91ba890718319213154ba6964c9dca4d2.patch"
+}
+
+build() {
+ mkdir -p "${srcdir}/build"
+ cd "${srcdir}/build"
+
+ cmake "../neovim-${pkgver}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_JEMALLOC=ON
+ make
+}
+
+check() {
+ cd "${srcdir}/build"
+ ./bin/nvim --version
+ ./bin/nvim --headless -u NONE -i NONE -c ':quit'
+}
+
+package() {
+ cd "${srcdir}/build"
+ make DESTDIR="${pkgdir}" install
+ cd "${srcdir}/neovim-${pkgver}"
+ install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
+ install -Dm644 runtime/nvim.desktop "${pkgdir}/usr/share/applications/nvim.desktop"
+ install -Dm644 runtime/nvim.png "${pkgdir}/usr/share/pixmaps/nvim.png"
+
+ # Make Arch vim packages work
+ mkdir -p "${pkgdir}"/usr/share/vim
+ echo "set runtimepath+=/usr/share/vim/vimfiles" > "${pkgdir}"/usr/share/nvim/sysinit.vim
+}
+
+# vim:set sw=2 sts=2 et:
Copied: neovim/repos/community-staging-x86_64/neovim.install (from rev 320925, neovim/trunk/neovim.install)
===================================================================
--- community-staging-x86_64/neovim.install (rev 0)
+++ community-staging-x86_64/neovim.install 2018-05-12 01:03:27 UTC (rev 320926)
@@ -0,0 +1,10 @@
+# $1: new package version
+post_install() {
+ echo ":: The Neovim executable is called 'nvim'."
+ echo ":: If you are already familiar with Vim, see ':help nvim-from-vim'"
+ echo " to get started."
+ echo ":: If you have any questions, check the following page first:"
+ echo " https://github.com/neovim/neovim/wiki/FAQ"
+}
+
+# vim:set sw=2 sts=2 et:
More information about the arch-commits
mailing list