ncurses 6.1 - patch 20191214
[ncurses.git] / test / sp_tinfo.c
index 8e42ad32fdd508557d3962bb37f1d54bca8e219c..c0a67137c7cb75dea9ecf8502598e467f1621373 100644 (file)
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright (c) 2017 Free Software Foundation, Inc.                        *
+ * Copyright (c) 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            *
@@ -27,7 +27,7 @@
  ****************************************************************************/
 
 /*
- * $Id: sp_tinfo.c,v 1.17 2017/04/02 01:03:30 tom Exp $
+ * $Id: sp_tinfo.c,v 1.22 2019/04/06 20:42:57 tom Exp $
  *
  * TOTO: add option for non-sp-funcs interface
  */
@@ -74,14 +74,14 @@ initialize(const char *name, FILE *output)
     result->fp = output;
     result->name = name;
     result->outc = (fileno(output) == 1) ? my_outc : my_errc;
-    result->sp = opt_n ? 0 : new_prescr();
+    result->sp = opt_n ? NULL : new_prescr();
 
     if (opt_t) {
        char *temp = strdup(name);
        tgetent_sp(result->sp, temp, name);
        free(temp);
     } else {
-       setupterm(name, fileno(output), &error);
+       setupterm((NCURSES_CONST char *) name, fileno(output), &error);
     }
     result->term = cur_term;
 
@@ -100,13 +100,16 @@ show_flag(MYDATA * data, const char *name, int value)
     }
 }
 
+#define TC_PARMS data->sp, (NCURSES_CONST char *)tc
+#define TI_PARMS data->sp, (NCURSES_CONST char *)ti
+
 static void
 show_cap_flag(MYDATA * data, const char *ti, const char *tc)
 {
     const char *name = (opt_t ? tc : ti);
     show_flag(data, name, (opt_t
-                          ? tgetflag_sp(data->sp, tc)
-                          : tigetflag_sp(data->sp, ti)));
+                          ? tgetflag_sp(TC_PARMS)
+                          : tigetflag_sp(TI_PARMS)));
 }
 
 static void
@@ -126,8 +129,8 @@ show_cap_number(MYDATA * data, const char *ti, const char *tc)
 {
     const char *name = (opt_t ? tc : ti);
     show_number(data, name, (opt_t
-                            ? tgetnum_sp(data->sp, tc)
-                            : tigetnum_sp(data->sp, ti)));
+                            ? tgetnum_sp(TC_PARMS)
+                            : tigetnum_sp(TI_PARMS)));
 }
 
 static void
@@ -162,8 +165,8 @@ show_cap_string(MYDATA * data, const char *ti, const char *tc)
     char tcapjunk[1024];
     char *tcap_ptr = tcapjunk;
     show_string(data, name, (opt_t
-                            ? tgetstr_sp(data->sp, tc, &tcap_ptr)
-                            : tigetstr_sp(data->sp, ti)));
+                            ? tgetstr_sp(TC_PARMS, &tcap_ptr)
+                            : tigetstr_sp(TI_PARMS)));
 }
 
 static void
@@ -182,10 +185,12 @@ show_char(MYDATA * data, const char *name, int value)
 static void
 do_stuff(MYDATA * data)
 {
-    char *s;
     SCREEN *sp = data->sp;
+#if NCURSES_EXT_FUNCS
+    char *s;
     int my_code = 1234;
     const char *my_text = "\033[?m";
+#endif
 
     set_curterm_sp(sp, data->term);
 
@@ -208,14 +213,18 @@ do_stuff(MYDATA * data)
     show_string(data, "unctrl", unctrl_sp(sp, 033));
     fflush(data->fp);
 
+#if NCURSES_EXT_FUNCS
     define_key_sp(sp, my_text, my_code);
     has_key_sp(sp, 0);
     key_defined_sp(sp, my_text);
     if ((s = keybound_sp(sp, my_code, 0)) != 0)
        free(s);
+#endif
     keyname_sp(sp, '?');
+#if NCURSES_EXT_FUNCS
     keyok_sp(sp, my_code, FALSE);
     keyok_sp(sp, my_code, TRUE);
+#endif
 
     savetty_sp(sp);
 
@@ -224,7 +233,9 @@ do_stuff(MYDATA * data)
     /*
      * These functions are low-level settings for ncurses.
      */
+#if NCURSES_EXT_FUNCS
     set_tabsize_sp(sp, 5);     /* waddch */
+#endif
     typeahead_sp(sp, FALSE);   /* waddch */
     use_env_sp(sp, FALSE);     /* newterm */
     use_tioctl_sp(sp, FALSE);  /* newterm */
@@ -267,7 +278,9 @@ cleanup(MYDATA * data)
 {
     set_curterm(data->term);
     del_curterm(data->term);
+#if !NO_LEAKS
     free(data->sp);            /* cannot use delscreen in tinfo */
+#endif
     free(data);
 }