libncurses: Import https://ftp.gnu.org/pub/gnu/ncurses/ncurses-6.5.tar.gz changes

Change-Id: I3433d30ca01359fd2e3623ede96b531f0b39cbfa
Signed-off-by: micky387 <mickaelsaibi@free.fr>
diff --git a/test/xmas.c b/test/xmas.c
index 087fcd9..9ba3a26 100644
--- a/test/xmas.c
+++ b/test/xmas.c
@@ -92,7 +92,7 @@
 /******************************************************************************/
 
 /*
- * $Id: xmas.c,v 1.28 2013/04/27 19:46:53 tom Exp $
+ * $Id: xmas.c,v 1.39 2022/12/04 00:40:11 tom Exp $
  */
 #include <test.priv.h>
 
@@ -133,22 +133,7 @@
 static WINDOW *w_del_msg;
 static bool *my_pairs;
 
-static int boxit(void);
-static int seas(void);
-static int greet(void);
-static int fromwho(void);
-static int tree(void);
-static int balls(void);
-static int star(void);
-static int strng1(void);
-static int strng2(void);
-static int strng3(void);
-static int strng4(void);
-static int strng5(void);
-static int reindeer(void);
-static int blinkit(void);
-
-static void done(int sig) GCC_NORETURN;
+static GCC_NORETURN void done(int sig);
 
 static void
 set_color(WINDOW *win, chtype color)
@@ -183,495 +168,6 @@
     }
 }
 
