/****************************************************************************
- * Copyright (c) 2009-2013,2014 Free Software Foundation, Inc. *
+ * Copyright (c) 2009-2014,2015 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 *
/*
* Author: Thomas E. Dickey
*
- * $Id: demo_terminfo.c,v 1.34 2014/08/31 23:11:39 tom Exp $
+ * $Id: demo_terminfo.c,v 1.40 2015/10/10 20:52:41 tom Exp $
*
* A simple demo of the terminfo interface.
*/
#endif
#endif
+static void failed(const char *) GCC_NORETURN;
+
static void
failed(const char *msg)
{
if (!q_opt)
printf("Terminal type \"%s\"\n", name);
setupterm((NCURSES_CONST char *) name, 1, (int *) 0);
+ if (!q_opt) {
+ if (strcmp(name, ttytype))
+ printf("... actual \"%s\"\n", ttytype);
+ }
for (length = 1; length <= MAX_FORCE; ++length) {
/* set all digits to zeros */
del_curterm(cur_term);
}
+#if USE_CODE_LISTS
+#define fullname(type,n) f_opt ? type##fnames[n] : my_##type##codes[n]
+#else
+#define fullname(type,n) my_##type##codes[n]
+#endif
+
static void
demo_terminfo(char *name)
{
if (b_opt) {
for (n = 0;; ++n) {
- cap = f_opt ? boolfnames[n] : my_boolcodes[n];
+ cap = fullname(bool, n);
if (cap == 0)
break;
dumpit(cap);
if (n_opt) {
for (n = 0;; ++n) {
- cap = f_opt ? numfnames[n] : my_numcodes[n];
+ cap = fullname(num, n);
if (cap == 0)
break;
dumpit(cap);
if (s_opt) {
for (n = 0;; ++n) {
- cap = f_opt ? strfnames[n] : my_strcodes[n];
+ cap = fullname(str, n);
if (cap == 0)
break;
dumpit(cap);
static void
parse_description(const char *input_name)
{
+ static char empty[1];
+
FILE *fp;
struct stat sb;
size_t count_bools = 0;
if ((fp = fopen(input_name, "r")) == 0)
failed("cannot open input-file");
len = fread(my_blob, sizeof(char), (size_t) sb.st_size, fp);
+ my_blob[sb.st_size] = '\0';
fclose(fp);
/*
* known order.
*/
if (count_strs) {
- my_strvalues[count_strs] = "";
+ my_strvalues[count_strs] = empty;
my_strcodes[count_strs++] = &my_blob[j];
} else if (count_nums) {
- my_numvalues[count_nums] = "";
+ my_numvalues[count_nums] = empty;
my_numcodes[count_nums++] = &my_blob[j];
} else {
my_boolcodes[count_bools++] = &my_blob[j];
{
int pass;
size_t count;
- size_t length = 0;
+ size_t length = 1;
char **result = 0;
char *blob = 0;
char *unused = 0;
}
}
-#if NCURSES_XNAMES
+#if HAVE_USE_EXTENDED_NAMES
use_extended_names(x_opt);
#endif
int
main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
{
- printf("This program requires the terminfo functions such as tigetstr\n");
+ failed("This program requires the terminfo functions such as tigetstr");
ExitProgram(EXIT_FAILURE);
}
#endif /* HAVE_TIGETSTR */