]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/curses.priv.h
ncurses 6.1 - patch 20180224
[ncurses.git] / ncurses / curses.priv.h
index 3a3b74469b723720aa0ca89a80eb07ad632ed9fe..18dc01d6bf698ed6a8a2a4cbfc4d0d1804ed955a 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 1998-2016,2017 Free Software Foundation, Inc.              *
+ * Copyright (c) 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            *
@@ -34,7 +34,7 @@
  ****************************************************************************/
 
 /*
- * $Id: curses.priv.h,v 1.580 2017/07/01 17:56:12 tom Exp $
+ * $Id: curses.priv.h,v 1.588 2018/02/10 16:13:31 tom Exp $
  *
  *     curses.priv.h
  *
@@ -332,6 +332,15 @@ typedef struct
 }
 color_t;
 
+typedef union {
+    struct {
+       unsigned char red;
+       unsigned char green;
+       unsigned char blue;
+    } bits;                    /* bits per color-value in RGB */
+    unsigned value;
+} rgb_bits_t;
+
 /*
  * If curses.h did not expose the SCREEN-functions, then we do not need the
  * parameter in the corresponding unextended functions.
@@ -387,13 +396,17 @@ color_t;
 #if NCURSES_EXT_COLORS && HAVE_INIT_EXTENDED_COLOR
 #define NCURSES_EXT_NUMBERS  1
 #define NCURSES_INT2         int
+#define SIZEOF_INT2          4
 #define TerminalType(tp)     (tp)->type2
 #else
 #define NCURSES_EXT_NUMBERS  0
 #define NCURSES_INT2         short
+#define SIZEOF_INT2          2
 #define TerminalType(tp)     (tp)->type
 #endif
 
+#define SIZEOF_SHORT         2
+
 #ifdef CUR
 #undef CUR
 #define CUR TerminalType(cur_term).
@@ -416,10 +429,11 @@ color_t;
 /*
  * Simplify ifdef's for the "*_ATTR" macros in case italics are not configured.
  */
-#ifdef A_ITALIC
+#if defined(A_ITALIC) && defined(exit_italics_mode)
 #define USE_ITALIC 1
 #else
 #define USE_ITALIC 0
+#undef  A_ITALIC
 #define A_ITALIC 0
 #endif
 
@@ -963,6 +977,9 @@ typedef struct {
        int             nested_tracef;
 #endif
 #endif /* TRACE */
+#if NO_LEAKS
+       bool            leak_checking;
+#endif
 
 #ifdef USE_PTHREADS
        pthread_mutex_t mutex_curses;
@@ -1046,6 +1063,12 @@ typedef struct {
 
 extern NCURSES_EXPORT_VAR(NCURSES_PRESCREEN) _nc_prescreen;
 
+typedef enum {
+    ewInitial = 0,
+    ewRunning,
+    ewSuspend
+} ENDWIN;
+
 /*
  * The SCREEN structure.
  */
@@ -1151,11 +1174,13 @@ struct screen {
        int             _scrolling;     /* 1 if terminal's smart enough to  */
 
        /* used in lib_color.c */
+       rgb_bits_t      _direct_color;  /* RGB overrides color-table         */
        color_t         *_color_table;  /* screen's color palette            */
        int             _color_count;   /* count of colors in palette        */
        colorpair_t     *_color_pairs;  /* screen's color pair list          */
        int             _pair_count;    /* same as COLOR_PAIRS               */
        int             _pair_limit;    /* actual limit of color-pairs       */
+       int             _pair_alloc;    /* current table-size of color-pairs */
 #if NCURSES_EXT_FUNCS
        bool            _assumed_color; /* use assumed colors                */
        bool            _default_color; /* use default colors                */
@@ -1355,7 +1380,7 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
     sp->_cbreak = 0;                            \
     sp->_echo = TRUE;                           \
     sp->_fifohead = -1;                         \
-    sp->_endwin = TRUE;                         \
+    sp->_endwin = ewSuspend;                    \
     sp->_cursor = -1;                           \
     SP_INIT_WINDOWLIST(sp);                     \
     sp->_outch = NCURSES_OUTC_FUNC;             \
@@ -1473,6 +1498,8 @@ extern NCURSES_EXPORT_VAR(SIG_ATOMIC_T) _nc_have_sigwinch;
                       && (a).chars[3] == (b).chars[3] \
                       && (a).chars[4] == (b).chars[4] \
                        if_EXT_COLORS(&& (a).ext_color == (b).ext_color))
+#elif CCHARW_MAX > 0
+#error Inconsistent values for CCHARW_MAX
 #else
 #define CharEq(a,b)    (!memcmp(&(a), &(b), sizeof(a)))
 #endif
@@ -1719,7 +1746,7 @@ typedef void VoidFunc(void);
 #define returnVoidPtr(code)    TRACE_RETURN1(code,void_ptr)
 #define returnWin(code)                TRACE_RETURN1(code,win)
 
-#define returnDB(code)         do { TR(TRACE_DATABASE,(T_RETURN("code %d"), (code))); return (code); } while (0)
+#define returnDB(rc)           do { TR(TRACE_DATABASE,(T_RETURN("code %d"), (rc))); return (rc); } while (0)
 
 extern NCURSES_EXPORT(NCURSES_BOOL)     _nc_retrace_bool (int);
 extern NCURSES_EXPORT(NCURSES_CONST void *) _nc_retrace_cvoid_ptr (NCURSES_CONST void *);
@@ -1997,6 +2024,7 @@ extern NCURSES_EXPORT(int) _nc_init_color(SCREEN *, int, int, int, int);
 extern NCURSES_EXPORT(int) _nc_init_pair(SCREEN *, int, int, int);
 extern NCURSES_EXPORT(int) _nc_pair_content(SCREEN *, int, int *, int *);
 extern NCURSES_EXPORT(bool) _nc_reset_colors(void);
+extern NCURSES_EXPORT(colorpair_t *) _nc_reserve_pairs(SCREEN *, int);
 extern NCURSES_EXPORT(void) _nc_change_pair(SCREEN *, int);
 
 /* lib_getch.c */
@@ -2168,6 +2196,8 @@ extern NCURSES_EXPORT(void) _nc_import_termtype2(TERMTYPE2 *, const TERMTYPE *);
 #define _nc_export_termtype2(dst,src) /* nothing */
 #define _nc_import_termtype2(dst,src) /* nothing */
 #define _nc_free_termtype2(t) _nc_free_termtype(t)
+/* also... */
+#define _nc_read_entry2 _nc_read_entry
 #endif
 
 #if NO_LEAKS
@@ -2492,7 +2522,7 @@ extern NCURSES_EXPORT(int) _nc_mingw_console_read(
 extern NCURSES_EXPORT(int) _nc_mingw_testmouse(
     SCREEN * sp,
     HANDLE fd,
-    int delay);
+    int delay EVENTLIST_2nd(_nc_eventlist*));
 #else
 #endif
 extern NCURSES_EXPORT_VAR(TERM_DRIVER) _nc_TINFO_DRIVER;