Implement fallback handler that looks at the raw command buffer.
[open-adventure.git] / misc.c
diff --git a/misc.c b/misc.c
index 4d0a89d482a59ba9d93d1ef5ca8fc44864f2a232..8ea3db40c6cde454344abef1f86fa9b338f1530c 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -1,6 +1,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdio.h>
+#include <string.h>
 #include "main.h"
 #include "share.h"     /* for SETUP */
 #include "misc.h"
@@ -887,7 +888,7 @@ long I, VAL;
        if (!oldstyle && SETUP && OPENED == stdin)
                fputs("> ", stdout);
        do {
-               IGNORE(fgets(INLINE+1,sizeof(INLINE)-1,OPENED));
+               IGNORE(fgets(rawbuf,sizeof(INLINE)-1,OPENED));
        } while
                (!feof(OPENED) && INLINE[1] == '#');
        if (feof(OPENED)) {
@@ -895,9 +896,10 @@ long I, VAL;
                        fclose(logfp);
        } else {
                if (logfp && OPENED == stdin)
-                       IGNORE(fputs(INLINE+1, logfp));
+                       IGNORE(fputs(rawbuf, logfp));
                else if (!isatty(0))
-                       IGNORE(fputs(INLINE+1, stdout));
+                       IGNORE(fputs(rawbuf, stdout));
+               strcpy(INLINE+1, rawbuf);
                LNLENG=0;
                for (I=1; I<=sizeof(INLINE) && INLINE[I]!=0; I++) {
                VAL=INLINE[I]+1;