]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - test/test.priv.h
ncurses 6.0 - patch 20170225
[ncurses.git] / test / test.priv.h
index 486dbfded781a9098eb517b15e7f2a229de74c2f..329d6a2f436ce205a63dc2e7328d0c01d7675833 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc.              *
+ * Copyright (c) 1998-2016,2017 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 +29,7 @@
 /****************************************************************************
  *  Author: Thomas E. Dickey                    1996-on                     *
  ****************************************************************************/
-/* $Id: test.priv.h,v 1.112 2011/04/23 23:32:07 tom Exp $ */
+/* $Id: test.priv.h,v 1.139 2017/02/11 16:33:09 tom Exp $ */
 
 #ifndef __TEST_PRIV_H
 #define __TEST_PRIV_H 1
@@ -62,6 +62,9 @@
 #define HAVE_ASSUME_DEFAULT_COLORS 0
 #endif
 
+#ifndef HAVE_BSD_STRING_H
+#define HAVE_BSD_STRING_H 0
+#endif
 #ifndef HAVE_CURSES_VERSION
 #define HAVE_CURSES_VERSION 0
 #endif
 #define HAVE_LIBPANEL 0
 #endif
 
+#ifndef HAVE_LANGINFO_CODESET
+#define HAVE_LANGINFO_CODESET 0
+#endif
+
 #ifndef HAVE_LOCALE_H
 #define HAVE_LOCALE_H 0
 #endif
 #define HAVE_RESIZE_TERM 0
 #endif
 
+#ifndef HAVE_RESTARTTERM
+#define HAVE_RESTARTTERM 0
+#endif
+
 #ifndef HAVE_RIPOFFLINE
 #define HAVE_RIPOFFLINE 0
 #endif
 
+#ifndef HAVE_SCR_DUMP
+#define HAVE_SCR_DUMP 0
+#endif
+
 #ifndef HAVE_SETUPTERM
 #define HAVE_SETUPTERM 0
 #endif
 #define HAVE_SLK_INIT 0
 #endif
 
+#ifndef HAVE_SYS_IOCTL_H
+#define HAVE_SYS_IOCTL_H 0
+#endif
+
+#ifndef HAVE_SYS_SELECT_H
+#define HAVE_SYS_SELECT_H 0
+#endif
+
 #ifndef HAVE_TERMATTRS
 #define HAVE_TERMATTRS 0
 #endif
 
+#ifndef HAVE_TERMIOS_H
+#define HAVE_TERMIOS_H 0
+#endif
+
 #ifndef HAVE_TERMNAME
 #define HAVE_TERMNAME 0
 #endif
 
+#ifndef HAVE_TERM_ENTRY_H
+#define HAVE_TERM_ENTRY_H 0
+#endif
+
 #ifndef HAVE_TGETENT
 #define HAVE_TGETENT 0
 #endif
 #define HAVE_USE_DEFAULT_COLORS 0
 #endif
 
+#ifndef HAVE_USE_ENV
+#define HAVE_USE_ENV 0
+#endif
+
+#ifndef HAVE_USE_EXTENDED_NAMES
+#define HAVE_USE_EXTENDED_NAMES 0
+#endif
+
 #ifndef HAVE_USE_SCREEN
 #define HAVE_USE_SCREEN 0
 #endif
 #define HAVE_USE_WINDOW 0
 #endif
 
+#ifndef HAVE_VIDPUTS
+#define HAVE_VIDPUTS 0
+#endif
+
+#ifndef HAVE_VID_PUTS
+#define HAVE_VID_PUTS 0
+#endif
+
 #ifndef HAVE_WRESIZE
 #define HAVE_WRESIZE 0
 #endif
@@ -349,7 +396,10 @@ extern int optind;
 #endif
 
 #ifndef USE_WIDEC_SUPPORT
-#if (defined(_XOPEN_SOURCE_EXTENDED) || defined(_XPG5)) && defined(WACS_ULCORNER)
+#if (defined(_XOPEN_SOURCE_EXTENDED) \
+  || (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE - 0 >= 500)) \
+  || (defined(NCURSES_WIDECHAR) && (NCURSES_WIDECHAR - 0 < 1))) \
+  && defined(WACS_ULCORNER)
 #define USE_WIDEC_SUPPORT 1
 #else
 #define USE_WIDEC_SUPPORT 0
@@ -401,8 +451,12 @@ extern int optind;
 #define NCURSES_CH_T cchar_t
 #endif
 
-#ifndef NCURSES_OPAQUE
-#define NCURSES_OPAQUE 0
+#ifndef NCURSES_COLOR_T
+#define NCURSES_COLOR_T short
+#endif
+
+#ifndef NCURSES_PAIRS_T
+#define NCURSES_PAIRS_T short
 #endif
 
 #ifndef CCHARW_MAX
@@ -492,12 +546,67 @@ extern int optind;
 #define KEY_MIN 256            /* not defined in Solaris 8 */
 #endif
 
