aboutsummaryrefslogtreecommitdiff
path: root/test/firework.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/firework.c')
-rw-r--r--test/firework.c72
1 files changed, 54 insertions, 18 deletions
diff --git a/test/firework.c b/test/firework.c
index 27d8fdfa8668..b7c560b41cc1 100644
--- a/test/firework.c
+++ b/test/firework.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright (c) 1998-2010,2013 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-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 *
@@ -26,7 +26,7 @@
* authorization. *
****************************************************************************/
/*
- * $Id: firework.c,v 1.29 2013/04/27 19:46:53 tom Exp $
+ * $Id: firework.c,v 1.36 2019/12/14 23:26:09 tom Exp $
*/
#include <test.priv.h>
@@ -37,8 +37,7 @@ static short my_bg = COLOR_BLACK;
static void
cleanup(void)
{
- curs_set(1);
- endwin();
+ stop_curses();
}
static void
@@ -94,14 +93,14 @@ explode(int row, int col)
showit();
init_pair(1, get_colour(&bold), my_bg);
- (void) attrset((chtype) COLOR_PAIR(1) | bold);
+ (void) attrset(AttrArg(COLOR_PAIR(1), bold));
MvPrintw(row - 1, col - 1, " - ");
MvPrintw(row + 0, col - 1, "-+-");
MvPrintw(row + 1, col - 1, " - ");
showit();
init_pair(1, get_colour(&bold), my_bg);
- (void) attrset((chtype) COLOR_PAIR(1) | bold);
+ (void) attrset(AttrArg(COLOR_PAIR(1), bold));
MvPrintw(row - 2, col - 2, " --- ");
MvPrintw(row - 1, col - 2, "-+++-");
MvPrintw(row + 0, col - 2, "-+#+-");
@@ -110,7 +109,7 @@ explode(int row, int col)
showit();
init_pair(1, get_colour(&bold), my_bg);
- (void) attrset((chtype) COLOR_PAIR(1) | bold);
+ (void) attrset(AttrArg(COLOR_PAIR(1), bold));
MvPrintw(row - 2, col - 2, " +++ ");
MvPrintw(row - 1, col - 2, "++#++");
MvPrintw(row + 0, col - 2, "+# #+");
@@ -119,7 +118,7 @@ explode(int row, int col)
showit();
init_pair(1, get_colour(&bold), my_bg);
- (void) attrset((chtype) COLOR_PAIR(1) | bold);
+ (void) attrset(AttrArg(COLOR_PAIR(1), bold));
MvPrintw(row - 2, col - 2, " # ");
MvPrintw(row - 1, col - 2, "## ##");
MvPrintw(row + 0, col - 2, "# #");
@@ -128,7 +127,7 @@ explode(int row, int col)
showit();
init_pair(1, get_colour(&bold), my_bg);
- (void) attrset((chtype) COLOR_PAIR(1) | bold);
+ (void) attrset(AttrArg(COLOR_PAIR(1), bold));
MvPrintw(row - 2, col - 2, " # # ");
MvPrintw(row - 1, col - 2, "# #");
MvPrintw(row + 0, col - 2, " ");
@@ -137,17 +136,54 @@ explode(int row, int col)
showit();
}
+static void
+usage(void)
+{
+ static const char *msg[] =
+ {
+ "Usage: firework [options]"
+ ,""
+ ,"Options:"
+#if HAVE_USE_DEFAULT_COLORS
+ ," -d invoke use_default_colors, repeat to use in init_pair"
+#endif
+ };
+ size_t n;
+
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+
+ ExitProgram(EXIT_FAILURE);
+}
+
int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
- int start, end, row, diff, flag = 0, direction;
+ int ch;
+ int start, end;
+ int row, diff;
+ int flag = 0;
+ int direction;
unsigned seed;
+#if HAVE_USE_DEFAULT_COLORS
+ bool d_option = FALSE;
+#endif
- CATCHALL(onsig);
+ while ((ch = getopt(argc, argv, "d")) != -1) {
+ switch (ch) {
+#if HAVE_USE_DEFAULT_COLORS
+ case 'd':
+ d_option = TRUE;
+ break;
+#endif
+ default:
+ usage();
+ }
+ }
+ if (optind < argc)
+ usage();
- initscr();
+ InitAndCatch(initscr(), onsig);
noecho();
cbreak();
keypad(stdscr, TRUE);
@@ -156,7 +192,7 @@ main(
if (has_colors()) {
start_color();
#if HAVE_USE_DEFAULT_COLORS
- if (use_default_colors() == OK)
+ if (d_option && (use_default_colors() == OK))
my_bg = -1;
#endif
}
@@ -173,8 +209,8 @@ main(
direction = (start > end) ? -1 : 1;
diff = abs(start - end);
} while (diff < 2 || diff >= LINES - 2);
- (void) attrset(A_NORMAL);
- for (row = 0; row < diff; row++) {
+ (void) attrset(AttrArg(0, A_NORMAL));
+ for (row = 1; row < diff; row++) {
MvPrintw(LINES - row, start + (row * direction),
(direction < 0) ? "\\" : "/");
if (flag++) {