From fa79a8ad6deefeea81c1959d69aa4c8b2d993f99 Mon Sep 17 00:00:00 2001 From: Christian Clason Date: Thu, 8 Aug 2024 12:28:47 +0200 Subject: build(deps): vendor libvterm at v0.3.3 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. --- src/nvim/CMakeLists.txt | 6 ++---- src/nvim/os/win_defs.h | 3 +++ src/nvim/terminal.c | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) (limited to 'src/nvim') diff --git a/src/nvim/CMakeLists.txt b/src/nvim/CMakeLists.txt index d153c9e3ef..87c9506709 100644 --- a/src/nvim/CMakeLists.txt +++ b/src/nvim/CMakeLists.txt @@ -30,7 +30,6 @@ target_link_libraries(main_lib INTERFACE ${LUV_LIBRARY}) find_package(Iconv REQUIRED) find_package(Libuv 1.28.0 REQUIRED) -find_package(Libvterm 0.3.3 REQUIRED) find_package(Lpeg REQUIRED) find_package(Treesitter 0.22.6 REQUIRED) find_package(Unibilium 2.0 REQUIRED) @@ -38,7 +37,6 @@ find_package(UTF8proc REQUIRED) target_link_libraries(main_lib INTERFACE iconv - libvterm lpeg treesitter unibilium @@ -366,8 +364,8 @@ file(MAKE_DIRECTORY ${TOUCHES_DIR} ${GENERATED_DIR} ${GENERATED_INCLUDES_DIR}) file(GLOB NVIM_SOURCES CONFIGURE_DEPENDS *.c) file(GLOB NVIM_HEADERS CONFIGURE_DEPENDS *.h) -file(GLOB EXTERNAL_SOURCES CONFIGURE_DEPENDS ../xdiff/*.c ../mpack/*.c ../cjson/*.c ../klib/*.c ../termkey/*.c) -file(GLOB EXTERNAL_HEADERS CONFIGURE_DEPENDS ../xdiff/*.h ../mpack/*.h ../cjson/*.h ../klib/*.h ../termkey/*.h) +file(GLOB EXTERNAL_SOURCES CONFIGURE_DEPENDS ../xdiff/*.c ../mpack/*.c ../cjson/*.c ../klib/*.c ../termkey/*.c ../vterm/*.c) +file(GLOB EXTERNAL_HEADERS CONFIGURE_DEPENDS ../xdiff/*.h ../mpack/*.h ../cjson/*.h ../klib/*.h ../termkey/*.h ../vterm/*.h) file(GLOB NLUA0_SOURCES CONFIGURE_DEPENDS ../mpack/*.c) diff --git a/src/nvim/os/win_defs.h b/src/nvim/os/win_defs.h index 852059f78b..024719806c 100644 --- a/src/nvim/os/win_defs.h +++ b/src/nvim/os/win_defs.h @@ -16,6 +16,9 @@ #include #include +// vterm.h defines an `unsigned int small` in a struct, triggering error C2632 +#undef small + // Windows does not have S_IFLNK but libuv defines it // and sets the flag for us when calling uv_fs_stat. #include diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c index 507a9e3a2a..abc9b3534b 100644 --- a/src/nvim/terminal.c +++ b/src/nvim/terminal.c @@ -40,8 +40,6 @@ #include #include #include -#include -#include #include "klib/kvec.h" #include "nvim/api/private/helpers.h" @@ -94,6 +92,8 @@ #include "nvim/ui.h" #include "nvim/vim_defs.h" #include "nvim/window.h" +#include "vterm/vterm.h" +#include "vterm/vterm_keycodes.h" typedef struct { VimState state; -- cgit