projects
/
ncurses.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ncurses 6.1 - patch 20190824
[ncurses.git]
/
test
/
demo_terminfo.c
diff --git
a/test/demo_terminfo.c
b/test/demo_terminfo.c
index 5028e0ce9d863267923dbdcbb68fb871b71049e1..6e52e990b5e8b90677a4964ab0c573ec7eb1e6ba 100644
(file)
--- a/
test/demo_terminfo.c
+++ b/
test/demo_terminfo.c
@@
-1,5
+1,5
@@
/****************************************************************************
/****************************************************************************
- * Copyright (c) 2009-201
6,2017
Free Software Foundation, Inc. *
+ * Copyright (c) 2009-201
7,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 *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@
-29,7
+29,7
@@
/*
* Author: Thomas E. Dickey
*
/*
* Author: Thomas E. Dickey
*
- * $Id: demo_terminfo.c,v 1.4
5 2017/03/18 22:03:07
tom Exp $
+ * $Id: demo_terminfo.c,v 1.4
9 2019/08/24 23:11:01
tom Exp $
*
* A simple demo of the terminfo interface.
*/
*
* A simple demo of the terminfo interface.
*/
@@
-69,8
+69,10
@@
static bool f_opt = FALSE;
static bool n_opt = FALSE;
static bool q_opt = FALSE;
static bool s_opt = FALSE;
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;
static bool x_opt = FALSE;
static bool y_opt = FALSE;
+#endif
static char *d_opt;
static char *e_opt;
static char *d_opt;
static char *e_opt;
@@
-148,11
+150,12
@@
next_dbitem(void)
db_item++;
}
}
db_item++;
}
}
- printf("** %s\n", result);
+ if (result != 0)
+ printf("** %s\n", result);
return result;
}
return result;
}
-#if
def
NO_LEAKS
+#if NO_LEAKS
static void
free_dblist(void)
{
static void
free_dblist(void)
{
@@
-360,7
+363,6
@@
demo_terminfo(char *name)
}
#ifdef NCURSES_VERSION
if (x_opt && (my_blob == 0)) {
}
#ifdef NCURSES_VERSION
if (x_opt && (my_blob == 0)) {
- int mod;
if (y_opt) {
#if NCURSES_XNAMES
TERMTYPE *term = (TERMTYPE *) cur_term;
if (y_opt) {
#if NCURSES_XNAMES
TERMTYPE *term = (TERMTYPE *) cur_term;
@@
-387,6
+389,7
@@
demo_terminfo(char *name)
"kLFT", "kNXT", "kPRV", "kRIT", "kUP",
};
for (n = 0; n < SIZEOF(xterm_keys); ++n) {
"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 */
for (mod = 0; mod < 8; ++mod) {
if (mod == 0) {
/* these happen to be standard - avoid duplicates */
@@
-726,7
+729,6
@@
copy_code_list(NCURSES_CONST char *const *list)
size_t count;
size_t length = 1;
char **result = 0;
size_t count;
size_t length = 1;
char **result = 0;
- char *blob = 0;
char *unused = 0;
for (pass = 0; pass < 2; ++pass) {
char *unused = 0;
for (pass = 0; pass < 2; ++pass) {
@@
-741,7
+743,7
@@
copy_code_list(NCURSES_CONST char *const *list)
}
}
if (pass == 0) {
}
}
if (pass == 0) {
- blob = malloc(length);
+
char *
blob = malloc(length);
result = typeCalloc(char *, count + 1);
unused = blob;
if (blob == 0 || result == 0)
result = typeCalloc(char *, count + 1);
unused = blob;
if (blob == 0 || result == 0)
@@
-751,7
+753,18
@@
copy_code_list(NCURSES_CONST char *const *list)
return result;
}
return result;
}
+
+#if NO_LEAKS
+static void
+free_code_list(char **list)
+{
+ if (list) {
+ free(list[0]);
+ free(list);
+ }
+}
#endif
#endif
+#endif /* USE_CODE_LISTS */
static void
usage(void)
static void
usage(void)
@@
-904,17
+917,26
@@
main(int argc, char *argv[])
PLURAL(total_n_values),
PLURAL(total_s_values));
PLURAL(total_n_values),
PLURAL(total_s_values));
-#if
def
NO_LEAKS
+#if NO_LEAKS
free_dblist();
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
+#endif /* NO_LEAKS */
ExitProgram(EXIT_SUCCESS);
}
ExitProgram(EXIT_SUCCESS);
}