X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=test%2Fdemo_termcap.c;h=e252d1d9814400f1c75dc49547eb2223c5a9ee2a;hb=b0bdfbb1c78346047c54d8e516a104fcff586e52;hp=1a95b00f7a49827a9984c8e02155ec3103aa8161;hpb=5eb177874dea59107a1a2ea44f5d8f5bb99550b2;p=ncurses.git diff --git a/test/demo_termcap.c b/test/demo_termcap.c index 1a95b00f..e252d1d9 100644 --- a/test/demo_termcap.c +++ b/test/demo_termcap.c @@ -29,7 +29,7 @@ /* * Author: Thomas E. Dickey * - * $Id: demo_termcap.c,v 1.52 2017/03/18 22:03:07 tom Exp $ + * $Id: demo_termcap.c,v 1.56 2017/12/26 22:41:47 tom Exp $ * * A simple demo of the termcap interface. */ @@ -46,7 +46,7 @@ #endif #endif -#ifdef NCURSES_VERSION +#if defined(NCURSES_VERSION) && HAVE_TERMCAP_H #include #endif @@ -74,8 +74,10 @@ static bool b_opt = FALSE; static bool n_opt = FALSE; static bool s_opt = FALSE; static bool q_opt = FALSE; +#ifdef NCURSES_VERSION static bool x_opt = FALSE; static bool y_opt = FALSE; +#endif static char *d_opt; static char *e_opt; @@ -157,6 +159,7 @@ next_dbitem(void) return result; } +#if NO_LEAKS static void free_dblist(void) { @@ -168,6 +171,7 @@ free_dblist(void) db_list = 0; } } +#endif /* NO_LEAKS */ static void show_string(const char *name, const char *value) @@ -715,7 +719,18 @@ copy_code_list(NCURSES_CONST char *const *list) return result; } -#endif + +#if NO_LEAKS +static void +free_code_list(char **list) +{ + if (list) { + free(list[0]); + free(list); + } +} +#endif /* NO_LEAKS */ +#endif /* USE_CODE_LISTS */ static void usage(void) @@ -755,7 +770,9 @@ main(int argc, char *argv[]) int n; char *name; bool a_opt = FALSE; +#if defined(NCURSES_VERSION) || defined(HAVE_CURSES_DATA_OSPEED) bool v_opt = FALSE; +#endif char *input_name = 0; int repeat; @@ -791,9 +808,12 @@ main(int argc, char *argv[]) case 's': s_opt = TRUE; break; +#if defined(NCURSES_VERSION) || defined(HAVE_CURSES_DATA_OSPEED) case 'v': v_opt = TRUE; break; +#endif +#ifdef NCURSES_VERSION #if NCURSES_XNAMES case 'x': x_opt = TRUE; @@ -802,6 +822,7 @@ main(int argc, char *argv[]) y_opt = TRUE; x_opt = TRUE; break; +#endif #endif default: usage(); @@ -871,11 +892,18 @@ main(int argc, char *argv[]) show_number("PC", PC); show_string("UP", UP); show_string("BC", BC); - show_number("ospeed", ospeed); + show_number("ospeed", (int) ospeed); } #endif +#if NO_LEAKS free_dblist(); +#if USE_CODE_LISTS + free_code_list(my_boolcodes); + free_code_list(my_numcodes); + free_code_list(my_strcodes); +#endif +#endif /* NO_LEAKS */ ExitProgram(EXIT_SUCCESS); }