From b6ee41b355dc589bec1f31b7debfbac20cfe8e00 Mon Sep 17 00:00:00 2001 From: nick black Date: Sun, 17 Nov 2019 12:55:12 -0500 Subject: [PATCH] link in tinfo, call setupterm() --- CMakeLists.txt | 8 ++++++++ src/lib/notcurses.c | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 37458f8c8..3ee9930a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,12 +10,20 @@ configure_file(tools/version.h.in include/version.h) include(GNUInstallDirs) +find_package(PkgConfig REQUIRED) +pkg_check_modules(TERMINFO REQUIRED tinfo>=6.1) + file(GLOB LIBSRCS CONFIGURE_DEPENDS src/lib/*.c) add_library(notcurses SHARED ${LIBSRCS}) target_include_directories(notcurses PRIVATE include "${PROJECT_BINARY_DIR}/include" + "${TERMINFO_INCLUDE_DIR}" +) +target_link_libraries(notcurses + INTERFACE + "${TERMINFO_LIBRARIES}" ) set_target_properties(notcurses PROPERTIES PUBLIC_HEADER "include/notcurses.h" diff --git a/src/lib/notcurses.c b/src/lib/notcurses.c index cd6868781..f964a2cd8 100644 --- a/src/lib/notcurses.c +++ b/src/lib/notcurses.c @@ -1,3 +1,5 @@ +#include // needed for some definitions, see terminfo(3ncurses) +#include #include #include #include @@ -37,6 +39,12 @@ notcurses* notcurses_init(void){ if(ret == NULL){ return ret; } + int termerr; + if(setupterm(NULL, STDERR_FILENO, &termerr) != OK){ + fprintf(stderr, "Terminfo error %d (see terminfo(3ncurses))\n", termerr); + free(ret); + return NULL; + } // FIXME should we maybe use stdout if stdin was redirected? ret->ttyfd = STDIN_FILENO; return ret;