+/* from nc_string.h, to make this stand alone */
+#if HAVE_BSD_STRING_H
+#include <bsd/string.h>
+#endif
+
+#ifdef __cplusplus
+#define NCURSES_VOID           /* nothing */
+#else
+#define NCURSES_VOID (void)
+#endif
+
+#ifndef HAVE_STRLCAT
+#define HAVE_STRLCAT 0
+#endif
+
+#ifndef HAVE_STRLCPY
+#define HAVE_STRLCPY 0
+#endif
+
+#ifndef HAVE_SNPRINTF
+#define HAVE_SNPRINTF 0
+#endif
+
+#ifndef USE_STRING_HACKS
+#define USE_STRING_HACKS 0
+#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))
+#else
+#define _nc_STRCAT(d,s,n)      NCURSES_VOID strcat((d),(s))
+#define _nc_STRNCAT(d,s,m,n)   NCURSES_VOID strncat((d),(s),(n))
+#endif
+
+#if USE_STRING_HACKS && HAVE_STRLCPY
+#define _nc_STRCPY(d,s,n)      NCURSES_VOID strlcpy((d),(s),NCURSES_CAST(size_t,n))
+#define _nc_STRNCPY(d,s,n)     NCURSES_VOID strlcpy((d),(s),NCURSES_CAST(size_t,n))
+#else
+#define _nc_STRCPY(d,s,n)      NCURSES_VOID strcpy((d),(s))
+#define _nc_STRNCPY(d,s,n)     NCURSES_VOID strncpy((d),(s),(n))
+#endif
+
+#if USE_STRING_HACKS && HAVE_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_SLIMIT(n)          /* nothing */
+#endif
+
 #ifdef DECL_CURSES_DATA_BOOLNAMES
 extern char *boolnames[], *boolcodes[], *boolfnames[];
 extern char *numnames[], *numcodes[], *numfnames[];
 extern char *strnames[], *strcodes[], *strfnames[];
 #endif
 
+#ifdef DECL_CURSES_DATA_TTYTYPE
+#define ttytype termname()
+#endif
+
 #define colored_chtype(ch, attr, pair) \
        ((chtype) (ch) | (chtype) (attr) | (chtype) COLOR_PAIR(pair))
 
@@ -523,7 +632,7 @@ extern char *strnames[], *strcodes[], *strfnames[];
        if ((count = getcchar(s, NULL, NULL, NULL, NULL)) > 0) { \
            wchar_t test_wch[CCHARW_MAX + 2]; \
            attr_t test_attrs; \
-           short test_pair; \
+           NCURSES_PAIRS_T test_pair; \
            \
            if (getcchar( s, test_wch, &test_attrs, &test_pair, NULL) == OK \
                && test_wch[0] != L'\0') { \
@@ -592,6 +701,17 @@ extern char *strnames[], *strcodes[], *strfnames[];
 #define TIGETSTR(ti,tc) tgetstr(tc,&area_pointer)
 #endif
 
+/*
+ * So far (2013 - more than ten years), only ncurses implements
+ * use_extended_names().
+ */
+#if defined(NCURSES_XNAMES)
+#elif defined(NCURSES_VERSION) && defined(HAVE_TERM_ENTRY_H) && HAVE_TERM_ENTRY_H
+#define NCURSES_XNAMES 1
+#else
+#define NCURSES_XNAMES 0
+#endif
+
 /* ncurses implements tparm() with varargs, X/Open with a fixed-parameter list
  * (which is incompatible with legacy usage, doesn't solve any problems).
  */
@@ -609,9 +729,9 @@ extern char *strnames[], *strcodes[], *strfnames[];
 #define ExitProgram(code) _nc_free_tinfo(code)
 #endif
 #else
-#define typeMalloc(type,n) (type *) malloc((n) * sizeof(type))
-#define typeCalloc(type,elts) (type *) calloc((elts), sizeof(type))
-#define typeRealloc(type,n,p) (type *) realloc(p, (n) * sizeof(type))
+#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))
 #endif
 
 #ifndef ExitProgram
@@ -625,8 +745,32 @@ extern char *strnames[], *strcodes[], *strfnames[];
 #define EXIT_FAILURE 1
 #endif
 
-#ifdef __MINGW32__
+#if defined(__MINGW32__) || defined(USE_WIN32CON_DRIVER)
+
+#if defined(PDCURSES)
+#ifdef WINVER
+#  if WINVER < 0x0501
+#    error WINVER must at least be 0x0501
+#  endif
+#else
+#  define WINVER 0x0501
+#endif
+#include <windows.h>
+#include <sys/time.h>          /* for struct timeval */
+#undef sleep
+#define sleep(n) Sleep((n) * 1000)
+#define SIGHUP  1
+#define SIGKILL 9
+#define getlogin() "username"
+
+#elif defined(HAVE_NCURSESW_NCURSES_H)
+#include <ncursesw/nc_mingw.h>
+#elif defined(HAVE_NCURSES_NCURSES_H)
+#include <ncurses/nc_mingw.h>
+#else
 #include <nc_mingw.h>
+#endif
+
 /* conflicts in test/firstlast.c */
 #undef large
 #undef small
@@ -755,6 +899,8 @@ extern char *tgoto(char *, int, int);       /* available, but not prototyped */
 #define USE_TRACE 0
 #endif
 
+#define Trace2(p)              /* nothing */
+
 #define MvAddCh         (void) mvaddch
 #define MvWAddCh        (void) mvwaddch
 #define MvAddStr        (void) mvaddstr
@@ -767,6 +913,15 @@ extern char *tgoto(char *, int, int);      /* available, but not prototyped */
 #define MvVLine         (void) mvvline
 #define MvWVLine        (void) mvwvline
 
+/*
+ * The macro likely uses unsigned values, while X/Open prototype uses int.
+ */
+#if defined(wattrset) || defined(PDCURSES)
+#define AttrArg(p,a)    (attr_t) ((attr_t)(p) | (attr_t)(a))
+#else
+#define AttrArg(p,a)    (int) ((attr_t)(p) | (attr_t)(a))
+#endif
+
 /*
  * Workaround for defective implementation of gcc attribute warn_unused_result
  */