summaryrefslogtreecommitdiff
path: root/ncurses-5.2/test/railroad.c
diff options
context:
space:
mode:
Diffstat (limited to 'ncurses-5.2/test/railroad.c')
-rw-r--r--ncurses-5.2/test/railroad.c241
1 files changed, 0 insertions, 241 deletions
diff --git a/ncurses-5.2/test/railroad.c b/ncurses-5.2/test/railroad.c
deleted file mode 100644
index db23894..0000000
--- a/ncurses-5.2/test/railroad.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/****************************************************************************
- * Copyright (c) 2000 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 *
- * "Software"), to deal in the Software without restriction, including *
- * without limitation the rights to use, copy, modify, merge, publish, *
- * distribute, distribute with modifications, sublicense, and/or sell *
- * copies of the Software, and to permit persons to whom the Software is *
- * furnished to do so, subject to the following conditions: *
- * *
- * The above copyright notice and this permission notice shall be included *
- * in all copies or substantial portions of the Software. *
- * *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
- * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
- * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
- * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
- * *
- * Except as contained in this notice, the name(s) of the above copyright *
- * holders shall not be used in advertising or otherwise to promote the *
- * sale, use or other dealings in this Software without prior written *
- * authorization. *
- ****************************************************************************/
-
-/*
- * Author: Thomas E. Dickey <dickey@clark.net> 2000
- *
- * $Id$
- *
- * A simple demo of the termcap interface.
- */
-#include <test.priv.h>
-
-#include <termcap.h>
-#include <ctype.h>
-#include <signal.h>
-
-static char *wipeit;
-static char *moveit;
-static int length;
-static int height;
-
-static char *finisC;
-static char *finisS;
-static char *finisU;
-
-static char *startC;
-static char *startS;
-static char *startU;
-
-static char *backup;
-
-static bool interrupted = FALSE;
-
-static int
-outc(int c)
-{
- if (interrupted) {
- char tmp = c;
- write(STDOUT_FILENO, &tmp, 1);
- } else {
- putc(c, stdout);
- }
- return 0;
-}
-
-static void
-PutChar(int ch)
-{
- putchar(ch);
- fflush(stdout);
- napms(moveit ? 10 : 50); /* not really termcap... */
-}
-
-static void
-Backup(void)
-{
- tputs(backup != 0 ? backup : "\b", 1, outc);
-}
-
-static void
-ShowCursor(int flag)
-{
- if (startC != 0 && finisC != 0) {
- tputs(flag ? startC : finisC, 1, outc);
- }
-}
-
-static void
-StandOut(int flag)
-{
- if (startS != 0 && finisS != 0) {
- tputs(flag ? startS : finisS, 1, outc);
- }
-}
-
-static void
-Underline(int flag)
-{
- if (startU != 0 && finisU != 0) {
- tputs(flag ? startU : finisU, 1, outc);
- }
-}
-
-static void
-ShowSign(char *string)
-{
- char *base = string;
- int ch, first, last;
-
- if (moveit != 0) {
- tputs(tgoto(moveit, 0, height - 1), 1, outc);
- tputs(wipeit, 1, outc);
- }
-
- while (*string != 0) {
- ch = *string;
- if (moveit != 0) {
- for (first = length - 2; first >= (string - base); first--) {
- if (first < length - 1) {
- tputs(tgoto(moveit, first + 1, height - 1), 1, outc);
- PutChar(' ');
- }
- tputs(tgoto(moveit, first, height - 1), 1, outc);
- PutChar(ch);
- }
- } else {
- last = ch;
- if (isalpha(ch)) {
- first = isupper(ch) ? 'A' : 'a';
- } else if (isdigit(ch)) {
- first = '0';
- } else {
- first = ch;
- }
- if (first < last) {
- Underline(1);
- while (first < last) {
- PutChar(first);
- Backup();
- first++;
- }
- Underline(0);
- }
- }
- if (moveit != 0)
- Backup();
- StandOut(1);
- PutChar(ch);
- StandOut(0);
- fflush(stdout);
- string++;
- }
- if (moveit != 0)
- tputs(wipeit, 1, outc);
- putchar('\n');
-}
-
-static void
-cleanup(void)
-{
- Underline(0);
- StandOut(0);
- ShowCursor(1);
-}
-
-static void
-onsig(int n GCC_UNUSED)
-{
- interrupted = TRUE;
- cleanup();
- exit(EXIT_FAILURE);
-}
-
-static void
-railroad(char **args)
-{
- NCURSES_CONST char *name = getenv("TERM");
- char buffer[1024];
- char area[1024], *ap = area;
- int j;
-
- if (name == 0)
- name = "dumb";
- if (tgetent(buffer, name)) {
-
- wipeit = tgetstr("ce", &ap);
- height = tgetnum("li");
- length = tgetnum("co");
- moveit = tgetstr("cm", &ap);
-
- if (wipeit == 0
- || moveit == 0
- || height <= 0
- || length <= 0) {
- wipeit = 0;
- moveit = 0;
- height = 0;
- length = 0;
- }
-
- startS = tgetstr("so", &ap);
- finisS = tgetstr("se", &ap);
-
- startU = tgetstr("us", &ap);
- finisU = tgetstr("ue", &ap);
-
- backup = tgetstr("le", &ap);
-
- startC = tgetstr("ve", &ap);
- finisC = tgetstr("vi", &ap);
-
- ShowCursor(0);
-
- for (j = SIGHUP; j <= SIGTERM; j++)
- if (signal(j, SIG_IGN) != SIG_IGN)
- signal(j, onsig);
-
- while (*args) {
- ShowSign(*args++);
- }
- ShowCursor(1);
- }
-}
-
-int
-main(int argc, char *argv[])
-{
- if (argc > 1) {
- railroad(argv + 1);
- } else {
- static char *hello[] =
- {"Hello World", 0};
- railroad(hello);
- }
- return EXIT_SUCCESS;
-}