+/****************************************************************************
+ * Copyright (c) 1998-2009,2013 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. *
+ ****************************************************************************/
/*****************************************************************************
* *
* B l u e M o o n *
* results, use the ncurses(3) library. On non-Intel machines, SVr4 curses is
* just as good.
*
- * $Id: blue.c,v 1.25 2005/05/28 21:38:03 tom Exp $
+ * $Id: blue.c,v 1.35 2013/04/27 19:46:53 tom Exp $
*/
#include <test.priv.h>
#define BLACK_ON_WHITE 2
#define BLUE_ON_WHITE 3
-static RETSIGTYPE die(int onsig) GCC_NORETURN;
+static void die(int onsig) GCC_NORETURN;
static int deck_size = PACK_SIZE; /* initial deck */
static int deck[PACK_SIZE];
OR_COLORS('c', BLACK_ON_WHITE), /* clubs */
};
-#if defined(__i386__)
+#if defined(__i386__) && defined(A_ALTCHARSET) && HAVE_TIGETSTR
static chtype glyphs[] =
{
PC_COLORS('\003', RED_ON_WHITE), /* hearts */
PC_COLORS('\004', RED_ON_WHITE), /* diamonds */
PC_COLORS('\005', BLACK_ON_WHITE), /* clubs */
};
+#define USE_CP437 1
+#else
+#define USE_CP437 0
#endif /* __i386__ */
static chtype *suits = letters; /* this may change to glyphs below */
-static RETSIGTYPE
+static void
die(int onsig)
{
(void) signal(onsig, SIG_IGN);
{
int ptr, card = 0, value, csuit, crank, suit, aces[4];
+ memset(aces, 0, sizeof(aces));
for (suit = HEARTS; suit <= CLUBS; suit++) {
ptr = freeptr[suit];
grid[ptr++] = NOCARD; /* 1st card space is blank */
if (value == NOCARD)
(void) addstr(" ");
else {
- addch(ranks[value % SUIT_LENGTH][0] | COLOR_PAIR(BLUE_ON_WHITE));
- addch(ranks[value % SUIT_LENGTH][1] | COLOR_PAIR(BLUE_ON_WHITE));
+ addch(ranks[value % SUIT_LENGTH][0] | (chtype) COLOR_PAIR(BLUE_ON_WHITE));
+ addch(ranks[value % SUIT_LENGTH][1] | (chtype) COLOR_PAIR(BLUE_ON_WHITE));
addch(suits[value / SUIT_LENGTH]);
}
(void) addch(' ');
if (selection[i] != NOCARD) {
move(BASEROW + (selection[i] / GRID_WIDTH) * 2 + 3,
(selection[i] % GRID_WIDTH) * 5);
- (void) printw(" %c ", *lp++ = 'a' + i);
+ (void) printw(" %c ", (*lp++ = (char) ('a' + i)));
}
};
*lp = '\0';
clrtoeol();
(void) addch(' ');
} while
- (((c = getch()) < 'a' || c > 'd') && (c != 'r') && (c != 'q'));
+ (((c = (char) getch()) < 'a' || c > 'd')
+ && (c != 'r')
+ && (c != 'q'));
}
for (j = 0; j < 4; j++)
}
move(PROMPTROW, 0);
- standout();
+ (void) standout();
(void) printw("Finished deal %d - type any character to continue...", deal_number);
- standend();
+ (void) standend();
(void) getch();
}
{
clear();
(void) printw("You finished the game in %d deals. This is ", deal);
- standout();
+ (void) standout();
if (deal < 2)
(void) addstr("excellent");
else if (deal < 4)
(void) addstr("average");
else
(void) addstr("poor");
- standend();
+ (void) standend();
(void) addstr(". ");
refresh();
}
int
main(int argc, char *argv[])
{
- (void) signal(SIGINT, die);
+ CATCHALL(die);
setlocale(LC_ALL, "");
letters[1] = OR_COLORS('s', BLACK_ON_WHITE); /* spades */
letters[2] = OR_COLORS('d', RED_ON_WHITE); /* diamonds */
letters[3] = OR_COLORS('c', BLACK_ON_WHITE); /* clubs */
-#if defined(__i386__) && defined(A_ALTCHARSET)
+#if USE_CP437
glyphs[0] = PC_COLORS('\003', RED_ON_WHITE); /* hearts */
glyphs[1] = PC_COLORS('\006', BLACK_ON_WHITE); /* spades */
glyphs[2] = PC_COLORS('\004', RED_ON_WHITE); /* diamonds */
#endif
#endif
-#if defined(__i386__) && defined(A_ALTCHARSET)
+#if USE_CP437
if (tigetstr("smpch"))
suits = glyphs;
-#endif /* __i386__ && A_ALTCHARSET */
+#endif /* USE_CP437 */
cbreak();