/****************************************************************************
- * Copyright (c) 2015 Free Software Foundation, Inc. *
+ * Copyright (c) 2015-2016,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 *
/*
* Author: Thomas E. Dickey
*
- * $Id: test_sgr.c,v 1.4 2015/11/21 22:43:50 tom Exp $
+ * $Id: test_sgr.c,v 1.10 2017/04/09 00:27:42 tom Exp $
*
* A simple demo of the sgr/sgr0 terminal capabilities.
*/
#define USE_TINFO
#include <test.priv.h>
+#if !HAVE_TIGETSTR
static void failed(const char *) GCC_NORETURN;
static void
fprintf(stderr, "%s\n", msg);
ExitProgram(EXIT_FAILURE);
}
+#endif
#if HAVE_TIGETSTR
static char *
make_dbitem(char *p, char *q)
{
- char *result = malloc(strlen(e_opt) + 2 + (size_t) (p - q));
- sprintf(result, "%s=%.*s", e_opt, (int) (p - q), q);
+ size_t need = strlen(e_opt) + 2 + (size_t) (p - q);
+ char *result = malloc(need);
+ _nc_SPRINTF(result, _nc_SLIMIT(need) "%s=%.*s", e_opt, (int) (p - q), q);
return result;
}
return result;
}
-#ifdef NO_LEAKS
+#if NO_LEAKS
static void
free_dblist(void)
{
printf("%4d ", bits);
bits &= ~ignore;
for (n = 0; n < MAXPAR; ++n) {
- putchar((bits & (1 << n)) ? params[n] : '-');
+ putchar((int) ((bits & (unsigned) (1 << n)) ? params[n] : '-'));
}
putchar(' ');
putp(sgr);
} else if (!VALID_STRING(my_sgr0)) {
fprintf(stderr, "no \"sgr0\" capability found\n");
} else {
- char *values[MAXSGR];
+ char *values[MAXSGR + MAXPAR];
unsigned j;
unsigned ignore = 0;
unsigned reason = 0;
}
}
for (j = 0; j < MAXPAR; ++j) {
- unsigned mask = (1 << j);
+ unsigned mask = (unsigned) (1 << j);
for (count = 0; count < MAXSGR; ++count) {
if ((count & mask) != 0)
continue;
}
}
}
+ for (count = 0; count < MAXSGR; ++count) {
+ free(values[count]);
+ }
}
del_curterm(cur_term);
}
printf("%ld distinct values\n", total_values);
-#ifdef NO_LEAKS
+#if NO_LEAKS
free_dblist();
#endif