projects
/
open-adventure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix the slightly broken prompt test.
[open-adventure.git]
/
misc.c
diff --git
a/misc.c
b/misc.c
index b1f3f8367ad66f427dc1884bdcbb531a89f9b0b7..a08720cbeb20b08cd7414d20eb743343bb3f1d83 100644
(file)
--- a/
misc.c
+++ b/
misc.c
@@
-2,6
+2,7
@@
#include <stdlib.h>
#include <stdio.h>
#include "main.h"
#include <stdlib.h>
#include <stdio.h>
#include "main.h"
+#include "share.h" /* for SETUP */
#include "misc.h"
#include "funcs.h"
#include "misc.h"
#include "funcs.h"
@@
-172,7
+173,7
@@
void fSETPRM(long FIRST, long P1, long P2) {
#define WORD1X (*wORD1X)
#define WORD2 (*wORD2)
#define WORD2X (*wORD2X)
#define WORD1X (*wORD1X)
#define WORD2 (*wORD2)
#define WORD2X (*wORD2X)
-void fGETIN(long *wORD1, long *wORD1X, long *wORD2, long *wORD2X) {
+void fGETIN(
FILE *input,
long *wORD1, long *wORD1X, long *wORD2, long *wORD2X) {
long JUNK;
/* Get a command from the adventurer. Snarf out the first word, pad it with
long JUNK;
/* Get a command from the adventurer. Snarf out the first word, pad it with
@@
-183,8
+184,8
@@
long JUNK;
L10: if(BLKLIN)TYPE0();
L10: if(BLKLIN)TYPE0();
- MAPLIN(
stdin
);
- if(feof(stdin)) score(1);
+ MAPLIN(
input
);
+ if(
input == stdin &&
feof(stdin)) score(1);
WORD1=GETTXT(true,true,true,0);
if(BLKLIN && WORD1 < 0) goto L10;
WORD1X=GETTXT(false,true,true,0);
WORD1=GETTXT(true,true,true,0);
if(BLKLIN && WORD1 < 0) goto L10;
WORD1X=GETTXT(false,true,true,0);
@@
-205,9
+206,9
@@
L22: JUNK=GETTXT(false,true,true,0);
#undef WORD1X
#undef WORD2
#undef WORD2X
#undef WORD1X
#undef WORD2
#undef WORD2X
-#define GETIN(
WORD1,WORD1X,WORD2,WORD2X) fGETIN(
&WORD1,&WORD1X,&WORD2,&WORD2X)
+#define GETIN(
SRC,WORD1,WORD1X,WORD2,WORD2X) fGETIN(SRC,
&WORD1,&WORD1X,&WORD2,&WORD2X)
#undef YES
#undef YES
-long fYES(long X, long Y, long Z) {
+long fYES(
FILE *input,
long X, long Y, long Z) {
long YES, REPLY, JUNK1, JUNK2, JUNK3;
long YES, REPLY, JUNK1, JUNK2, JUNK3;
@@
-215,7
+216,7
@@
long YES, REPLY, JUNK1, JUNK2, JUNK3;
* if no, print Z and return false. */
L1: RSPEAK(X);
* if no, print Z and return false. */
L1: RSPEAK(X);
- GETIN(REPLY,JUNK1,JUNK2,JUNK3);
+ GETIN(
input,
REPLY,JUNK1,JUNK2,JUNK3);
if(REPLY == MAKEWD(250519) || REPLY == MAKEWD(25)) goto L10;
if(REPLY == MAKEWD(1415) || REPLY == MAKEWD(14)) goto L20;
RSPEAK(185);
if(REPLY == MAKEWD(250519) || REPLY == MAKEWD(25)) goto L10;
if(REPLY == MAKEWD(1415) || REPLY == MAKEWD(14)) goto L20;
RSPEAK(185);
@@
-885,7
+886,7
@@
long I, VAL;
if(MAP2[1] == 0)MPINIT();
if(MAP2[1] == 0)MPINIT();
- if (!oldstyle &&
isatty(0)
)
+ if (!oldstyle &&
SETUP
)
fputs("> ", stdout);
IGNORE(fgets(INLINE+1,sizeof(INLINE)-1,OPENED));
if (feof(OPENED)) {
fputs("> ", stdout);
IGNORE(fgets(INLINE+1,sizeof(INLINE)-1,OPENED));
if (feof(OPENED)) {
@@
-894,6
+895,8
@@
long I, VAL;
} else {
if (logfp)
IGNORE(fputs(INLINE+1, logfp));
} else {
if (logfp)
IGNORE(fputs(INLINE+1, logfp));
+ else if (!isatty(0))
+ IGNORE(fputs(INLINE+1, stdout));
LNLENG=0;
for (I=1; I<=sizeof(INLINE) && INLINE[I]!=0; I++) {
VAL=INLINE[I]+1;
LNLENG=0;
for (I=1; I<=sizeof(INLINE) && INLINE[I]!=0; I++) {
VAL=INLINE[I]+1;