#include <parametrized.h>
#include <transform.h>
-MODULE_ID("$Id: tic.c,v 1.272 2019/04/06 20:18:54 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.277 2019/06/29 23:23:22 tom Exp $")
#define STDIN_NAME "<stdin>"
static void
check_colors(TERMTYPE2 *tp)
{
+ char *value;
+
if ((max_colors > 0) != (max_pairs > 0)
|| ((max_colors > max_pairs) && (initialize_pair == 0)))
_nc_warning("inconsistent values for max_colors (%d) and max_pairs (%d)",
_nc_warning("expected ccc because initc is given");
}
}
+ value = tigetstr("RGB");
+ if (VALID_STRING(value)) {
+ int r, g, b;
+ char bad;
+ int code = sscanf(value, "%d/%d/%d%c", &r, &g, &b, &bad);
+ if (code != 3 || r <= 0 || g <= 0 || b <= 0) {
+ _nc_warning("unexpected value for RGB capability: %s", value);
+ }
+ }
}
static int
#if NCURSES_XNAMES
if (extended) {
int check = is_user_capability(name);
- if (check != actual) {
+ if (check != actual && (check >= 0 && actual >= 0)) {
_nc_warning("extended %s capability has %d parameters, expected %d",
name, actual, check);
} else if (debug_level > 1) {
}
expected = actual;
}
+#else
+ (void) extended;
#endif
if (params[0]) {
check_infotocap(TERMTYPE2 *tp, int i, const char *value)
{
const char *name = ExtStrname(tp, i, strnames);
- int params = (((i < (int) SIZEOF(parametrized)) &&
- (i < STRCOUNT))
+ int params = ((i < (int) SIZEOF(parametrized))
? parametrized[i]
: ((*value == 'k')
? 0
char *tc_value;
bool embedded;
+ assert(SIZEOF(parametrized) == STRCOUNT);
if ((ti_value = _nc_tic_expand(value, TRUE, to_char)) == ABSENT_STRING) {
_nc_warning("tic-expansion of %s failed", name);
} else if ((tc_value = _nc_infotocap(name, ti_value, params)) == ABSENT_STRING) {
check_printer(tp);
check_screen(tp);
+ /*
+ * These are probably both or none.
+ */
+ PAIRED(parm_index, parm_rindex);
+
/*
* These may be mismatched because the terminal description relies on
* restoring the cursor visibility by resetting it.