/****************************************************************************
- * Copyright (c) 1998-2014,2015 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2015,2016 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 *
#include <parametrized.h>
#include <transform.h>
-MODULE_ID("$Id: tic.c,v 1.220 2015/12/27 01:46:01 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.222 2016/06/11 23:20:55 tom Exp $")
#define STDIN_NAME "<stdin>"
static void
check_exit_attribute(const char *name, char *test, char *trimmed, char *untrimmed)
{
- if (VALID_STRING(test)) {
+ if (VALID_STRING(test) && (trimmed != 0)) {
if (similar_sgr(-1, trimmed, test) ||
similar_sgr(-1, untrimmed, test)) {
_nc_warning("%s matches exit_attribute_mode", name);
if (is_sgr_string(test)) {
int param = 0;
int count = 0;
+ int skips = 0;
+ int color = (value == set_a_foreground ||
+ value == set_a_background ||
+ value == set_foreground ||
+ value == set_background);
while (*test != 0) {
if (isdigit(UChar(*test))) {
param = 10 * param + (*test - '0');
++count;
} else {
if (count) {
- if (param == code)
+ /*
+ * Avoid unnecessary warning for xterm 256color codes.
+ */
+ if (color && (param == 38 || param == 48))
+ skips = 3;
+ if ((skips-- <= 0) && (param == code))
break;
}
count = 0;