]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/curses.priv.h
ncurses 6.1 - patch 20181125
[ncurses.git] / ncurses / curses.priv.h
index 89bc4a709663c1ed26d52c4a04f82f5fb8838b44..fd093f846477a96a84ce4059ea512c025519c65f 100644 (file)
@@ -34,7 +34,7 @@
  ****************************************************************************/
 
 /*
- * $Id: curses.priv.h,v 1.604 2018/06/30 21:59:10 tom Exp $
+ * $Id: curses.priv.h,v 1.608 2018/11/25 11:26:03 tom Exp $
  *
  *     curses.priv.h
  *
@@ -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;
@@ -1713,6 +1724,9 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
 #define T_CREATE(fmt) "create :" fmt
 #define T_RETURN(fmt) "return }" fmt
 
+#define NonNull(s)              ((s) != 0 ? s : "<null>")
+#define NonEmpty(s)             ((s) != 0 && *(s) != '\0')
+
 #ifdef TRACE
 
 #if USE_REENTRANT
@@ -1751,7 +1765,6 @@ extern NCURSES_EXPORT(void)       _nc_locked_tracef (const char *, ...) GCC_PRINTFLIKE
 typedef void VoidFunc(void);
 
 #define TR_FUNC(value)          ((const char*) (value))
-#define NonNull(s)              ((s) != 0 ? s : "<null>")
 
 #define returnAttr(code)       TRACE_RETURN(code,attr_t)
 #define returnBits(code)       TRACE_RETURN(code,unsigned)