]> thyrsus.com Git - deal.git/commitdiff
Port to modern C.
authorEric S. Raymond <esr@thyrsus.com>
Tue, 19 Oct 2010 11:41:08 +0000 (07:41 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Tue, 19 Oct 2010 11:41:08 +0000 (07:41 -0400)
deal.c

diff --git a/deal.c b/deal.c
index db66431bd43b0b7f9245513f87008b1c193649e4..bb73a5180fb5c292095e69e84ec3b402cf02eca6 100644 (file)
--- a/deal.c
+++ b/deal.c
 #include <stdio.h>
 #include <math.h>
 #include <signal.h>
+#include <stdlib.h>
+#include <stdbool.h>
 
 #define BASE_DEFAULT   7       /* # cards in initial deal */
 #define TURNS_DEFAULT  20      /* show this many turns if total is greater */
 
-#define TRUE   1
-#define FALSE  0
-
 static int si, sk, sM, sN;
 static int sa, sb;
-static int verbose = FALSE;
+static bool verbose = false;
 
 static double log_a_choose_b(int a, int b);
 
@@ -74,23 +73,21 @@ static void usage(void)
     exit(0);
 }
 
-main(argc, argv)
-int argc;
-char **argv;
+main(int argc, char **argv)
 {
     extern char        *optarg;        /* set by getopt */
     extern int optind;         /* set by getopt */
-    static double hyper_prob();
+    extern double hyper_prob();
 
     int status, special, total, columns, i, j;
     int base = BASE_DEFAULT;
     int turns = TURNS_DEFAULT;
-    int gammatest = FALSE;
-    int ormore = FALSE;
-    int hypertest = FALSE;
-    int choosetest = FALSE;
-    int headers = TRUE;
-    int wide = FALSE;
+    bool gammatest = false;
+    bool ormore = false;
+    bool hypertest = false;
+    bool choosetest = false;
+    bool headers = true;
+    bool wide = false;
 
     while ((status = getopt(argc, argv, "b:c:ght:vwBGH")) != EOF)
     {
@@ -105,23 +102,23 @@ char **argv;
            break;
 
        case 'G':
-           gammatest = TRUE;
+           gammatest = true;
            break;
 
        case 'H':
-           hypertest = TRUE;
+           hypertest = true;
            break;
 
        case 'g':
-           wide = ormore = TRUE;
+           wide = ormore = true;
            break;
 
        case 'h':
-           headers = FALSE;
+           headers = false;
            break;
 
        case 'B':
-           choosetest = TRUE;
+           choosetest = true;
            break;
 
        case 't':
@@ -129,11 +126,11 @@ char **argv;
            break;
 
        case 'v':
-           verbose = TRUE;
+           verbose = true;
            break;
 
        case 'w':
-           wide = TRUE;
+           wide = true;
            break;
 
        default:
@@ -247,7 +244,7 @@ char **argv;
  * giving the final answer.
  */
 
-static double hyper_prob(i, k, M, N)
+double hyper_prob(i, k, M, N)
     int i, k, M, N;
 {
     double p, exp();