Add -l option to enable command logging.
[open-adventure.git] / main.c
diff --git a/main.c b/main.c
index 1cbf9e99255efc9a46c0a9306a0b50aa6a557698..378c1886e1ac4947c8b4e771f2f0aa47b37b8822 100644 (file)
--- a/main.c
+++ b/main.c
@@ -6,6 +6,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <stdbool.h>
+#include <getopt.h>
 #include "main.h"
 
 #include "misc.h"
@@ -39,6 +40,7 @@ long ABBNUM, ACTSPK[36], AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD, BO
                 TRVSIZ = 885, TTEXT[6], TURNS, URN, V1, V2, VASE, VEND, VERB,
                VOLCAN, VRBSIZ = 35, VRSION = 25, WATER, WD1, WD1X, WD2, WD2X,
                WZDARK = false, ZZWORD;
+FILE  *logfp;
 
 extern void initialise();
 extern void score(long);
@@ -49,6 +51,7 @@ extern int action(long);
  */
 
 int main(int argc, char *argv[]) {
+       int ch;
 
 /*  Adventure (rev 2: 20 treasures) */
 
@@ -58,6 +61,20 @@ int main(int argc, char *argv[]) {
  *             Errata fixed: 78/12/25 */
 
 
+/*  Options. */
+
+       while ((ch = getopt(argc, argv, "l:")) != EOF) {
+               switch (ch) {
+               case 'l':
+                       logfp = fopen(optarg, "w+");
+                       if (logfp == NULL)
+                               fprintf(stderr,
+                                       "advent: can't open logfile %s for write\n",
+                                       optarg);
+                       break;
+               }
+       }
+
 /* Logical variables:
  *
  *  CLOSED says whether we're all the way closed
@@ -90,8 +107,6 @@ int main(int argc, char *argv[]) {
        RSPEAK(201);
        exit(0);
 
-
-
 /*  Start-up, dwarf stuff */
 
 L1:    SETUP= -1;