Added oldstyle option.
authorEric S. Raymond <esr@thyrsus.com>
Tue, 23 May 2017 15:28:56 +0000 (11:28 -0400)
committerEric S. Raymond <esr@thyrsus.com>
Tue, 23 May 2017 15:28:56 +0000 (11:28 -0400)
NEWS
advent.txt
init.c
main.c
main.h
misc.c

diff --git a/NEWS b/NEWS
index 5688644d6c4fffca84fbb6ea898b4b172e8269eb..f1503bafe3e08390f1b1dcbd7a0e2da7be7795c7 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2,3 +2,6 @@
 
 Repository head::
   Forward port of Crowther & Woods's 430-point Adventure 2.5.
+  Added -l option for logging.
+  Added command prompt; -o suppresses this.
+
index 9b955aac2bf5850d9877520231e1da1553966ba4..e4db51c3ec970c91ce1251ae42beb5b8df273d3b 100644 (file)
@@ -28,6 +28,8 @@ on which it originally ran limited filenames to 6 characters.
 
 -l:: Log commands to specified file.
 
+-o:: Old-style.  Restores original interface, no prompt.
+
 == ENVIRONMENT VARIABLES ==
 ADVENTURE::
    Path to the text database file describing Colossal Cave.
diff --git a/init.c b/init.c
index b821a88b6f44d3574bb678c59a0355e58c916263..a74dd86b67acae6c208c78fa77942ec745e6028c 100644 (file)
--- a/init.c
+++ b/init.c
@@ -173,7 +173,8 @@ static int finish_init(void);
 static void quick_io(void);
 
 void initialise(void) {
-       printf("Initialising...\n");
+       if (oldstyle)
+               printf("Initialising...\n");
        if(!quick_init()){raw_init(); report(); quick_save();}
        finish_init();
 }
diff --git a/main.c b/main.c
index c95025a0c205f9c39190d244f5e3a048a5b05c84..6841ceee77e880b09c3704e0e2895952011aef42 100644 (file)
--- a/main.c
+++ b/main.c
@@ -41,6 +41,7 @@ long ABBNUM, ACTSPK[36], AMBER, ATTACK, AXE, BACK, BATTER, BEAR, BIRD, BLOOD, BO
                VOLCAN, VRBSIZ = 35, VRSION = 25, WATER, WD1, WD1X, WD2, WD2X,
                WZDARK = false, ZZWORD;
 FILE  *logfp;
+bool oldstyle = false;
 
 extern void initialise();
 extern void score(long);
@@ -63,7 +64,7 @@ int main(int argc, char *argv[]) {
 
 /*  Options. */
 
-       while ((ch = getopt(argc, argv, "l:")) != EOF) {
+       while ((ch = getopt(argc, argv, "l:o")) != EOF) {
                switch (ch) {
                case 'l':
                        logfp = fopen(optarg, "w+");
@@ -72,6 +73,9 @@ int main(int argc, char *argv[]) {
                                        "advent: can't open logfile %s for write\n",
                                        optarg);
                        break;
+               case 'o':
+                   oldstyle = true;
+                   break;
                }
        }
 
diff --git a/main.h b/main.h
index 7a1d1c8ac94637a5b19d109ad0525214b604eb53..fa87d627ec8847e720f844ca471bcd41cea47872 100644 (file)
--- a/main.h
+++ b/main.h
@@ -1,3 +1,5 @@
+#include <stdbool.h>
+
 #define LINESIZE       100
 
 extern long ABB[], ATAB[], ATLOC[], BLKLIN, DFLAG, DLOC[], FIXED[], HOLDNG,
@@ -5,3 +7,4 @@ extern long ABB[], ATAB[], ATLOC[], BLKLIN, DFLAG, DLOC[], FIXED[], HOLDNG,
                PARMS[], PLACE[], PTEXT[], RTEXT[], TABSIZ;
 extern signed char INLINE[LINESIZE+1], MAP1[], MAP2[];
 extern FILE *logfp;
+extern bool oldstyle;
diff --git a/misc.c b/misc.c
index b86c5c5f928b45225694fb3503967c3d21f72ea0..b1f3f8367ad66f427dc1884bdcbb531a89f9b0b7 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -1,3 +1,4 @@
+#include <unistd.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include "main.h"
@@ -884,6 +885,8 @@ long I, VAL;
 
        if(MAP2[1] == 0)MPINIT();
 
+       if (!oldstyle && isatty(0))
+           fputs("> ", stdout);
        IGNORE(fgets(INLINE+1,sizeof(INLINE)-1,OPENED));
        if (feof(OPENED)) {
                if (logfp)