X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=ncurses%2Fcurses.priv.h;h=ade33c79f8ee2821b8899ab9cdc7d0bc3e110061;hb=44963481f15221316cbf9f7289a710f54cab2c84;hp=9f309c862cbdb8d02e619dec100a3bdcaf16d8a1;hpb=0237f10a296593d54fd8b2aa144921983085e002;p=ncurses.git diff --git a/ncurses/curses.priv.h b/ncurses/curses.priv.h index 9f309c86..ade33c79 100644 --- a/ncurses/curses.priv.h +++ b/ncurses/curses.priv.h @@ -34,7 +34,7 @@ ****************************************************************************/ /* - * $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 * @@ -71,7 +71,7 @@ extern "C" { #include #endif -#if HAVE_SYS_BSDTYPES_H +#if HAVE_SYS_BSDTYPES_H && !(defined(_WIN32) || defined(_WIN64)) #include /* needed for ISC */ #endif @@ -184,7 +184,7 @@ extern int errno; * 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 @@ -916,6 +916,8 @@ typedef struct { int slk_format; + int getstr_limit; /* getstr_limit based on POSIX LINE_MAX */ + char *safeprint_buf; size_t safeprint_used; @@ -1003,6 +1005,15 @@ extern NCURSES_EXPORT_VAR(NCURSES_GLOBALS) _nc_globals; #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; @@ -1752,6 +1763,7 @@ typedef void VoidFunc(void); #define TR_FUNC(value) ((const char*) (value)) #define NonNull(s) ((s) != 0 ? s : "") +#define NonEmpty(s) ((s) != 0 && *(s) != '\0') #define returnAttr(code) TRACE_RETURN(code,attr_t) #define returnBits(code) TRACE_RETURN(code,unsigned) @@ -2271,7 +2283,7 @@ extern NCURSES_EXPORT(int) _nc_eventlist_timeout(_nc_eventlist *); */ #if USE_WIDEC_SUPPORT -#if defined(__MINGW32__) +#if defined(_WIN32) /* * MinGW has wide-character functions, but they do not work correctly. */ @@ -2286,7 +2298,7 @@ extern int __MINGW_NOTHROW _nc_mbtowc(wchar_t *, const char *, size_t); 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))