X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Ftest.priv.h;h=58f79e00125cb778df48eecf099b4f847c783bb1;hp=f1ac8774248f2d74ddeabd951b9bc908669274bf;hb=312665d3aaaf5d8e3ba34d80fdd650abf758272a;hpb=bfe3845eb1a2ff02a740e917b537e939ec4e44cb diff --git a/test/test.priv.h b/test/test.priv.h index f1ac8774..58f79e00 100644 --- a/test/test.priv.h +++ b/test/test.priv.h @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. * + * Copyright 2018-2020,2021 Thomas E. Dickey * + * Copyright 1998-2017,2018 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -29,7 +30,7 @@ /**************************************************************************** * Author: Thomas E. Dickey 1996-on * ****************************************************************************/ -/* $Id: test.priv.h,v 1.171 2018/12/29 21:44:07 tom Exp $ */ +/* $Id: test.priv.h,v 1.197 2021/04/25 00:00:24 tom Exp $ */ #ifndef __TEST_PRIV_H #define __TEST_PRIV_H 1 @@ -242,6 +243,14 @@ #define HAVE_STDINT_H 0 #endif +#ifndef HAVE_STDNORETURN_H +#define HAVE_STDNORETURN_H 0 +#endif + +#ifndef HAVE_STRSTR +#define HAVE_STRSTR 0 +#endif + #ifndef HAVE_SYS_IOCTL_H #define HAVE_SYS_IOCTL_H 0 #endif @@ -250,10 +259,6 @@ #define HAVE_SYS_SELECT_H 0 #endif -#ifndef HAVE_TDESTROY -#define HAVE_TDESTROY 0 -#endif - #ifndef HAVE_TERMATTRS #define HAVE_TERMATTRS 0 #endif @@ -390,6 +395,16 @@ #include #endif +#if HAVE_STDNORETURN_H && !defined(NCURSES_VERSION) +#include +#undef GCC_NORETURN +#define GCC_NORETURN _Noreturn +#endif + +#if !(defined(NCURSES_WGETCH_EVENTS) && defined(NEED_KEY_EVENT)) +#undef KEY_EVENT /* reduce compiler-warnings with Visual C++ */ +#endif + #if defined(HAVE_XCURSES) || defined(PDCURSES) /* no other headers */ #undef HAVE_SETUPTERM /* nonfunctional */ @@ -436,6 +451,13 @@ extern int optind; #include #include +#if defined(_MSC_VER) +#undef popen +#define popen(s,n) _popen(s,n) +#undef pclose +#define pclose(s) _pclose(s) +#endif + #ifndef GCC_NORETURN #define GCC_NORETURN /* nothing */ #endif @@ -453,6 +475,12 @@ extern int optind; #define getnstr(s,n) getstr(s) #endif +#if HAVE_INIT_EXTENDED_COLOR +#define USE_EXTENDED_COLOR 1 +#else +#define USE_EXTENDED_COLOR 0 +#endif + #ifndef USE_SOFTKEYS #if HAVE_SLK_INIT #define USE_SOFTKEYS 1 @@ -467,6 +495,18 @@ extern int optind; #define slk_clear() /* nothing */ #endif +#ifndef HAVE_CURSES_DATA_TABSIZE +#define HAVE_CURSES_DATA_TABSIZE 0 +#endif + +#if !NCURSES_EXT_FUNCS +#if HAVE_CURSES_DATA_TABSIZE +#define set_tabsize(n) TABSIZE = (n) +#else +#define set_tabsize(n) /* nothing */ +#endif +#endif + #if HAVE_TPUTS_SP #define USE_SP_FUNCS 1 #else @@ -508,9 +548,9 @@ extern int optind; /* workaround, to build against NetBSD's variant of the form library */ #ifdef HAVE_NETBSD_FORM_H -#define form_getyx(form, y, x) y = current_field(form)->cursor_ypos, x = current_field(form)->cursor_xpos +#define form_getyx(form, y, x) y = (int)current_field(form)->cursor_ypos, x = (int)current_field(form)->cursor_xpos #else -#define form_getyx(form, y, x) y = (form)->currow, x = (form)->curcol +#define form_getyx(form, y, x) y = (int)(form)->currow, x = (int)(form)->curcol #endif /* workaround, to build against NetBSD's variant of the form library */ @@ -682,6 +722,15 @@ extern int optind; #define USE_STRING_HACKS 0 #endif +#ifndef NCURSES_CAST +#ifdef __cplusplus +extern "C" { +#define NCURSES_CAST(type,value) static_cast(value) +#else +#define NCURSES_CAST(type,value) (type)(value) +#endif +#endif + #if USE_STRING_HACKS && HAVE_STRLCAT #define _nc_STRCAT(d,s,n) NCURSES_VOID strlcat((d),(s),NCURSES_CAST(size_t,n)) #define _nc_STRNCAT(d,s,m,n) NCURSES_VOID strlcat((d),(s),NCURSES_CAST(size_t,m)) @@ -699,19 +748,44 @@ extern int optind; #endif #if USE_STRING_HACKS && HAVE_SNPRINTF -#define _nc_SPRINTF NCURSES_VOID snprintf +#define _nc_SPRINTF NCURSES_VOID (snprintf) #define _nc_SLIMIT(n) NCURSES_CAST(size_t,n), #else -#define _nc_SPRINTF NCURSES_VOID sprintf +#define _nc_SPRINTF NCURSES_VOID (sprintf) #define _nc_SLIMIT(n) /* nothing */ #endif +/* + * X/Open Curses does not define the arrays of terminfo/termcap names as SVr4 + * curses did, and some implementations provide them anyway, but undeclared. + */ #ifdef DECL_CURSES_DATA_BOOLNAMES extern char *boolnames[], *boolcodes[], *boolfnames[]; extern char *numnames[], *numcodes[], *numfnames[]; extern char *strnames[], *strcodes[], *strfnames[]; #endif +/* + * Again, an SVr4 curses feature latent in the libraries but not in headers. + */ +#ifndef DECL_CURSES_DATA_TABSIZE +#define DECL_CURSES_DATA_TABSIZE 0 +#endif + +#if DECL_CURSES_DATA_TABSIZE +extern int TABSIZE; +#undef HAVE_CURSES_DATA_TABSIZE +#define HAVE_CURSES_DATA_TABSIZE 1 +#endif + +#ifndef HAVE_CURSES_DATA_TABSIZE +#define HAVE_CURSES_DATA_TABSIZE 0 +#endif + +/* + * X/Open Curses provides termname(), whose return value is analogous to the + * SVr4 curses variable ttytype[]. + */ #ifndef HAVE_CURSES_DATA_TTYTYPE #define HAVE_CURSES_DATA_TTYTYPE 0 #endif @@ -833,9 +907,9 @@ extern char *strnames[], *strcodes[], *strfnames[]; * ncurses restores the cursor in endwin(). Other libraries may not. */ #ifdef NCURSES_VERSION -#define exit_curses() endwin() +#define stop_curses() endwin() #else -#define exit_curses() do { endwin(); curs_set(1); } while (0) +#define stop_curses() do { endwin(); curs_set(1); } while (0) #endif /* ncurses implements tparm() with varargs, X/Open with a fixed-parameter list @@ -850,11 +924,14 @@ extern char *strnames[], *strcodes[], *strfnames[]; #if defined(NCURSES_VERSION) && HAVE_NC_ALLOC_H #include -#if HAVE_NC_FREEALL && defined(USE_TINFO) +#if HAVE_EXIT_TERMINFO && (defined(USE_TERMINFO) || defined(USE_TINFO)) +#undef ExitProgram +#define ExitProgram(code) exit_terminfo(code) +#elif HAVE_EXIT_CURSES #undef ExitProgram -#define ExitProgram(code) _nc_free_tinfo(code) +#define ExitProgram(code) exit_curses(code) #endif -#else +#else /* not ncurses-tree */ #define typeMalloc(type,n) (type *) malloc((size_t)(n) * sizeof(type)) #define typeCalloc(type,elts) (type *) calloc((size_t)(elts), sizeof(type)) #define typeRealloc(type,n,p) (type *) realloc(p, (size_t)(n) * sizeof(type)) @@ -871,7 +948,12 @@ extern char *strnames[], *strcodes[], *strfnames[]; #define EXIT_FAILURE 1 #endif -#if defined(_WIN32) || defined(USE_WIN32CON_DRIVER) +#undef _NC_WINDOWS +#if (defined(_WIN32) || defined(_WIN64)) +#define _NC_WINDOWS 1 +#endif + +#if defined(_NC_WINDOWS) || defined(USE_WIN32CON_DRIVER) #if defined(PDCURSES) #ifdef WINVER @@ -889,7 +971,19 @@ extern char *strnames[], *strcodes[], *strfnames[]; #define SIGKILL 9 #define getlogin() "username" -#elif defined(HAVE_NCURSESW_NCURSES_H) +#elif defined(EXP_WIN32_DRIVER) + +#if defined(HAVE_NCURSESW_NCURSES_H) +#include +#elif defined(HAVE_NCURSES_NCURSES_H) +#include +#else +#include +#endif + +#else + +#if defined(HAVE_NCURSESW_NCURSES_H) #include #elif defined(HAVE_NCURSES_NCURSES_H) #include @@ -897,6 +991,8 @@ extern char *strnames[], *strcodes[], *strfnames[]; #include #endif +#endif + /* conflicts in test/firstlast.c */ #undef large #undef small @@ -916,6 +1012,18 @@ extern char *strnames[], *strcodes[], *strfnames[]; #endif #endif +/* + * Ultrix 3.1 + */ +#ifndef STDOUT_FILENO +#define STDOUT_FILENO 1 +#endif + +#if !HAVE_STRSTR +extern char *_nc_strstr(const char *, const char *); +#define strstr(a,b) _nc_strstr((a),(b)) +#endif /* !HAVE_STRSTR */ + /* Use this to quiet gcc's -Wwrite-strings warnings, but accommodate SVr4 * curses which doesn't have const parameters declared (so far) in the places * that XSI shows. @@ -957,6 +1065,12 @@ extern char *strnames[], *strcodes[], *strfnames[]; #define InitAndCatch(init,handler) do { init; CATCHALL(handler); } while (0) #endif +#if defined(_NC_WINDOWS) || defined(USE_WIN32CON_DRIVER) +#define SetupAlarm(opt) (void)opt +#else +#define SetupAlarm(opt) if (opt) alarm((unsigned)opt) +#endif + /* * Workaround for clean(er) compile with Solaris's legacy curses. * The same would be needed for HPUX 10.20 @@ -1009,10 +1123,26 @@ extern char *tgoto(char *, int, int); /* available, but not prototyped */ #endif #endif +/* + * ncurses provides a termcap interface; a few packagers replace or displace + * its header file with an incompatible one. The demo_termcap program uses + * the ncurses file, if available. + */ +#ifdef NCURSES_VERSION +#ifndef HAVE_NCURSES_TERMCAP_H +#define HAVE_NCURSES_TERMCAP_H 0 +#endif +#ifndef HAVE_TERMCAP_H +#define HAVE_TERMCAP_H 0 +#endif +#endif + /* * ncurses uses const in some places where X/Open does (or did) not allow. */ -#if defined(NCURSES_VERSION) || defined(PDCURSES) +#if defined(NCURSES_CONST) +#define CONST_MENUS NCURSES_CONST +#elif defined(PDCURSES) #define CONST_MENUS const #else #define CONST_MENUS /* nothing */ @@ -1049,7 +1179,7 @@ extern char *tgoto(char *, int, int); /* available, but not prototyped */ if ((_nc_tracing & TRACE_MAXIMUM) == 0) { \ int t = _nc_getenv_num("NCURSES_TRACE"); \ if (t >= 0) \ - trace((unsigned) t); \ + curses_trace((unsigned) t); \ } extern unsigned _nc_tracing; extern int _nc_getenv_num(const char *);