X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=test%2Frain.c;h=f3f7aa495840885efde47664de92e50d91242906;hp=ef2f6cbc58c1bb3b9b9ad223dad1771285bfad82;hb=8e397cccba0aad135cb9a8a353756f4273a7cdf6;hpb=36b653e854865c31c56f04d059d78a0d5e3f4e24 diff --git a/test/rain.c b/test/rain.c index ef2f6cbc..f3f7aa49 100644 --- a/test/rain.c +++ b/test/rain.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-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 * @@ -26,9 +26,10 @@ * authorization. * ****************************************************************************/ /* - * $Id: rain.c,v 1.37 2010/09/25 22:16:12 juergen Exp $ + * $Id: rain.c,v 1.43 2017/04/30 01:08:14 tom Exp $ */ #include +#include /* rain 11/3/1980 EPS/CITHEP */ @@ -74,23 +75,23 @@ onsig(int n GCC_UNUSED) ExitProgram(EXIT_FAILURE); } -static float +static double ranf(void) { long r = (rand() & 077777); - return ((float) r / 32768.); + return ((double) r / 32768.); } static int random_x(void) { - return (((float) (COLS - 4) * ranf()) + 2); + return (int) (((double) (COLS - 4) * ranf()) + 2); } static int random_y(void) { - return (((float) (LINES - 4) * ranf()) + 2); + return (int) (((double) (LINES - 4) * ranf()) + 2); } static int @@ -102,10 +103,7 @@ next_j(int j) --j; if (has_colors()) { int z = (int) (3 * ranf()); - chtype color = COLOR_PAIR(z); - if (z) - color |= A_BOLD; - (void) attrset(color); + (void) attrset(AttrArg(COLOR_PAIR(z), (z ? A_BOLD : A_NORMAL))); } return j; } @@ -222,7 +220,7 @@ draw_drop(void *arg) * Find myself in the list of threads so we can count the number of loops. */ for (mystats = 0; mystats < MAX_THREADS; ++mystats) { -#ifdef __MINGW32__ +#if defined(__MINGW32__) && !defined(__WINPTHREADS_VERSION) if (drop_threads[mystats].myself.p == pthread_self().p) #else if (drop_threads[mystats].myself == pthread_self()) @@ -256,7 +254,7 @@ draw_drop(void *arg) /* * The description of pthread_create() is misleading, since it implies that * threads will exit cleanly after their function returns. - * + * * Since they do not (and the number of threads is limited by system * resources), make a limited number of threads, and signal any that are * waiting when we want a thread past that limit. @@ -295,6 +293,16 @@ int main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED) { + static const char *help[] = + { + "Commands:", + " q/Q exit the program", + " s do single-step", + " undo single-step", + "", + 0 + }; + bool done = FALSE; DATA drop; #ifndef USE_PTHREADS @@ -314,8 +322,8 @@ main(int argc GCC_UNUSED, if (use_default_colors() == OK) bg = -1; #endif - init_pair(1, COLOR_BLUE, bg); - init_pair(2, COLOR_CYAN, bg); + init_pair(1, COLOR_BLUE, (short) bg); + init_pair(2, COLOR_CYAN, (short) bg); } nl(); noecho(); @@ -376,6 +384,13 @@ main(int argc GCC_UNUSED, case (KEY_RESIZE): break; #endif + case HELP_KEY_1: + popup_msg(stdscr, help); + break; + case ERR: + break; + default: + beep(); } napms(50); }