projects
/
open-adventure.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Revert structurization changes, they broke database compilation...
[open-adventure.git]
/
misc.c
diff --git
a/misc.c
b/misc.c
index 8f0a2b21680dc11522f1057e02d5d5da501cf442..6987d254788a4f961269de5d4060724bfc2aaab0 100644
(file)
--- a/
misc.c
+++ b/
misc.c
@@
-1,6
+1,8
@@
+#include <unistd.h>
#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"
@@
-171,10
+173,10
@@
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;
long JUNK;
-/* Get a command from the adventurer.
s
narf out the first word, pad it with
+/* Get a command from the adventurer.
S
narf out the first word, pad it with
* blanks, and return it in WORD1. Chars 6 thru 10 are returned in WORD1X, in
* case we need to print out the whole word in an error message. Any number of
* blanks may follow the word. If a second word appears, it is returned in
* blanks, and return it in WORD1. Chars 6 thru 10 are returned in WORD1X, in
* case we need to print out the whole word in an error message. Any number of
* blanks may follow the word. If a second word appears, it is returned in
@@
-182,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);
@@
-204,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;
@@
-214,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);
@@
-884,8
+886,17
@@
long I, VAL;
if(MAP2[1] == 0)MPINIT();
if(MAP2[1] == 0)MPINIT();
+ if (!oldstyle && isatty(0) && !SETUP)
+ fputs("> ", stdout);
IGNORE(fgets(INLINE+1,sizeof(INLINE)-1,OPENED));
IGNORE(fgets(INLINE+1,sizeof(INLINE)-1,OPENED));
- if (!feof(OPENED)) {
+ if (feof(OPENED)) {
+ if (logfp)
+ fclose(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;