/****************************************************************************
- * Copyright (c) 2017 Free Software Foundation, Inc. *
+ * Copyright 2018,2020 Thomas E. Dickey *
+ * Copyright 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 *
/*
* Common type definitions and macros for new_pair.c, lib_color.c
*
- * $Id: new_pair.h,v 1.6 2017/04/29 20:25:29 tom Exp $
+ * $Id: new_pair.h,v 1.11 2020/04/11 16:43:47 tom Exp $
*/
#ifndef NEW_PAIR_H
#define NEW_PAIR_H 1
/* *INDENT-OFF* */
-#define USE_NEW_PAIR NCURSES_EXT_COLORS
-
#define LIMIT_TYPED(n,t) \
(t)(((n) > MAX_OF_TYPE(t)) \
? MAX_OF_TYPE(t) \
#define MAX_XCURSES_PAIR MAX_OF_TYPE(NCURSES_PAIRS_T)
-#if USE_NEW_PAIR
+#if NCURSES_EXT_COLORS
#define OPTIONAL_PAIR GCC_UNUSED
-#define USE_NEW_PAIR NCURSES_EXT_COLORS
#define get_extended_pair(opts, color_pair) \
if ((opts) != NULL) { \
*(int*)(opts) = color_pair; \
}
#else
#define OPTIONAL_PAIR /* nothing */
-#define USE_NEW_PAIR NCURSES_EXT_COLORS
#define get_extended_pair(opts, color_pair) /* nothing */
#define set_extended_pair(opts, color_pair) \
if ((opts) != NULL) { \
typedef enum {
cpKEEP = -1, /* color pair 0 */
cpFREE = 0, /* free for use */
- cpINIT = 1, /* init_pair() */
- cpAUTO = 1 /* alloc_pair() */
+ cpINIT = 1 /* initialized */
} CPMODE;
typedef struct _color_pairs
{
int fg;
int bg;
-#if USE_NEW_PAIR
+#if NCURSES_EXT_COLORS
int mode; /* tells if the entry is allocated or free */
int prev; /* index of previous item */
int next; /* index of next item */
#define ValidPair(sp,pair) \
((sp != 0) && (pair >= 0) && (pair < sp->_pair_limit) && sp->_coloron)
-#if USE_NEW_PAIR
-extern NCURSES_EXPORT(void) _nc_set_color_pair(SCREEN*, int, int);
+#if NCURSES_EXT_COLORS
+extern NCURSES_EXPORT(void) _nc_copy_pairs(SCREEN*, colorpair_t*, colorpair_t*, int);
+extern NCURSES_EXPORT(void) _nc_free_ordered_pairs(SCREEN*);
extern NCURSES_EXPORT(void) _nc_reset_color_pair(SCREEN*, int, colorpair_t*);
+extern NCURSES_EXPORT(void) _nc_set_color_pair(SCREEN*, int, int);
#else
-#define _nc_set_color_pair(sp, pair, mode) /* nothing */
+#define _nc_free_ordered_pairs(sp) /* nothing */
#define _nc_reset_color_pair(sp, pair, data) /* nothing */
+#define _nc_set_color_pair(sp, pair, mode) /* nothing */
#endif
#else