include curses.h when needed

This commit is contained in:
Ailin Nemui 2025-04-08 07:42:10 +02:00
parent fca3e83e68
commit 7bac5eb762
3 changed files with 31 additions and 4 deletions

View File

@ -569,6 +569,28 @@ foreach h : headers
endif
endforeach
if want_textui and conf.get('HAVE_TERM_H', 0) == 1
if not cc.links('''
#include <stdio.h>
#include <term.h>
int main () {
return tputs("x", 1, putchar);
}
''', dependencies : textui_dep)
if cc.has_header('curses.h') and cc.links('''
#include <curses.h>
#include <term.h>
int main () {
return tputs("x", 1, putchar);
}
''', dependencies : textui_dep, name : 'working Curses')
conf.set('NEED_CURSES_H', 1, description : 'tputs needs curses.h')
else
error('could not link terminfo')
endif
endif
endif
conf.set('HAVE_LIBUTF8PROC', have_libutf8proc)
conf.set_quoted('PACKAGE_VERSION', package_version)
conf.set_quoted('PACKAGE_TARNAME', meson.project_name())

View File

@ -31,6 +31,9 @@
#include <stdio.h>
#ifdef HAVE_TERM_H
#ifdef NEED_CURSES_H
#include <curses.h>
#endif
#include <term.h>
#else
/* TODO: This needs arguments, starting with C2X. */
@ -40,8 +43,7 @@ int tputs();
/* returns number of characters in the beginning of the buffer being a
a single character, or -1 if more input is needed. The character will be
saved in result */
typedef int (*TERM_INPUT_FUNC)(const unsigned char *buffer, int size,
unichar *result);
typedef int (*TERM_INPUT_FUNC)(const unsigned char *buffer, int size, unichar *result);
struct _TERM_WINDOW {
/* Terminal to use for window */

View File

@ -13,6 +13,9 @@ inline static int term_putchar(int c)
}
#ifdef HAVE_TERM_H
#ifdef NEED_CURSES_H
#include <curses.h>
#endif
#include <term.h>
#else
/* Don't bother including curses.h because of these -