aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Hinz <mh.codebro@gmail.com>2019-02-21 19:54:25 +0100
committerMarco Hinz <mh.codebro@gmail.com>2019-02-21 22:23:54 +0100
commit27c31434663ba20cd9b53827d4d3cb4d66b1cde3 (patch)
tree35c626cb70f3f8f4b4452c16e341000a7d00c20c
parent40f5a6c4dafe4bbca227d4c6bda0d9a94d817d71 (diff)
downloadrneovim-27c31434663ba20cd9b53827d4d3cb4d66b1cde3.tar.gz
rneovim-27c31434663ba20cd9b53827d4d3cb4d66b1cde3.tar.bz2
rneovim-27c31434663ba20cd9b53827d4d3cb4d66b1cde3.zip
third-party: libtermkey v0.20 -> v0.21.1
$ bzr log --line --forward -r v0.20.. 372: Paul "LeoNerd" Evans 2017-03-30 {v0.20} Bumped VERSION to 0.20 373: Paul "LeoNerd" Evans 2017-04-10 [merge] Apply typo fixes from jamessan 374: Paul "LeoNerd" Evans 2017-11-29 Build termkey.pc by invoking a small shell script instead of sed'ing a template 375: Paul "LeoNerd" Evans 2018-03-29 Implement mouse key parsing (thanks Marc André Tanner <mat@brain-dump.org>) 376: Paul "LeoNerd" Evans 2019-01-02 Bugfix for infinite CPU spin on TERM=dumb, which has no terminfo key strings 377: Paul "LeoNerd" Evans 2019-02-14 Fix a couple of valgrind-cleanness errors in DEBUG mode 378: Paul "LeoNerd" Evans 2019-02-14 Fix valgrind uninitialised value warning 379: Paul "LeoNerd" Evans 2019-02-14 Remember to unibi_destroy() even if we never (lazily) loaded terminfo 380: Paul "LeoNerd" Evans 2019-02-14 Bugfix memory leak in TI driver on xterm 381: Paul "LeoNerd" Evans 2019-02-17 driver-ti.c does not need a separate TYPE_MOUSE node type since TERMKEY_TYPE_MOUSE already exists 382: Paul "LeoNerd" Evans 2019-02-17 Perform TI string lookup by iterating all the strings we care about, rather than iterating everything in the DB; that way a hook function can invent new strings 383: Paul "LeoNerd" Evans 2019-02-17 Avoid nonstandard \e sequence in unit tests (via neovim https://github.com/neovim/neovim/blob/master/third-party/patches/libtermkey-Fix-escape-sequences-for-MSVC.p... 384: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 lacks <unistd.h> and S_ISFIFO() 385: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 needs help to get ssize_t 386: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no <termios.h> 387: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no poll() so cannot provide termkey_waitkey() 388: Paul "LeoNerd" Evans 2019-02-17 win32: Win32 has no <strings.h> and needs help getting strcasecmp() 389: Paul "LeoNerd" Evans 2019-02-17 Write the version into the .pc file at 'make install' time so we don't get@VERSION@ from source 390: Paul "LeoNerd" Evans 2019-02-19 {v0.21} Bumped VERSION to 0.21 391: Paul "LeoNerd" Evans 2019-02-19 Bugfix to missing TERMIOS support 392: Paul "LeoNerd" Evans 2019-02-19 Fix offbyone buffer overflow in sprintf calculation of key names (neovim #9630) 393: Paul "LeoNerd" Evans 2019-02-19 {v0.21.1} Remove a pointless (and warny) cast Our local patches are now part of the libtermkey repo and get removed.
-rw-r--r--third-party/CMakeLists.txt4
-rw-r--r--third-party/cmake/BuildLibtermkey.cmake4
-rw-r--r--third-party/patches/libtermkey-Add-support-for-Windows.patch170
-rw-r--r--third-party/patches/libtermkey-Fix-escape-sequences-for-MSVC.patch189
4 files changed, 2 insertions, 365 deletions
diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt
index f316e5bd0d..d6c7ed7951 100644
--- a/third-party/CMakeLists.txt
+++ b/third-party/CMakeLists.txt
@@ -143,8 +143,8 @@ set(LUAROCKS_SHA256 9eb3d0738fd02ad8bf39bcedccac4e83e9b5fff2bcca247c3584b925b207
set(UNIBILIUM_URL https://github.com/mauke/unibilium/archive/v2.0.0.tar.gz)
set(UNIBILIUM_SHA256 78997d38d4c8177c60d3d0c1aa8c53fd0806eb21825b7b335b1768d7116bc1c1)
-set(LIBTERMKEY_URL http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.20.tar.gz)
-set(LIBTERMKEY_SHA256 6c0d87c94ab9915e76ecd313baec08dedf3bd56de83743d9aa923a081935d2f5)
+set(LIBTERMKEY_URL http://www.leonerd.org.uk/code/libtermkey/libtermkey-0.21.1.tar.gz)
+set(LIBTERMKEY_SHA256 cecbf737f35d18f433c8d7864f63c0f878af41f8bd0255a3ebb16010dc044d5f)
set(LIBVTERM_URL https://github.com/neovim/libvterm/archive/b45b648cab73f9667bde7c0c6045b285e22b3ecd.tar.gz)
set(LIBVTERM_SHA256 37cc123deff29327efa654358c2ebaaf8589da03754ca5adb8ec47be386a0433)
diff --git a/third-party/cmake/BuildLibtermkey.cmake b/third-party/cmake/BuildLibtermkey.cmake
index 0b56674ad2..da65c87972 100644
--- a/third-party/cmake/BuildLibtermkey.cmake
+++ b/third-party/cmake/BuildLibtermkey.cmake
@@ -11,10 +11,6 @@ ExternalProject_Add(libtermkey
-DTARGET=libtermkey
-DUSE_EXISTING_SRC_DIR=${USE_EXISTING_SRC_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/DownloadAndExtractFile.cmake
- PATCH_COMMAND ${GIT_EXECUTABLE} -C ${DEPS_BUILD_DIR}/src/libtermkey init
- COMMAND ${GIT_EXECUTABLE} -C ${DEPS_BUILD_DIR}/src/libtermkey apply --ignore-whitespace
- ${CMAKE_CURRENT_SOURCE_DIR}/patches/libtermkey-Add-support-for-Windows.patch
- ${CMAKE_CURRENT_SOURCE_DIR}/patches/libtermkey-Fix-escape-sequences-for-MSVC.patch
CONFIGURE_COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/cmake/libtermkeyCMakeLists.txt
${DEPS_BUILD_DIR}/src/libtermkey/CMakeLists.txt
diff --git a/third-party/patches/libtermkey-Add-support-for-Windows.patch b/third-party/patches/libtermkey-Add-support-for-Windows.patch
deleted file mode 100644
index b839e94d05..0000000000
--- a/third-party/patches/libtermkey-Add-support-for-Windows.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From fbe91a958816d85fa93665eb8f7a7a8e05eb9650 Mon Sep 17 00:00:00 2001
-From: Rui Abreu Ferreira <raf-ep@gmx.com>
-Date: Tue, 5 Apr 2016 00:12:41 +0100
-Subject: [PATCH] Add support for Windows
-
-Ported termkey for windows.
-
-- The TERMKEY_FLAG_NOTERMIOS is ignore in Windows, since there is no termios.
-- The termkey_waitkey() function is not implemented in windows, since there
- is no poll() alternative.
-- The CMake recipe only supports unibilium, not curses.
----
- driver-ti.c | 8 +++++++-
- termkey-internal.h | 11 ++++++++++-
- termkey.c | 22 ++++++++++++++++++----
- 3 files changed, 35 insertions(+), 6 deletions(-)
-
-diff --git a/driver-ti.c b/driver-ti.c
-index e673ab7..f5f8052 100644
---- a/driver-ti.c
-+++ b/driver-ti.c
-@@ -17,7 +17,9 @@
- #include <ctype.h>
- #include <stdio.h>
- #include <string.h>
--#include <unistd.h>
-+#ifndef _WIN32
-+# include <unistd.h>
-+#endif
- #include <sys/types.h>
- #include <sys/stat.h>
-
-@@ -338,8 +340,10 @@ static int start_driver(TermKey *tk, void *info)
- if(fstat(tk->fd, &statbuf) == -1)
- return 0;
-
-+#ifndef _WIN32
- if(S_ISFIFO(statbuf.st_mode))
- return 1;
-+#endif
-
- // Can't call putp or tputs because they suck and don't give us fd control
- len = strlen(start_string);
-@@ -367,8 +371,10 @@ static int stop_driver(TermKey *tk, void *info)
- if(fstat(tk->fd, &statbuf) == -1)
- return 0;
-
-+#ifndef _WIN32
- if(S_ISFIFO(statbuf.st_mode))
- return 1;
-+#endif
-
- /* The terminfo database will contain keys in application cursor key mode.
- * We may need to enable that mode
-diff --git a/termkey-internal.h b/termkey-internal.h
-index 52829b3..b796729 100644
---- a/termkey-internal.h
-+++ b/termkey-internal.h
-@@ -4,7 +4,14 @@
- #include "termkey.h"
-
- #include <stdint.h>
--#include <termios.h>
-+#ifndef _WIN32
-+# include <termios.h>
-+#endif
-+
-+#ifdef _MSC_VER
-+#include <BaseTsd.h>
-+typedef SSIZE_T ssize_t;
-+#endif
-
- struct TermKeyDriver
- {
-@@ -41,8 +48,10 @@ struct TermKey {
- size_t hightide; /* Position beyond buffstart at which peekkey() should next start
- * normally 0, but see also termkey_interpret_csi */
-
-+#ifndef _WIN32
- struct termios restore_termios;
- char restore_termios_valid;
-+#endif
-
- TermKey_Terminfo_Getstr_Hook *ti_getstr_hook;
- void *ti_getstr_hook_data;
-diff --git a/termkey.c b/termkey.c
-index 2f01f3a..145b99f 100644
---- a/termkey.c
-+++ b/termkey.c
-@@ -3,14 +3,20 @@
-
- #include <ctype.h>
- #include <errno.h>
--#include <poll.h>
--#include <unistd.h>
-+#ifndef _WIN32
-+# include <poll.h>
-+# include <unistd.h>
-+# include <strings.h>
-+#endif
- #include <string.h>
--#include <strings.h>
-
- #include <stdio.h>
-
--#define strcaseeq(a,b) (strcasecmp(a,b) == 0)
-+#ifdef _MSC_VER
-+# define strcaseeq(a,b) (_stricmp(a,b) == 0)
-+#else
-+# define strcaseeq(a,b) (strcasecmp(a,b) == 0)
-+#endif
-
- void termkey_check_version(int major, int minor)
- {
-@@ -282,7 +288,9 @@ static TermKey *termkey_alloc(void)
- tk->buffsize = 256; /* bytes */
- tk->hightide = 0;
-
-+#ifndef _WIN32
- tk->restore_termios_valid = 0;
-+#endif
-
- tk->ti_getstr_hook = NULL;
- tk->ti_getstr_hook_data = NULL;
-@@ -483,6 +491,7 @@ int termkey_start(TermKey *tk)
- if(tk->is_started)
- return 1;
-
-+#ifndef _WIN32
- if(tk->fd != -1 && !(tk->flags & TERMKEY_FLAG_NOTERMIOS)) {
- struct termios termios;
- if(tcgetattr(tk->fd, &termios) == 0) {
-@@ -517,6 +526,7 @@ int termkey_start(TermKey *tk)
- tcsetattr(tk->fd, TCSANOW, &termios);
- }
- }
-+#endif
-
- struct TermKeyDriverNode *p;
- for(p = tk->drivers; p; p = p->next)
-@@ -542,8 +552,10 @@ int termkey_stop(TermKey *tk)
- if(p->driver->stop_driver)
- (*p->driver->stop_driver)(tk, p->info);
-
-+#ifndef _WIN32
- if(tk->restore_termios_valid)
- tcsetattr(tk->fd, TCSANOW, &tk->restore_termios);
-+#endif
-
- tk->is_started = 0;
-
-@@ -1046,6 +1058,7 @@ TermKeyResult termkey_getkey_force(TermKey *tk, TermKeyKey *key)
- return ret;
- }
-
-+#ifndef _WIN32
- TermKeyResult termkey_waitkey(TermKey *tk, TermKeyKey *key)
- {
- if(tk->fd == -1) {
-@@ -1105,6 +1118,7 @@ retry:
-
- /* UNREACHABLE */
- }
-+#endif
-
- TermKeyResult termkey_advisereadable(TermKey *tk)
- {
---
-2.16.1.windows.4
-
diff --git a/third-party/patches/libtermkey-Fix-escape-sequences-for-MSVC.patch b/third-party/patches/libtermkey-Fix-escape-sequences-for-MSVC.patch
deleted file mode 100644
index c1099bd3c4..0000000000
--- a/third-party/patches/libtermkey-Fix-escape-sequences-for-MSVC.patch
+++ /dev/null
@@ -1,189 +0,0 @@
-diff --git a/t/30mouse.c b/t/30mouse.c
---- a/t/30mouse.c
-+++ b/t/30mouse.c
-@@ -14,7 +14,7 @@ int main(int argc, char *argv[])
-
- tk = termkey_new_abstract("vt100", 0);
-
-- termkey_push_bytes(tk, "\e[M !!", 6);
-+ termkey_push_bytes(tk, "\x1b[M !!", 6);
-
- key.type = -1;
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for mouse press");
-@@ -38,7 +38,7 @@ int main(int argc, char *argv[])
- is_int(len, 21, "string length for press");
- is_str(buffer, "MousePress(1) @ (1,1)", "string buffer for press");
-
-- termkey_push_bytes(tk, "\e[M@\"!", 6);
-+ termkey_push_bytes(tk, "\x1b[M@\"!", 6);
-
- key.type = -1;
- ev = -1; button = -1; line = -1; col = -1;
-@@ -51,7 +51,7 @@ int main(int argc, char *argv[])
- is_int(col, 2, "mouse column for drag");
- is_int(key.modifiers, 0, "modifiers for press");
-
-- termkey_push_bytes(tk, "\e[M##!", 6);
-+ termkey_push_bytes(tk, "\x1b[M##!", 6);
-
- key.type = -1;
- ev = -1; button = -1; line = -1; col = -1;
-@@ -63,7 +63,7 @@ int main(int argc, char *argv[])
- is_int(col, 3, "mouse column for release");
- is_int(key.modifiers, 0, "modifiers for press");
-
-- termkey_push_bytes(tk, "\e[M0++", 6);
-+ termkey_push_bytes(tk, "\x1b[M0++", 6);
-
- key.type = -1;
- ev = -1; button = -1; line = -1; col = -1;
-@@ -81,7 +81,7 @@ int main(int argc, char *argv[])
- is_str(buffer, "C-MousePress(1)", "string buffer for Ctrl-press");
-
- // rxvt protocol
-- termkey_push_bytes(tk, "\e[0;20;20M", 10);
-+ termkey_push_bytes(tk, "\x1b[0;20;20M", 10);
-
- key.type = -1;
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for mouse press rxvt protocol");
-@@ -96,7 +96,7 @@ int main(int argc, char *argv[])
- is_int(col, 20, "mouse column for press rxvt protocol");
- is_int(key.modifiers, 0, "modifiers for press rxvt protocol");
-
-- termkey_push_bytes(tk, "\e[3;20;20M", 10);
-+ termkey_push_bytes(tk, "\x1b[3;20;20M", 10);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for mouse release rxvt protocol");
-
-@@ -111,7 +111,7 @@ int main(int argc, char *argv[])
- is_int(key.modifiers, 0, "modifiers for release rxvt protocol");
-
- // SGR protocol
-- termkey_push_bytes(tk, "\e[<0;30;30M", 11);
-+ termkey_push_bytes(tk, "\x1b[<0;30;30M", 11);
-
- key.type = -1;
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for mouse press SGR encoding");
-@@ -127,7 +127,7 @@ int main(int argc, char *argv[])
- is_int(col, 30, "mouse column for press SGR");
- is_int(key.modifiers, 0, "modifiers for press SGR");
-
-- termkey_push_bytes(tk, "\e[<0;30;30m", 11);
-+ termkey_push_bytes(tk, "\x1b[<0;30;30m", 11);
-
- key.type = -1;
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for mouse release SGR encoding");
-@@ -139,7 +139,7 @@ int main(int argc, char *argv[])
-
- is_int(ev, TERMKEY_MOUSE_RELEASE, "mouse event for release SGR");
-
-- termkey_push_bytes(tk, "\e[<0;500;300M", 13);
-+ termkey_push_bytes(tk, "\x1b[<0;500;300M", 13);
-
- key.type = -1;
- ev = -1; button = -1; line = -1; col = -1;
-diff --git a/t/31position.c b/t/31position.c
-index 1748211..86ad1bc 100644
---- a/t/31position.c
-+++ b/t/31position.c
-@@ -11,7 +11,7 @@ int main(int argc, char *argv[])
-
- tk = termkey_new_abstract("vt100", 0);
-
-- termkey_push_bytes(tk, "\e[?15;7R", 8);
-+ termkey_push_bytes(tk, "\x1b[?15;7R", 8);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for position report");
-
-@@ -25,7 +25,7 @@ int main(int argc, char *argv[])
- /* A plain CSI R is likely to be <F3> though.
- * This is tricky :/
- */
-- termkey_push_bytes(tk, "\e[R", 3);
-+ termkey_push_bytes(tk, "\x1b[R", 3);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for <F3>");
-
-diff --git a/t/32modereport.c b/t/32modereport.c
-index 31de400..5e49705 100644
---- a/t/32modereport.c
-+++ b/t/32modereport.c
-@@ -11,7 +11,7 @@ int main(int argc, char *argv[])
-
- tk = termkey_new_abstract("vt100", 0);
-
-- termkey_push_bytes(tk, "\e[?1;2$y", 8);
-+ termkey_push_bytes(tk, "\x1b[?1;2$y", 8);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for mode report");
-
-@@ -23,7 +23,7 @@ int main(int argc, char *argv[])
- is_int(mode, 1, "mode number from mode report");
- is_int(value, 2, "mode value from mode report");
-
-- termkey_push_bytes(tk, "\e[4;1$y", 7);
-+ termkey_push_bytes(tk, "\x1b[4;1$y", 7);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for mode report");
-
-diff --git a/t/38csi.c b/t/38csi.c
-index 9d186f6..fd592d5 100644
---- a/t/38csi.c
-+++ b/t/38csi.c
-@@ -13,7 +13,7 @@ int main(int argc, char *argv[])
-
- tk = termkey_new_abstract("vt100", 0);
-
-- termkey_push_bytes(tk, "\e[5;25v", 7);
-+ termkey_push_bytes(tk, "\x1b[5;25v", 7);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for CSI v");
-
-@@ -26,14 +26,14 @@ int main(int argc, char *argv[])
- is_int(args[1], 25, "args[1] for unknown CSI");
- is_int(command, 'v', "command for unknown CSI");
-
-- termkey_push_bytes(tk, "\e[?w", 4);
-+ termkey_push_bytes(tk, "\x1b[?w", 4);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for CSI ? w");
- is_int(key.type, TERMKEY_TYPE_UNKNOWN_CSI, "key.type for unknown CSI");
- is_int(termkey_interpret_csi(tk, &key, args, &nargs, &command), TERMKEY_RES_KEY, "interpret_csi yields RES_KEY");
- is_int(command, '?'<<8 | 'w', "command for unknown CSI");
-
-- termkey_push_bytes(tk, "\e[?$x", 5);
-+ termkey_push_bytes(tk, "\x1b[?$x", 5);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for CSI ? $x");
- is_int(key.type, TERMKEY_TYPE_UNKNOWN_CSI, "key.type for unknown CSI");
-diff --git a/t/39dcs.c b/t/39dcs.c
-index c517411..f065477 100644
---- a/t/39dcs.c
-+++ b/t/39dcs.c
-@@ -12,7 +12,7 @@ int main(int argc, char *argv[])
- tk = termkey_new_abstract("xterm", 0);
-
- // 7bit DCS
-- termkey_push_bytes(tk, "\eP1$r1 q\e\\", 10);
-+ termkey_push_bytes(tk, "\x1bP1$r1 q\x1b\\", 10);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for DCS");
-
-@@ -38,7 +38,7 @@ int main(int argc, char *argv[])
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_NONE, "getkey again yields RES_NONE");
-
- // 7bit OSC
-- termkey_push_bytes(tk, "\e]15;abc\e\\", 10);
-+ termkey_push_bytes(tk, "\x1b]15;abc\x1b\\", 10);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_KEY, "getkey yields RES_KEY for OSC");
-
-@@ -51,7 +51,7 @@ int main(int argc, char *argv[])
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_NONE, "getkey again yields RES_NONE");
-
- // False alarm
-- termkey_push_bytes(tk, "\eP", 2);
-+ termkey_push_bytes(tk, "\x1bP", 2);
-
- is_int(termkey_getkey(tk, &key), TERMKEY_RES_AGAIN, "getkey yields RES_AGAIN for false alarm");
-