X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Fdemo_termcap.c;h=e252d1d9814400f1c75dc49547eb2223c5a9ee2a;hp=c0db052ca9bce0daf00158fa816e90f9b6e5cd08;hb=d66080c21038ad4feb2e41a0c4e517d5b4a03ab2;hpb=e2e9c09c48b19b24979cafb2d4864f538b5ddd1c diff --git a/test/demo_termcap.c b/test/demo_termcap.c index c0db052c..e252d1d9 100644 --- a/test/demo_termcap.c +++ b/test/demo_termcap.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2005-2015,2016 Free Software Foundation, Inc. * + * Copyright (c) 2005-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 * @@ -29,7 +29,7 @@ /* * Author: Thomas E. Dickey * - * $Id: demo_termcap.c,v 1.51 2016/09/10 21:22:39 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) @@ -359,7 +363,7 @@ demo_termcap(NCURSES_CONST char *name) #ifdef NCURSES_VERSION if (x_opt && (my_blob == 0) && 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) @@ -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); }