-int
-main(int argc GCC_UNUSED, char **argv GCC_UNUSED)
-{
-    int loopy;
-
-    setlocale(LC_ALL, "");
-
-    initscr();
-    noecho();
-    nonl();
-    refresh();
-
-    CATCHALL(done);
-
-    if (has_colors()) {
-	start_color();
-#if HAVE_USE_DEFAULT_COLORS
-	if (use_default_colors() == OK)
-	    my_bg = -1;
-#endif
-    }
-    curs_set(0);
-
-    if ((treescrn = newwin(16, 27, 3, 53)) == 0 ||
-	(treescrn2 = newwin(16, 27, 3, 53)) == 0 ||
-	(treescrn3 = newwin(16, 27, 3, 53)) == 0 ||
-	(treescrn4 = newwin(16, 27, 3, 53)) == 0 ||
-	(treescrn5 = newwin(16, 27, 3, 53)) == 0 ||
-	(treescrn6 = newwin(16, 27, 3, 53)) == 0 ||
-	(treescrn7 = newwin(16, 27, 3, 53)) == 0 ||
-	(treescrn8 = newwin(16, 27, 3, 53)) == 0 ||
-
-	(dotdeer0 = newwin(3, 71, 0, 8)) == 0 ||
-
-	(stardeer0 = newwin(4, 56, 0, 8)) == 0 ||
-
-	(lildeer0 = newwin(7, 53, 0, 8)) == 0 ||
-	(lildeer1 = newwin(2, 4, 0, 0)) == 0 ||
-	(lildeer2 = newwin(2, 4, 0, 0)) == 0 ||
-	(lildeer3 = newwin(2, 4, 0, 0)) == 0 ||
-
-	(middeer0 = newwin(15, 42, 0, 8)) == 0 ||
-	(middeer1 = newwin(3, 7, 0, 0)) == 0 ||
-	(middeer2 = newwin(3, 7, 0, 0)) == 0 ||
-	(middeer3 = newwin(3, 7, 0, 0)) == 0 ||
-
-	(bigdeer0 = newwin(10, 23, 0, 0)) == 0 ||
-	(bigdeer1 = newwin(10, 23, 0, 0)) == 0 ||
-	(bigdeer2 = newwin(10, 23, 0, 0)) == 0 ||
-	(bigdeer3 = newwin(10, 23, 0, 0)) == 0 ||
-	(bigdeer4 = newwin(10, 23, 0, 0)) == 0 ||
-
-	(lookdeer0 = newwin(10, 25, 0, 0)) == 0 ||
-	(lookdeer1 = newwin(10, 25, 0, 0)) == 0 ||
-	(lookdeer2 = newwin(10, 25, 0, 0)) == 0 ||
-	(lookdeer3 = newwin(10, 25, 0, 0)) == 0 ||
-	(lookdeer4 = newwin(10, 25, 0, 0)) == 0 ||
-
-	(w_holiday = newwin(1, 26, 3, 27)) == 0 ||
-
-	(w_del_msg = newwin(1, 19, 23, 60)) == 0) {
-	endwin();
-	fprintf(stderr, "Cannot create windows - screen too small\n");
-	ExitProgram(EXIT_FAILURE);
-    }
-
-    MvWAddStr(w_del_msg, 0, 0, "Hit any key to quit");
-
-    MvWAddStr(w_holiday, 0, 0, "H A P P Y  H O L I D A Y S");
-
-    /* set up the windows for our various reindeer */
-
-    /* lildeer1 */
-    MvWAddCh(lildeer1, 0, 0, (chtype) 'V');
-    MvWAddCh(lildeer1, 1, 0, (chtype) '@');
-    MvWAddCh(lildeer1, 1, 1, (chtype) '<');
-    MvWAddCh(lildeer1, 1, 2, (chtype) '>');
-    MvWAddCh(lildeer1, 1, 3, (chtype) '~');
-
-    /* lildeer2 */
-    MvWAddCh(lildeer2, 0, 0, (chtype) 'V');
-    MvWAddCh(lildeer2, 1, 0, (chtype) '@');
-    MvWAddCh(lildeer2, 1, 1, (chtype) '|');
-    MvWAddCh(lildeer2, 1, 2, (chtype) '|');
-    MvWAddCh(lildeer2, 1, 3, (chtype) '~');
-
-    /* lildeer3 */
-    MvWAddCh(lildeer3, 0, 0, (chtype) 'V');
-    MvWAddCh(lildeer3, 1, 0, (chtype) '@');
-    MvWAddCh(lildeer3, 1, 1, (chtype) '>');
-    MvWAddCh(lildeer3, 1, 2, (chtype) '<');
-    MvWAddCh(lildeer2, 1, 3, (chtype) '~');
-
-    /* middeer1 */
-    MvWAddCh(middeer1, 0, 2, (chtype) 'y');
-    MvWAddCh(middeer1, 0, 3, (chtype) 'y');
-    MvWAddCh(middeer1, 1, 2, (chtype) '0');
-    MvWAddCh(middeer1, 1, 3, (chtype) '(');
-    MvWAddCh(middeer1, 1, 4, (chtype) '=');
-    MvWAddCh(middeer1, 1, 5, (chtype) ')');
-    MvWAddCh(middeer1, 1, 6, (chtype) '~');
-    MvWAddCh(middeer1, 2, 3, (chtype) '\\');
-    MvWAddCh(middeer1, 2, 4, (chtype) '/');
-
-    /* middeer2 */
-    MvWAddCh(middeer2, 0, 2, (chtype) 'y');
-    MvWAddCh(middeer2, 0, 3, (chtype) 'y');
-    MvWAddCh(middeer2, 1, 2, (chtype) '0');
-    MvWAddCh(middeer2, 1, 3, (chtype) '(');
-    MvWAddCh(middeer2, 1, 4, (chtype) '=');
-    MvWAddCh(middeer2, 1, 5, (chtype) ')');
-    MvWAddCh(middeer2, 1, 6, (chtype) '~');
-    MvWAddCh(middeer2, 2, 3, (chtype) '|');
-    MvWAddCh(middeer2, 2, 5, (chtype) '|');
-
-    /* middeer3 */
-    MvWAddCh(middeer3, 0, 2, (chtype) 'y');
-    MvWAddCh(middeer3, 0, 3, (chtype) 'y');
-    MvWAddCh(middeer3, 1, 2, (chtype) '0');
-    MvWAddCh(middeer3, 1, 3, (chtype) '(');
-    MvWAddCh(middeer3, 1, 4, (chtype) '=');
-    MvWAddCh(middeer3, 1, 5, (chtype) ')');
-    MvWAddCh(middeer3, 1, 6, (chtype) '~');
-    MvWAddCh(middeer3, 2, 2, (chtype) '/');
-    MvWAddCh(middeer3, 2, 6, (chtype) '\\');
-
-    /* bigdeer1 */
-    MvWAddCh(bigdeer1, 0, 17, (chtype) '\\');
-    MvWAddCh(bigdeer1, 0, 18, (chtype) '/');
-    MvWAddCh(bigdeer1, 0, 20, (chtype) '\\');
-    MvWAddCh(bigdeer1, 0, 21, (chtype) '/');
-    MvWAddCh(bigdeer1, 1, 18, (chtype) '\\');
-    MvWAddCh(bigdeer1, 1, 20, (chtype) '/');
-    MvWAddCh(bigdeer1, 2, 19, (chtype) '|');
-    MvWAddCh(bigdeer1, 2, 20, (chtype) '_');
-    MvWAddCh(bigdeer1, 3, 18, (chtype) '/');
-    MvWAddCh(bigdeer1, 3, 19, (chtype) '^');
-    MvWAddCh(bigdeer1, 3, 20, (chtype) '0');
-    MvWAddCh(bigdeer1, 3, 21, (chtype) '\\');
-    MvWAddCh(bigdeer1, 4, 17, (chtype) '/');
-    MvWAddCh(bigdeer1, 4, 18, (chtype) '/');
-    MvWAddCh(bigdeer1, 4, 19, (chtype) '\\');
-    MvWAddCh(bigdeer1, 4, 22, (chtype) '\\');
-    MvWAddStr(bigdeer1, 5, 7, "^~~~~~~~~//  ~~U");
-    MvWAddStr(bigdeer1, 6, 7, "( \\_____( /");
-    MvWAddStr(bigdeer1, 7, 8, "( )    /");
-    MvWAddStr(bigdeer1, 8, 9, "\\\\   /");
-    MvWAddStr(bigdeer1, 9, 11, "\\>/>");
-
-    /* bigdeer2 */
-    MvWAddCh(bigdeer2, 0, 17, (chtype) '\\');
-    MvWAddCh(bigdeer2, 0, 18, (chtype) '/');
-    MvWAddCh(bigdeer2, 0, 20, (chtype) '\\');
-    MvWAddCh(bigdeer2, 0, 21, (chtype) '/');
-    MvWAddCh(bigdeer2, 1, 18, (chtype) '\\');
-    MvWAddCh(bigdeer2, 1, 20, (chtype) '/');
-    MvWAddCh(bigdeer2, 2, 19, (chtype) '|');
-    MvWAddCh(bigdeer2, 2, 20, (chtype) '_');
-    MvWAddCh(bigdeer2, 3, 18, (chtype) '/');
-    MvWAddCh(bigdeer2, 3, 19, (chtype) '^');
-    MvWAddCh(bigdeer2, 3, 20, (chtype) '0');
-    MvWAddCh(bigdeer2, 3, 21, (chtype) '\\');
-    MvWAddCh(bigdeer2, 4, 17, (chtype) '/');
-    MvWAddCh(bigdeer2, 4, 18, (chtype) '/');
-    MvWAddCh(bigdeer2, 4, 19, (chtype) '\\');
-    MvWAddCh(bigdeer2, 4, 22, (chtype) '\\');
-    MvWAddStr(bigdeer2, 5, 7, "^~~~~~~~~//  ~~U");
-    MvWAddStr(bigdeer2, 6, 7, "(( )____( /");
-    MvWAddStr(bigdeer2, 7, 7, "( /      |");
-    MvWAddStr(bigdeer2, 8, 8, "\\/      |");
-    MvWAddStr(bigdeer2, 9, 9, "|>     |>");
-
-    /* bigdeer3 */
-    MvWAddCh(bigdeer3, 0, 17, (chtype) '\\');
-    MvWAddCh(bigdeer3, 0, 18, (chtype) '/');
-    MvWAddCh(bigdeer3, 0, 20, (chtype) '\\');
-    MvWAddCh(bigdeer3, 0, 21, (chtype) '/');
-    MvWAddCh(bigdeer3, 1, 18, (chtype) '\\');
-    MvWAddCh(bigdeer3, 1, 20, (chtype) '/');
-    MvWAddCh(bigdeer3, 2, 19, (chtype) '|');
-    MvWAddCh(bigdeer3, 2, 20, (chtype) '_');
-    MvWAddCh(bigdeer3, 3, 18, (chtype) '/');
-    MvWAddCh(bigdeer3, 3, 19, (chtype) '^');
-    MvWAddCh(bigdeer3, 3, 20, (chtype) '0');
-    MvWAddCh(bigdeer3, 3, 21, (chtype) '\\');
-    MvWAddCh(bigdeer3, 4, 17, (chtype) '/');
-    MvWAddCh(bigdeer3, 4, 18, (chtype) '/');
-    MvWAddCh(bigdeer3, 4, 19, (chtype) '\\');
-    MvWAddCh(bigdeer3, 4, 22, (chtype) '\\');
-    MvWAddStr(bigdeer3, 5, 7, "^~~~~~~~~//  ~~U");
-    MvWAddStr(bigdeer3, 6, 6, "( ()_____( /");
-    MvWAddStr(bigdeer3, 7, 6, "/ /       /");
-    MvWAddStr(bigdeer3, 8, 5, "|/          \\");
-    MvWAddStr(bigdeer3, 9, 5, "/>           \\>");
-
-    /* bigdeer4 */
-    MvWAddCh(bigdeer4, 0, 17, (chtype) '\\');
-    MvWAddCh(bigdeer4, 0, 18, (chtype) '/');
-    MvWAddCh(bigdeer4, 0, 20, (chtype) '\\');
-    MvWAddCh(bigdeer4, 0, 21, (chtype) '/');
-    MvWAddCh(bigdeer4, 1, 18, (chtype) '\\');
-    MvWAddCh(bigdeer4, 1, 20, (chtype) '/');
-    MvWAddCh(bigdeer4, 2, 19, (chtype) '|');
-    MvWAddCh(bigdeer4, 2, 20, (chtype) '_');
-    MvWAddCh(bigdeer4, 3, 18, (chtype) '/');
-    MvWAddCh(bigdeer4, 3, 19, (chtype) '^');
-    MvWAddCh(bigdeer4, 3, 20, (chtype) '0');
-    MvWAddCh(bigdeer4, 3, 21, (chtype) '\\');
-    MvWAddCh(bigdeer4, 4, 17, (chtype) '/');
-    MvWAddCh(bigdeer4, 4, 18, (chtype) '/');
-    MvWAddCh(bigdeer4, 4, 19, (chtype) '\\');
-    MvWAddCh(bigdeer4, 4, 22, (chtype) '\\');
-    MvWAddStr(bigdeer4, 5, 7, "^~~~~~~~~//  ~~U");
-    MvWAddStr(bigdeer4, 6, 6, "( )______( /");
-    MvWAddStr(bigdeer4, 7, 5, "(/          \\");
-    MvWAddStr(bigdeer4, 8, 0, "v___=             ----^");
-
-    /* lookdeer1 */
-    MvWAddStr(lookdeer1, 0, 16, "\\/     \\/");
-    MvWAddStr(lookdeer1, 1, 17, "\\Y/ \\Y/");
-    MvWAddStr(lookdeer1, 2, 19, "\\=/");
-    MvWAddStr(lookdeer1, 3, 17, "^\\o o/^");
-    MvWAddStr(lookdeer1, 4, 17, "//( )");
-    MvWAddStr(lookdeer1, 5, 7, "^~~~~~~~~// \\O/");
-    MvWAddStr(lookdeer1, 6, 7, "( \\_____( /");
-    MvWAddStr(lookdeer1, 7, 8, "( )    /");
-    MvWAddStr(lookdeer1, 8, 9, "\\\\   /");
-    MvWAddStr(lookdeer1, 9, 11, "\\>/>");
-
-    /* lookdeer2 */
-    MvWAddStr(lookdeer2, 0, 16, "\\/     \\/");
-    MvWAddStr(lookdeer2, 1, 17, "\\Y/ \\Y/");
-    MvWAddStr(lookdeer2, 2, 19, "\\=/");
-    MvWAddStr(lookdeer2, 3, 17, "^\\o o/^");
-    MvWAddStr(lookdeer2, 4, 17, "//( )");
-    MvWAddStr(lookdeer2, 5, 7, "^~~~~~~~~// \\O/");
-    MvWAddStr(lookdeer2, 6, 7, "(( )____( /");
-    MvWAddStr(lookdeer2, 7, 7, "( /      |");
-    MvWAddStr(lookdeer2, 8, 8, "\\/      |");
-    MvWAddStr(lookdeer2, 9, 9, "|>     |>");
-
-    /* lookdeer3 */
-    MvWAddStr(lookdeer3, 0, 16, "\\/     \\/");
-    MvWAddStr(lookdeer3, 1, 17, "\\Y/ \\Y/");
-    MvWAddStr(lookdeer3, 2, 19, "\\=/");
-    MvWAddStr(lookdeer3, 3, 17, "^\\o o/^");
-    MvWAddStr(lookdeer3, 4, 17, "//( )");
-    MvWAddStr(lookdeer3, 5, 7, "^~~~~~~~~// \\O/");
-    MvWAddStr(lookdeer3, 6, 6, "( ()_____( /");
-    MvWAddStr(lookdeer3, 7, 6, "/ /       /");
-    MvWAddStr(lookdeer3, 8, 5, "|/          \\");
-    MvWAddStr(lookdeer3, 9, 5, "/>           \\>");
-
-    /* lookdeer4 */
-    MvWAddStr(lookdeer4, 0, 16, "\\/     \\/");
-    MvWAddStr(lookdeer4, 1, 17, "\\Y/ \\Y/");
-    MvWAddStr(lookdeer4, 2, 19, "\\=/");
-    MvWAddStr(lookdeer4, 3, 17, "^\\o o/^");
-    MvWAddStr(lookdeer4, 4, 17, "//( )");
-    MvWAddStr(lookdeer4, 5, 7, "^~~~~~~~~// \\O/");
-    MvWAddStr(lookdeer4, 6, 6, "( )______( /");
-    MvWAddStr(lookdeer4, 7, 5, "(/          \\");
-    MvWAddStr(lookdeer4, 8, 0, "v___=             ----^");
-
-	/***********************************************/
-    cbreak();
-    nodelay(stdscr, TRUE);
-    for (;;) {
-	clear();
-	werase(treescrn);
-	touchwin(w_del_msg);
-	touchwin(treescrn);
-	werase(treescrn2);
-	touchwin(treescrn2);
-	werase(treescrn8);
-	touchwin(treescrn8);
-	refresh();
-	look_out(150);
-	boxit();
-	refresh();
-	look_out(150);
-	seas();
-	refresh();
-	look_out(150);
-	greet();
-	refresh();
-	look_out(150);
-	fromwho();
-	refresh();
-	look_out(150);
-	tree();
-	look_out(150);
-	balls();
-	look_out(150);
-	star();
-	look_out(150);
-	strng1();
-	strng2();
-	strng3();
-	strng4();
-	strng5();
-
-	/* set up the windows for our blinking trees */
-	/* **************************************** */
-	/* treescrn3 */
-
-	overlay(treescrn, treescrn3);
-
-	/*balls */
-	MvWAddCh(treescrn3, 4, 18, ' ');
-	MvWAddCh(treescrn3, 7, 6, ' ');
-	MvWAddCh(treescrn3, 8, 19, ' ');
-	MvWAddCh(treescrn3, 11, 22, ' ');
-
-	/*star */
-	MvWAddCh(treescrn3, 0, 12, '*');
-
-	/*strng1 */
-	MvWAddCh(treescrn3, 3, 11, ' ');
-
-	/*strng2 */
-	MvWAddCh(treescrn3, 5, 13, ' ');
-	MvWAddCh(treescrn3, 6, 10, ' ');
-
-	/*strng3 */
-	MvWAddCh(treescrn3, 7, 16, ' ');
-	MvWAddCh(treescrn3, 7, 14, ' ');
-
-	/*strng4 */
-	MvWAddCh(treescrn3, 10, 13, ' ');
-	MvWAddCh(treescrn3, 10, 10, ' ');
-	MvWAddCh(treescrn3, 11, 8, ' ');
-
-	/*strng5 */
-	MvWAddCh(treescrn3, 11, 18, ' ');
-	MvWAddCh(treescrn3, 12, 13, ' ');
-
-	/* treescrn4 */
-
-	overlay(treescrn, treescrn4);
-
-	/*balls */
-	MvWAddCh(treescrn4, 3, 9, ' ');
-	MvWAddCh(treescrn4, 4, 16, ' ');
-	MvWAddCh(treescrn4, 7, 6, ' ');
-	MvWAddCh(treescrn4, 8, 19, ' ');
-	MvWAddCh(treescrn4, 11, 2, ' ');
-	MvWAddCh(treescrn4, 12, 23, ' ');
-
-	/*star */
-	(void) wstandout(treescrn4);
-	MvWAddCh(treescrn4, 0, 12, '*');
-	(void) wstandend(treescrn4);
-
-	/*strng1 */
-	MvWAddCh(treescrn4, 3, 13, ' ');
-
-	/*strng2 */
-
-	/*strng3 */
-	MvWAddCh(treescrn4, 7, 15, ' ');
-	MvWAddCh(treescrn4, 8, 11, ' ');
-
-	/*strng4 */
-	MvWAddCh(treescrn4, 9, 16, ' ');
-	MvWAddCh(treescrn4, 10, 12, ' ');
-	MvWAddCh(treescrn4, 11, 8, ' ');
-
-	/*strng5 */
-	MvWAddCh(treescrn4, 11, 18, ' ');
-	MvWAddCh(treescrn4, 12, 14, ' ');
-
-	/* treescrn5 */
-
-	overlay(treescrn, treescrn5);
-
-	/*balls */
-	MvWAddCh(treescrn5, 3, 15, ' ');
-	MvWAddCh(treescrn5, 10, 20, ' ');
-	MvWAddCh(treescrn5, 12, 1, ' ');
-
-	/*star */
-	MvWAddCh(treescrn5, 0, 12, '*');
-
-	/*strng1 */
-	MvWAddCh(treescrn5, 3, 11, ' ');
-
-	/*strng2 */
-	MvWAddCh(treescrn5, 5, 12, ' ');
-
-	/*strng3 */
-	MvWAddCh(treescrn5, 7, 14, ' ');
-	MvWAddCh(treescrn5, 8, 10, ' ');
-
-	/*strng4 */
-	MvWAddCh(treescrn5, 9, 15, ' ');
-	MvWAddCh(treescrn5, 10, 11, ' ');
-	MvWAddCh(treescrn5, 11, 7, ' ');
-
-	/*strng5 */
-	MvWAddCh(treescrn5, 11, 17, ' ');
-	MvWAddCh(treescrn5, 12, 13, ' ');
-
-	/* treescrn6 */
-
-	overlay(treescrn, treescrn6);
-
-	/*balls */
-	MvWAddCh(treescrn6, 6, 7, ' ');
-	MvWAddCh(treescrn6, 7, 18, ' ');
-	MvWAddCh(treescrn6, 10, 4, ' ');
-	MvWAddCh(treescrn6, 11, 23, ' ');
-
-	/*star */
-	(void) wstandout(treescrn6);
-	MvWAddCh(treescrn6, 0, 12, '*');
-	(void) wstandend(treescrn6);
-
-	/*strng1 */
-
-	/*strng2 */
-	MvWAddCh(treescrn6, 5, 11, ' ');
-
-	/*strng3 */
-	MvWAddCh(treescrn6, 7, 13, ' ');
-	MvWAddCh(treescrn6, 8, 9, ' ');
-
-	/*strng4 */
-	MvWAddCh(treescrn6, 9, 14, ' ');
-	MvWAddCh(treescrn6, 10, 10, ' ');
-	MvWAddCh(treescrn6, 11, 6, ' ');
-
-	/*strng5 */
-	MvWAddCh(treescrn6, 11, 16, ' ');
-	MvWAddCh(treescrn6, 12, 12, ' ');
-
-	/* treescrn7 */
-
-	overlay(treescrn, treescrn7);
-
-	/*balls */
-	MvWAddCh(treescrn7, 3, 15, ' ');
-	MvWAddCh(treescrn7, 6, 7, ' ');
-	MvWAddCh(treescrn7, 7, 18, ' ');
-	MvWAddCh(treescrn7, 10, 4, ' ');
-	MvWAddCh(treescrn7, 11, 22, ' ');
-
-	/*star */
-	MvWAddCh(treescrn7, 0, 12, '*');
-
-	/*strng1 */
-	MvWAddCh(treescrn7, 3, 12, ' ');
-
-	/*strng2 */
-	MvWAddCh(treescrn7, 5, 13, ' ');
-	MvWAddCh(treescrn7, 6, 9, ' ');
-
-	/*strng3 */
-	MvWAddCh(treescrn7, 7, 15, ' ');
-	MvWAddCh(treescrn7, 8, 11, ' ');
-
-	/*strng4 */
-	MvWAddCh(treescrn7, 9, 16, ' ');
-	MvWAddCh(treescrn7, 10, 12, ' ');
-	MvWAddCh(treescrn7, 11, 8, ' ');
-
-	/*strng5 */
-	MvWAddCh(treescrn7, 11, 18, ' ');
-	MvWAddCh(treescrn7, 12, 14, ' ');
-
-	look_out(150);
-	reindeer();
-
-	touchwin(w_holiday);
-	wrefresh(w_holiday);
-	wrefresh(w_del_msg);
-
-	look_out(500);
-	for (loopy = 0; loopy < 100; loopy++) {
-	    blinkit();
-	}
-
-#ifdef NOLOOP
-	done(0);
-#endif
-    }
-    /*NOTREACHED */
-}
-
 static int
 boxit(void)
 {
@@ -958,37 +454,31 @@
     switch (cycle) {
     case 0:
 	overlay(treescrn3, treescrn8);
-	wrefresh(treescrn8);
-	wrefresh(w_del_msg);
 	break;
     case 1:
 	overlay(treescrn4, treescrn8);
-	wrefresh(treescrn8);
-	wrefresh(w_del_msg);
 	break;
     case 2:
 	overlay(treescrn5, treescrn8);
-	wrefresh(treescrn8);
-	wrefresh(w_del_msg);
 	break;
     case 3:
 	overlay(treescrn6, treescrn8);
-	wrefresh(treescrn8);
-	wrefresh(w_del_msg);
 	break;
     case 4:
 	overlay(treescrn7, treescrn8);
-	wrefresh(treescrn8);
-	wrefresh(w_del_msg);
 	break;
     }
     touchwin(treescrn8);
+    wrefresh(treescrn8);
+    wrefresh(w_del_msg);
+    look_out(50);
 
     /*ALL ON************************************************** */
 
     overlay(treescrn, treescrn8);
     wrefresh(treescrn8);
     wrefresh(w_del_msg);
+    look_out(50);
 
     ++cycle;
     return (0);
@@ -1010,9 +500,6 @@
     y_pos = 0;
 
     for (x_pos = 70; x_pos > 62; x_pos--) {
-	if (x_pos < 62) {
-	    y_pos = 1;
-	}
 	for (looper = 0; looper < 4; looper++) {
 	    MvWAddCh(dotdeer0, y_pos, x_pos, (chtype) '.');
 	    wrefresh(dotdeer0);
@@ -1146,12 +633,9 @@
 static void
 done(int sig GCC_UNUSED)
 {
-    CATCHALL(done);
-
     move(LINES - 1, 0);
     refresh();
-    endwin();
-    curs_set(1);
+    stop_curses();
 
 #if NO_LEAKS
     if (my_pairs != 0)
@@ -1160,3 +644,535 @@
 
     ExitProgram(EXIT_SUCCESS);
 }
+
+static void
+usage(int ok)
+{
+    static const char *msg[] =
+    {
+	"Usage: xmas [options]"
+	,""
+	,USAGE_COMMON
+	,"Options:"
+#if HAVE_USE_DEFAULT_COLORS
+	," -d       invoke use_default_colors"
+#endif
+	," -q       execute once, then quit"
+    };
+    size_t n;
+
+    for (n = 0; n < SIZEOF(msg); n++)
+	fprintf(stderr, "%s\n", msg[n]);
+
+    ExitProgram(ok ? EXIT_SUCCESS : EXIT_FAILURE);
+}
+/* *INDENT-OFF* */
+VERSION_COMMON()
+/* *INDENT-ON* */
+
+int
+main(int argc, char *argv[])
+{
+    int ch;
+    int loopy;
+#if HAVE_USE_DEFAULT_COLORS
+    bool opt_d = FALSE;
+#endif
+    bool opt_q = FALSE;
+
+    while ((ch = getopt(argc, argv, OPTS_COMMON "dq")) != -1) {
+	switch (ch) {
+#if HAVE_USE_DEFAULT_COLORS
+	case 'd':
+	    opt_d = TRUE;
+	    break;
+#endif
+	case 'q':
+	    opt_q = TRUE;
+	    break;
+	case OPTS_VERSION:
+	    show_version(argv);
+	    ExitProgram(EXIT_SUCCESS);
+	default:
+	    usage(ch == OPTS_USAGE);
+	    /* NOTREACHED */
+	}
+    }
+
+    setlocale(LC_ALL, "");
+
+    InitAndCatch(initscr(), done);
+    noecho();
+    nonl();
+    refresh();
+
+    if (has_colors()) {
+	start_color();
+#if HAVE_USE_DEFAULT_COLORS
+	if (opt_d && (use_default_colors() == OK))
+	    my_bg = -1;
+#endif
+    }
+    curs_set(0);
+
+    if ((treescrn = newwin(16, 27, 3, 53)) == 0 ||
+	(treescrn2 = newwin(16, 27, 3, 53)) == 0 ||
+	(treescrn3 = newwin(16, 27, 3, 53)) == 0 ||
+	(treescrn4 = newwin(16, 27, 3, 53)) == 0 ||
+	(treescrn5 = newwin(16, 27, 3, 53)) == 0 ||
+	(treescrn6 = newwin(16, 27, 3, 53)) == 0 ||
+	(treescrn7 = newwin(16, 27, 3, 53)) == 0 ||
+	(treescrn8 = newwin(16, 27, 3, 53)) == 0 ||
+
+	(dotdeer0 = newwin(3, 71, 0, 8)) == 0 ||
+
+	(stardeer0 = newwin(4, 56, 0, 8)) == 0 ||
+
+	(lildeer0 = newwin(7, 53, 0, 8)) == 0 ||
+	(lildeer1 = newwin(2, 4, 0, 0)) == 0 ||
+	(lildeer2 = newwin(2, 4, 0, 0)) == 0 ||
+	(lildeer3 = newwin(2, 4, 0, 0)) == 0 ||
+
+	(middeer0 = newwin(15, 42, 0, 8)) == 0 ||
+	(middeer1 = newwin(3, 7, 0, 0)) == 0 ||
+	(middeer2 = newwin(3, 7, 0, 0)) == 0 ||
+	(middeer3 = newwin(3, 7, 0, 0)) == 0 ||
+
+	(bigdeer0 = newwin(10, 23, 0, 0)) == 0 ||
+	(bigdeer1 = newwin(10, 23, 0, 0)) == 0 ||
+	(bigdeer2 = newwin(10, 23, 0, 0)) == 0 ||
+	(bigdeer3 = newwin(10, 23, 0, 0)) == 0 ||
+	(bigdeer4 = newwin(10, 23, 0, 0)) == 0 ||
+
+	(lookdeer0 = newwin(10, 25, 0, 0)) == 0 ||
+	(lookdeer1 = newwin(10, 25, 0, 0)) == 0 ||
+	(lookdeer2 = newwin(10, 25, 0, 0)) == 0 ||
+	(lookdeer3 = newwin(10, 25, 0, 0)) == 0 ||
+	(lookdeer4 = newwin(10, 25, 0, 0)) == 0 ||
+
+	(w_holiday = newwin(1, 26, 3, 27)) == 0 ||
+
+	(w_del_msg = newwin(1, 19, 23, 60)) == 0) {
+	stop_curses();
+	fprintf(stderr, "Cannot create windows - screen too small\n");
+	ExitProgram(EXIT_FAILURE);
+    }
+
+    MvWAddStr(w_del_msg, 0, 0, "Hit any key to quit");
+
+    MvWAddStr(w_holiday, 0, 0, "H A P P Y  H O L I D A Y S");
+
+    /* set up the windows for our various reindeer */
+
+    /* lildeer1 */
+    MvWAddCh(lildeer1, 0, 0, (chtype) 'V');
+    MvWAddCh(lildeer1, 1, 0, (chtype) '@');
+    MvWAddCh(lildeer1, 1, 1, (chtype) '<');
+    MvWAddCh(lildeer1, 1, 2, (chtype) '>');
+    MvWAddCh(lildeer1, 1, 3, (chtype) '~');
+
+    /* lildeer2 */
+    MvWAddCh(lildeer2, 0, 0, (chtype) 'V');
+    MvWAddCh(lildeer2, 1, 0, (chtype) '@');
+    MvWAddCh(lildeer2, 1, 1, (chtype) '|');
+    MvWAddCh(lildeer2, 1, 2, (chtype) '|');
+    MvWAddCh(lildeer2, 1, 3, (chtype) '~');
+
+    /* lildeer3 */
+    MvWAddCh(lildeer3, 0, 0, (chtype) 'V');
+    MvWAddCh(lildeer3, 1, 0, (chtype) '@');
+    MvWAddCh(lildeer3, 1, 1, (chtype) '>');
+    MvWAddCh(lildeer3, 1, 2, (chtype) '<');
+    MvWAddCh(lildeer2, 1, 3, (chtype) '~');
+
+    /* middeer1 */
+    MvWAddCh(middeer1, 0, 2, (chtype) 'y');
+    MvWAddCh(middeer1, 0, 3, (chtype) 'y');
+    MvWAddCh(middeer1, 1, 2, (chtype) '0');
+    MvWAddCh(middeer1, 1, 3, (chtype) '(');
+    MvWAddCh(middeer1, 1, 4, (chtype) '=');
+    MvWAddCh(middeer1, 1, 5, (chtype) ')');
+    MvWAddCh(middeer1, 1, 6, (chtype) '~');
+    MvWAddCh(middeer1, 2, 3, (chtype) '\\');
+    MvWAddCh(middeer1, 2, 4, (chtype) '/');
+
+    /* middeer2 */
+    MvWAddCh(middeer2, 0, 2, (chtype) 'y');
+    MvWAddCh(middeer2, 0, 3, (chtype) 'y');
+    MvWAddCh(middeer2, 1, 2, (chtype) '0');
+    MvWAddCh(middeer2, 1, 3, (chtype) '(');
+    MvWAddCh(middeer2, 1, 4, (chtype) '=');
+    MvWAddCh(middeer2, 1, 5, (chtype) ')');
+    MvWAddCh(middeer2, 1, 6, (chtype) '~');
+    MvWAddCh(middeer2, 2, 3, (chtype) '|');
+    MvWAddCh(middeer2, 2, 5, (chtype) '|');
+
+    /* middeer3 */
+    MvWAddCh(middeer3, 0, 2, (chtype) 'y');
+    MvWAddCh(middeer3, 0, 3, (chtype) 'y');
+    MvWAddCh(middeer3, 1, 2, (chtype) '0');
+    MvWAddCh(middeer3, 1, 3, (chtype) '(');
+    MvWAddCh(middeer3, 1, 4, (chtype) '=');
+    MvWAddCh(middeer3, 1, 5, (chtype) ')');
+    MvWAddCh(middeer3, 1, 6, (chtype) '~');
+    MvWAddCh(middeer3, 2, 2, (chtype) '/');
+    MvWAddCh(middeer3, 2, 6, (chtype) '\\');
+
+    /* bigdeer1 */
+    MvWAddCh(bigdeer1, 0, 17, (chtype) '\\');
+    MvWAddCh(bigdeer1, 0, 18, (chtype) '/');
+    MvWAddCh(bigdeer1, 0, 20, (chtype) '\\');
+    MvWAddCh(bigdeer1, 0, 21, (chtype) '/');
+    MvWAddCh(bigdeer1, 1, 18, (chtype) '\\');
+    MvWAddCh(bigdeer1, 1, 20, (chtype) '/');
+    MvWAddCh(bigdeer1, 2, 19, (chtype) '|');
+    MvWAddCh(bigdeer1, 2, 20, (chtype) '_');
+    MvWAddCh(bigdeer1, 3, 18, (chtype) '/');
+    MvWAddCh(bigdeer1, 3, 19, (chtype) '^');
+    MvWAddCh(bigdeer1, 3, 20, (chtype) '0');
+    MvWAddCh(bigdeer1, 3, 21, (chtype) '\\');
+    MvWAddCh(bigdeer1, 4, 17, (chtype) '/');
+    MvWAddCh(bigdeer1, 4, 18, (chtype) '/');
+    MvWAddCh(bigdeer1, 4, 19, (chtype) '\\');
+    MvWAddCh(bigdeer1, 4, 22, (chtype) '\\');
+    MvWAddStr(bigdeer1, 5, 7, "^~~~~~~~~//  ~~U");
+    MvWAddStr(bigdeer1, 6, 7, "( \\_____( /");
+    MvWAddStr(bigdeer1, 7, 8, "( )    /");
+    MvWAddStr(bigdeer1, 8, 9, "\\\\   /");
+    MvWAddStr(bigdeer1, 9, 11, "\\>/>");
+
+    /* bigdeer2 */
+    MvWAddCh(bigdeer2, 0, 17, (chtype) '\\');
+    MvWAddCh(bigdeer2, 0, 18, (chtype) '/');
+    MvWAddCh(bigdeer2, 0, 20, (chtype) '\\');
+    MvWAddCh(bigdeer2, 0, 21, (chtype) '/');
+    MvWAddCh(bigdeer2, 1, 18, (chtype) '\\');
+    MvWAddCh(bigdeer2, 1, 20, (chtype) '/');
+    MvWAddCh(bigdeer2, 2, 19, (chtype) '|');
+    MvWAddCh(bigdeer2, 2, 20, (chtype) '_');
+    MvWAddCh(bigdeer2, 3, 18, (chtype) '/');
+    MvWAddCh(bigdeer2, 3, 19, (chtype) '^');
+    MvWAddCh(bigdeer2, 3, 20, (chtype) '0');
+    MvWAddCh(bigdeer2, 3, 21, (chtype) '\\');
+    MvWAddCh(bigdeer2, 4, 17, (chtype) '/');
+    MvWAddCh(bigdeer2, 4, 18, (chtype) '/');
+    MvWAddCh(bigdeer2, 4, 19, (chtype) '\\');
+    MvWAddCh(bigdeer2, 4, 22, (chtype) '\\');
+    MvWAddStr(bigdeer2, 5, 7, "^~~~~~~~~//  ~~U");
+    MvWAddStr(bigdeer2, 6, 7, "(( )____( /");
+    MvWAddStr(bigdeer2, 7, 7, "( /      |");
+    MvWAddStr(bigdeer2, 8, 8, "\\/      |");
+    MvWAddStr(bigdeer2, 9, 9, "|>     |>");
+
+    /* bigdeer3 */
+    MvWAddCh(bigdeer3, 0, 17, (chtype) '\\');
+    MvWAddCh(bigdeer3, 0, 18, (chtype) '/');
+    MvWAddCh(bigdeer3, 0, 20, (chtype) '\\');
+    MvWAddCh(bigdeer3, 0, 21, (chtype) '/');
+    MvWAddCh(bigdeer3, 1, 18, (chtype) '\\');
+    MvWAddCh(bigdeer3, 1, 20, (chtype) '/');
+    MvWAddCh(bigdeer3, 2, 19, (chtype) '|');
+    MvWAddCh(bigdeer3, 2, 20, (chtype) '_');
+    MvWAddCh(bigdeer3, 3, 18, (chtype) '/');
+    MvWAddCh(bigdeer3, 3, 19, (chtype) '^');
+    MvWAddCh(bigdeer3, 3, 20, (chtype) '0');
+    MvWAddCh(bigdeer3, 3, 21, (chtype) '\\');
+    MvWAddCh(bigdeer3, 4, 17, (chtype) '/');
+    MvWAddCh(bigdeer3, 4, 18, (chtype) '/');
+    MvWAddCh(bigdeer3, 4, 19, (chtype) '\\');
+    MvWAddCh(bigdeer3, 4, 22, (chtype) '\\');
+    MvWAddStr(bigdeer3, 5, 7, "^~~~~~~~~//  ~~U");
+    MvWAddStr(bigdeer3, 6, 6, "( ()_____( /");
+    MvWAddStr(bigdeer3, 7, 6, "/ /       /");
+    MvWAddStr(bigdeer3, 8, 5, "|/          \\");
+    MvWAddStr(bigdeer3, 9, 5, "/>           \\>");
+
+    /* bigdeer4 */
+    MvWAddCh(bigdeer4, 0, 17, (chtype) '\\');
+    MvWAddCh(bigdeer4, 0, 18, (chtype) '/');
+    MvWAddCh(bigdeer4, 0, 20, (chtype) '\\');
+    MvWAddCh(bigdeer4, 0, 21, (chtype) '/');
+    MvWAddCh(bigdeer4, 1, 18, (chtype) '\\');
+    MvWAddCh(bigdeer4, 1, 20, (chtype) '/');
+    MvWAddCh(bigdeer4, 2, 19, (chtype) '|');
+    MvWAddCh(bigdeer4, 2, 20, (chtype) '_');
+    MvWAddCh(bigdeer4, 3, 18, (chtype) '/');
+    MvWAddCh(bigdeer4, 3, 19, (chtype) '^');
+    MvWAddCh(bigdeer4, 3, 20, (chtype) '0');
+    MvWAddCh(bigdeer4, 3, 21, (chtype) '\\');
+    MvWAddCh(bigdeer4, 4, 17, (chtype) '/');
+    MvWAddCh(bigdeer4, 4, 18, (chtype) '/');
+    MvWAddCh(bigdeer4, 4, 19, (chtype) '\\');
+    MvWAddCh(bigdeer4, 4, 22, (chtype) '\\');
+    MvWAddStr(bigdeer4, 5, 7, "^~~~~~~~~//  ~~U");
+    MvWAddStr(bigdeer4, 6, 6, "( )______( /");
+    MvWAddStr(bigdeer4, 7, 5, "(/          \\");
+    MvWAddStr(bigdeer4, 8, 0, "v___=             ----^");
+
+    /* lookdeer1 */
+    MvWAddStr(lookdeer1, 0, 16, "\\/     \\/");
+    MvWAddStr(lookdeer1, 1, 17, "\\Y/ \\Y/");
+    MvWAddStr(lookdeer1, 2, 19, "\\=/");
+    MvWAddStr(lookdeer1, 3, 17, "^\\o o/^");
+    MvWAddStr(lookdeer1, 4, 17, "//( )");
+    MvWAddStr(lookdeer1, 5, 7, "^~~~~~~~~// \\O/");
+    MvWAddStr(lookdeer1, 6, 7, "( \\_____( /");
+    MvWAddStr(lookdeer1, 7, 8, "( )    /");
+    MvWAddStr(lookdeer1, 8, 9, "\\\\   /");
+    MvWAddStr(lookdeer1, 9, 11, "\\>/>");
+
+    /* lookdeer2 */
+    MvWAddStr(lookdeer2, 0, 16, "\\/     \\/");
+    MvWAddStr(lookdeer2, 1, 17, "\\Y/ \\Y/");
+    MvWAddStr(lookdeer2, 2, 19, "\\=/");
+    MvWAddStr(lookdeer2, 3, 17, "^\\o o/^");
+    MvWAddStr(lookdeer2, 4, 17, "//( )");
+    MvWAddStr(lookdeer2, 5, 7, "^~~~~~~~~// \\O/");
+    MvWAddStr(lookdeer2, 6, 7, "(( )____( /");
+    MvWAddStr(lookdeer2, 7, 7, "( /      |");
+    MvWAddStr(lookdeer2, 8, 8, "\\/      |");
+    MvWAddStr(lookdeer2, 9, 9, "|>     |>");
+
+    /* lookdeer3 */
+    MvWAddStr(lookdeer3, 0, 16, "\\/     \\/");
+    MvWAddStr(lookdeer3, 1, 17, "\\Y/ \\Y/");
+    MvWAddStr(lookdeer3, 2, 19, "\\=/");
+    MvWAddStr(lookdeer3, 3, 17, "^\\o o/^");
+    MvWAddStr(lookdeer3, 4, 17, "//( )");
+    MvWAddStr(lookdeer3, 5, 7, "^~~~~~~~~// \\O/");
+    MvWAddStr(lookdeer3, 6, 6, "( ()_____( /");
+    MvWAddStr(lookdeer3, 7, 6, "/ /       /");
+    MvWAddStr(lookdeer3, 8, 5, "|/          \\");
+    MvWAddStr(lookdeer3, 9, 5, "/>           \\>");
+
+    /* lookdeer4 */
+    MvWAddStr(lookdeer4, 0, 16, "\\/     \\/");
+    MvWAddStr(lookdeer4, 1, 17, "\\Y/ \\Y/");
+    MvWAddStr(lookdeer4, 2, 19, "\\=/");
+    MvWAddStr(lookdeer4, 3, 17, "^\\o o/^");
+    MvWAddStr(lookdeer4, 4, 17, "//( )");
+    MvWAddStr(lookdeer4, 5, 7, "^~~~~~~~~// \\O/");
+    MvWAddStr(lookdeer4, 6, 6, "( )______( /");
+    MvWAddStr(lookdeer4, 7, 5, "(/          \\");
+    MvWAddStr(lookdeer4, 8, 0, "v___=             ----^");
+
+	/***********************************************/
+    cbreak();
+    nodelay(stdscr, TRUE);
+    do {
+	clear();
+	werase(treescrn);
+	touchwin(w_del_msg);
+	touchwin(treescrn);
+	werase(treescrn2);
+	touchwin(treescrn2);
+	werase(treescrn8);
+	touchwin(treescrn8);
+	refresh();
+	look_out(150);
+	boxit();
+	refresh();
+	look_out(150);
+	seas();
+	refresh();
+	look_out(150);
+	greet();
+	refresh();
+	look_out(150);
+	fromwho();
+	refresh();
+	look_out(150);
+	tree();
+	look_out(150);
+	balls();
+	look_out(150);
+	star();
+	look_out(150);
+	strng1();
+	strng2();
+	strng3();
+	strng4();
+	strng5();
+
+	/* set up the windows for our blinking trees */
+	/* **************************************** */
+	/* treescrn3 */
+
+	overlay(treescrn, treescrn3);
+
+	/*balls */
+	MvWAddCh(treescrn3, 4, 18, ' ');
+	MvWAddCh(treescrn3, 7, 6, ' ');
+	MvWAddCh(treescrn3, 8, 19, ' ');
+	MvWAddCh(treescrn3, 11, 22, ' ');
+
+	/*star */
+	MvWAddCh(treescrn3, 0, 12, '*');
+
+	/*strng1 */
+	MvWAddCh(treescrn3, 3, 11, ' ');
+
+	/*strng2 */
+	MvWAddCh(treescrn3, 5, 13, ' ');
+	MvWAddCh(treescrn3, 6, 10, ' ');
+
+	/*strng3 */
+	MvWAddCh(treescrn3, 7, 16, ' ');
+	MvWAddCh(treescrn3, 7, 14, ' ');
+
+	/*strng4 */
+	MvWAddCh(treescrn3, 10, 13, ' ');
+	MvWAddCh(treescrn3, 10, 10, ' ');
+	MvWAddCh(treescrn3, 11, 8, ' ');
+
+	/*strng5 */
+	MvWAddCh(treescrn3, 11, 18, ' ');
+	MvWAddCh(treescrn3, 12, 13, ' ');
+
+	/* treescrn4 */
+
+	overlay(treescrn, treescrn4);
+
+	/*balls */
+	MvWAddCh(treescrn4, 3, 9, ' ');
+	MvWAddCh(treescrn4, 4, 16, ' ');
+	MvWAddCh(treescrn4, 7, 6, ' ');
+	MvWAddCh(treescrn4, 8, 19, ' ');
+	MvWAddCh(treescrn4, 11, 2, ' ');
+	MvWAddCh(treescrn4, 12, 23, ' ');
+
+	/*star */
+	(void) wstandout(treescrn4);
+	MvWAddCh(treescrn4, 0, 12, '*');
+	(void) wstandend(treescrn4);
+
+	/*strng1 */
+	MvWAddCh(treescrn4, 3, 13, ' ');
+
+	/*strng2 */
+
+	/*strng3 */
+	MvWAddCh(treescrn4, 7, 15, ' ');
+	MvWAddCh(treescrn4, 8, 11, ' ');
+
+	/*strng4 */
+	MvWAddCh(treescrn4, 9, 16, ' ');
+	MvWAddCh(treescrn4, 10, 12, ' ');
+	MvWAddCh(treescrn4, 11, 8, ' ');
+
+	/*strng5 */
+	MvWAddCh(treescrn4, 11, 18, ' ');
+	MvWAddCh(treescrn4, 12, 14, ' ');
+
+	/* treescrn5 */
+
+	overlay(treescrn, treescrn5);
+
+	/*balls */
+	MvWAddCh(treescrn5, 3, 15, ' ');
+	MvWAddCh(treescrn5, 10, 20, ' ');
+	MvWAddCh(treescrn5, 12, 1, ' ');
+
+	/*star */
+	MvWAddCh(treescrn5, 0, 12, '*');
+
+	/*strng1 */
+	MvWAddCh(treescrn5, 3, 11, ' ');
+
+	/*strng2 */
+	MvWAddCh(treescrn5, 5, 12, ' ');
+
+	/*strng3 */
+	MvWAddCh(treescrn5, 7, 14, ' ');
+	MvWAddCh(treescrn5, 8, 10, ' ');
+
+	/*strng4 */
+	MvWAddCh(treescrn5, 9, 15, ' ');
+	MvWAddCh(treescrn5, 10, 11, ' ');
+	MvWAddCh(treescrn5, 11, 7, ' ');
+
+	/*strng5 */
+	MvWAddCh(treescrn5, 11, 17, ' ');
+	MvWAddCh(treescrn5, 12, 13, ' ');
+
+	/* treescrn6 */
+
+	overlay(treescrn, treescrn6);
+
+	/*balls */
+	MvWAddCh(treescrn6, 6, 7, ' ');
+	MvWAddCh(treescrn6, 7, 18, ' ');
+	MvWAddCh(treescrn6, 10, 4, ' ');
+	MvWAddCh(treescrn6, 11, 23, ' ');
+
+	/*star */
+	(void) wstandout(treescrn6);
+	MvWAddCh(treescrn6, 0, 12, '*');
+	(void) wstandend(treescrn6);
+
+	/*strng1 */
+
+	/*strng2 */
+	MvWAddCh(treescrn6, 5, 11, ' ');
+
+	/*strng3 */
+	MvWAddCh(treescrn6, 7, 13, ' ');
+	MvWAddCh(treescrn6, 8, 9, ' ');
+
+	/*strng4 */
+	MvWAddCh(treescrn6, 9, 14, ' ');
+	MvWAddCh(treescrn6, 10, 10, ' ');
+	MvWAddCh(treescrn6, 11, 6, ' ');
+
+	/*strng5 */
+	MvWAddCh(treescrn6, 11, 16, ' ');
+	MvWAddCh(treescrn6, 12, 12, ' ');
+
+	/* treescrn7 */
+
+	overlay(treescrn, treescrn7);
+
+	/*balls */
+	MvWAddCh(treescrn7, 3, 15, ' ');
+	MvWAddCh(treescrn7, 6, 7, ' ');
+	MvWAddCh(treescrn7, 7, 18, ' ');
+	MvWAddCh(treescrn7, 10, 4, ' ');
+	MvWAddCh(treescrn7, 11, 22, ' ');
+
+	/*star */
+	MvWAddCh(treescrn7, 0, 12, '*');
+
+	/*strng1 */
+	MvWAddCh(treescrn7, 3, 12, ' ');
+
+	/*strng2 */
+	MvWAddCh(treescrn7, 5, 13, ' ');
+	MvWAddCh(treescrn7, 6, 9, ' ');
+
+	/*strng3 */
+	MvWAddCh(treescrn7, 7, 15, ' ');
+	MvWAddCh(treescrn7, 8, 11, ' ');
+
+	/*strng4 */
+	MvWAddCh(treescrn7, 9, 16, ' ');
+	MvWAddCh(treescrn7, 10, 12, ' ');
+	MvWAddCh(treescrn7, 11, 8, ' ');
+
+	/*strng5 */
+	MvWAddCh(treescrn7, 11, 18, ' ');
+	MvWAddCh(treescrn7, 12, 14, ' ');
+
+	look_out(150);
+	reindeer();
+
+	touchwin(w_holiday);
+	wrefresh(w_holiday);
+	wrefresh(w_del_msg);
+
+	look_out(500);
+	for (loopy = 0; loopy < 100; loopy++) {
+	    blinkit();
+	}
+    } while (!opt_q);
+    done(0);
+}