/****************************************************************************
- * Copyright (c) 1998-2018,2019 Free Software Foundation, Inc. *
+ * Copyright 2018-2019,2020 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 *
/****************************************************************************
* Author: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: test.priv.h,v 1.181 2019/04/13 22:54:18 tom Exp $ */
+/* $Id: test.priv.h,v 1.189 2020/08/01 16:55:28 tom Exp $ */
#ifndef __TEST_PRIV_H
#define __TEST_PRIV_H 1
#include <curses.h>
#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 */
#include <assert.h>
#include <ctype.h>
+#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
#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
* 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
#if defined(NCURSES_VERSION) && HAVE_NC_ALLOC_H
#include <nc_alloc.h>
-#if HAVE_NC_FREEALL && defined(USE_TINFO)
+#if HAVE_EXIT_TERMINFO && defined(USE_TINFO)
#undef ExitProgram
-#define ExitProgram(code) _nc_free_tinfo(code)
+#define ExitProgram(code) exit_terminfo(code)
#endif
#else
#define typeMalloc(type,n) (type *) malloc((size_t)(n) * sizeof(type))
#endif
#if !HAVE_STRSTR
-extern char * _nc_strstr (const char *, const char *);
+extern char *_nc_strstr(const char *, const char *);
#define strstr(a,b) _nc_strstr((a),(b))
-#endif /* !HAVE_STRSTR */
+#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
#define InitAndCatch(init,handler) do { init; CATCHALL(handler); } while (0)
#endif
+#if defined(_WIN32) || 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
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 *);