X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=src%2Fio.c;h=dc4ce744fee5cf1350af13c2c991a2096ba46441;hb=9529ed2b7b679ed190a8edd05997ffbc7e6b10c2;hp=48f2e3876266a13dce90226a111656ba74f280c3;hpb=c8f91a7e3437017d237a3bad0166054b97206d8d;p=super-star-trek.git diff --git a/src/io.c b/src/io.c index 48f2e38..dc4ce74 100644 --- a/src/io.c +++ b/src/io.c @@ -27,6 +27,8 @@ static void outro(void) (void)endwin(); putchar('\n'); } + if (logfp) + fclose(logfp); } void iostart(void) @@ -36,13 +38,13 @@ void iostart(void) textdomain(PACKAGE); gettext(""); + if (atexit(outro)){ + fprintf(stderr,"Unable to register outro(), exiting...\n"); + exit(1); + } if (!(game.options & OPTION_CURSES)) { rows = atoi(getenv("LINES")); } else { - if (atexit(outro)){ - fprintf(stderr,"Unable to register outro(), exiting...\n"); - exit(1); - } (void)initscr(); #ifdef KEY_MIN keypad(stdscr, TRUE); @@ -201,8 +203,13 @@ void cgetline(char *line, int max) strcat(line, "\n"); wrefresh(curwnd); } else { - fgets(line, max, stdin); + if (replayfp && !feof(replayfp)) + fgets(line, max, replayfp); + else + fgets(line, max, stdin); } + if (logfp) + fputs(line, logfp); line[strlen(line)-1] = '\0'; }