****************************************************************************/
/*
- * $Id: curses.priv.h,v 1.601 2018/05/20 19:21:56 tom Exp $
+ * $Id: curses.priv.h,v 1.607 2018/11/24 17:27:36 tom Exp $
*
* curses.priv.h
*
#include <unistd.h>
#endif
-#if HAVE_SYS_BSDTYPES_H
+#if HAVE_SYS_BSDTYPES_H && !(defined(_WIN32) || defined(_WIN64))
#include <sys/bsdtypes.h> /* needed for ISC */
#endif
* the path separator in configure doesn't work properly. So, if building
* for MinGW, we enforce the correct Windows PATH separator
*/
-#ifdef __MINGW32__
+#ifdef _WIN32
# ifdef NCURSES_PATHSEP
# undef NCURSES_PATHSEP
# endif
int slk_format;
+ int getstr_limit; /* getstr_limit based on POSIX LINE_MAX */
+
char *safeprint_buf;
size_t safeprint_used;
#define N_RIPS 5
+/* The limit reserves one byte for a terminating NUL */
+#define my_getstr_limit (_nc_globals.getstr_limit - 1)
+#define _nc_getstr_limit(n) \
+ (((n) < 0) \
+ ? my_getstr_limit \
+ : (((n) > my_getstr_limit) \
+ ? my_getstr_limit \
+ : (n)))
+
#ifdef USE_PTHREADS
typedef struct _prescreen_list {
struct _prescreen_list *next;
#define TR_FUNC(value) ((const char*) (value))
#define NonNull(s) ((s) != 0 ? s : "<null>")
+#define NonEmpty(s) ((s) != 0 && *(s) != '\0')
#define returnAttr(code) TRACE_RETURN(code,attr_t)
#define returnBits(code) TRACE_RETURN(code,unsigned)
*/
#if USE_WIDEC_SUPPORT
-#if defined(__MINGW32__)
+#if defined(_WIN32)
/*
* MinGW has wide-character functions, but they do not work correctly.
*/
extern int __MINGW_NOTHROW _nc_mblen(const char *, size_t);
#define mblen(s,n) _nc_mblen(s, n)
-#endif /* __MINGW32__ */
+#endif /* _WIN32 */
#if HAVE_MBTOWC && HAVE_MBLEN
#define reset_mbytes(state) IGNORE_RC(mblen(NULL, (size_t) 0)), IGNORE_RC(mbtowc(NULL, NULL, (size_t) 0))