/****************************************************************************
- * Copyright (c) 2009-2015,2016 Free Software Foundation, Inc. *
+ * Copyright (c) 2009-2017,2019 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: demo_terminfo.c,v 1.44 2016/09/10 21:22:49 tom Exp $
+ * $Id: demo_terminfo.c,v 1.49 2019/08/24 23:11:01 tom Exp $
*
* A simple demo of the terminfo interface.
*/
static bool n_opt = FALSE;
static bool q_opt = FALSE;
static bool s_opt = FALSE;
+#ifdef NCURSES_VERSION
static bool x_opt = FALSE;
static bool y_opt = FALSE;
+#endif
static char *d_opt;
static char *e_opt;
db_item++;
}
}
- printf("** %s\n", result);
+ if (result != 0)
+ printf("** %s\n", result);
return result;
}
-#ifdef NO_LEAKS
+#if NO_LEAKS
static void
free_dblist(void)
{
}
#ifdef NCURSES_VERSION
if (x_opt && (my_blob == 0)) {
- int mod;
if (y_opt) {
#if NCURSES_XNAMES
- TERMTYPE *term = &(cur_term->type);
+ TERMTYPE *term = (TERMTYPE *) cur_term;
if (term != 0
&& ((NUM_BOOLEANS(term) != BOOLCOUNT)
|| (NUM_NUMBERS(term) != NUMCOUNT)
"kLFT", "kNXT", "kPRV", "kRIT", "kUP",
};
for (n = 0; n < SIZEOF(xterm_keys); ++n) {
+ int mod;
for (mod = 0; mod < 8; ++mod) {
if (mod == 0) {
/* these happen to be standard - avoid duplicates */
size_t count;
size_t length = 1;
char **result = 0;
- char *blob = 0;
char *unused = 0;
for (pass = 0; pass < 2; ++pass) {
}
}
if (pass == 0) {
- blob = malloc(length);
+ char *blob = malloc(length);
result = typeCalloc(char *, count + 1);
unused = blob;
if (blob == 0 || result == 0)
return result;
}
+
+#if NO_LEAKS
+static void
+free_code_list(char **list)
+{
+ if (list) {
+ free(list[0]);
+ free(list);
+ }
+}
#endif
+#endif /* USE_CODE_LISTS */
static void
usage(void)
PLURAL(total_n_values),
PLURAL(total_s_values));
-#ifdef NO_LEAKS
+#if NO_LEAKS
free_dblist();
- if (my_blob != 0) {
- free(my_blob);
- free(my_boolcodes);
- free(my_numcodes);
- free(my_numvalues);
- free(my_strcodes);
- free(my_strvalues);
+ if (input_name != 0) {
+ if (my_blob != 0) {
+ free(my_blob);
+ free(my_boolcodes);
+ free(my_numcodes);
+ free(my_numvalues);
+ free(my_strcodes);
+ free(my_strvalues);
+ }
+ }
+#if USE_CODE_LISTS
+ else {
+ free_code_list(my_boolcodes);
+ free_code_list(my_numcodes);
+ free_code_list(my_strcodes);
}
#endif
+#endif /* NO_LEAKS */
ExitProgram(EXIT_SUCCESS);
}