/****************************************************************************
- * Copyright (c) 2013 Free Software Foundation, Inc. *
+ * Copyright (c) 2013-2014,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 *
/*
* Author: Thomas E. Dickey
*
- * $Id: dots_termcap.c,v 1.6 2013/09/07 23:12:30 Ray.Donnelly Exp $
+ * $Id: dots_termcap.c,v 1.12 2017/10/11 08:15:07 tom Exp $
*
* A simple demo of the termcap interface.
*/
#include <time.h>
-#define valid(s) ((s != 0) && s != (char *)-1)
-
static bool interrupted = FALSE;
static long total_chars = 0;
static time_t started;
if (interrupted) {
char tmp = (char) c;
- if (write(STDOUT_FILENO, &tmp, 1) == -1)
+ if (write(STDOUT_FILENO, &tmp, (size_t) 1) == -1)
rc = EOF;
} else {
rc = putc(c, stdout);
static bool
outs(char *s)
{
- if (valid(s)) {
+ if (VALID_STRING(s)) {
tputs(s, 1, outc);
return TRUE;
}
outs(t_cl);
outs(t_ve);
- printf("\n\n%ld total chars, rate %.2f/sec\n",
+ printf("\n\n%ld total cells, rate %.2f/sec\n",
total_chars,
((double) (total_chars) / (double) (time((time_t *) 0) - started)));
}
my_napms(int ms)
{
#if defined(__MINGW32__) || !HAVE_GETTIMEOFDAY
- Sleep(ms);
+ Sleep((DWORD) ms);
#else
struct timeval data;
data.tv_sec = 0;
char area[1024];
char *name;
- CATCHALL(onsig);
-
srand((unsigned) time(0));
if ((name = getenv("TERM")) == 0) {
fprintf(stderr, "TERM is not set\n");
ExitProgram(EXIT_FAILURE);
- } else if (tgetent(buffer, name) < 0) {
+ }
+ InitAndCatch(z = tgetent(buffer, name), onsig);
+ if (z < 0) {
fprintf(stderr, "terminal description not found\n");
ExitProgram(EXIT_FAILURE);
} else {
outs(t_cl);
outs(t_vi);
if (num_colors > 1) {
- if (!valid(t_AF)
- || !valid(t_AB)
- || (!valid(t_oc) && !valid(t_op)))
+ if (!VALID_STRING(t_AF)
+ || !VALID_STRING(t_AB)
+ || (!VALID_STRING(t_oc) && !VALID_STRING(t_op)))
num_colors = -1;
}
tputs(tgoto(t_AB, 0, z), 1, outc);
my_napms(1);
}
- } else if (valid(t_me)
- && valid(t_mr)) {
+ } else if (VALID_STRING(t_me)
+ && VALID_STRING(t_mr)) {
if (ranf() <= 0.01) {
outs((ranf() > 0.6)
? t_mr