X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=test%2Fdemo_termcap.c;h=00a64849b1e0090232b3cd62700966daae0d6769;hb=296420e1ec091e6dbd354cc13748638637690776;hp=1a95b00f7a49827a9984c8e02155ec3103aa8161;hpb=5eb177874dea59107a1a2ea44f5d8f5bb99550b2;p=ncurses.git diff --git a/test/demo_termcap.c b/test/demo_termcap.c index 1a95b00f..00a64849 100644 --- a/test/demo_termcap.c +++ b/test/demo_termcap.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 2005-2016,2017 Free Software Foundation, Inc. * + * Copyright (c) 2005-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 * @@ -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.57 2019/01/21 22:50:46 tom Exp $ * * A simple demo of the termcap interface. */ @@ -46,9 +46,13 @@ #endif #endif -#ifdef NCURSES_VERSION +#if defined(NCURSES_VERSION) +#if HAVE_NCURSES_TERMCAP_H +#include +#elif HAVE_TERMCAP_H #include #endif +#endif static void failed(const char *) GCC_NORETURN; @@ -74,8 +78,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 +163,7 @@ next_dbitem(void) return result; } +#if NO_LEAKS static void free_dblist(void) { @@ -168,6 +175,7 @@ free_dblist(void) db_list = 0; } } +#endif /* NO_LEAKS */ static void show_string(const char *name, const char *value) @@ -715,7 +723,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 +774,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 +812,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 +826,7 @@ main(int argc, char *argv[]) y_opt = TRUE; x_opt = TRUE; break; +#endif #endif default: usage(); @@ -871,11 +896,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); }