=================================================================== RCS file: /home/cvs/OpenXM_contrib2/asir2000/parse/stdio.c,v retrieving revision 1.5 retrieving revision 1.7 diff -u -p -r1.5 -r1.7 --- OpenXM_contrib2/asir2000/parse/stdio.c 2001/10/05 10:23:07 1.5 +++ OpenXM_contrib2/asir2000/parse/stdio.c 2005/10/19 04:51:15 1.7 @@ -45,7 +45,7 @@ * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. * - * $OpenXM: OpenXM_contrib2/asir2000/parse/stdio.c,v 1.4 2000/11/13 01:48:13 noro Exp $ + * $OpenXM: OpenXM_contrib2/asir2000/parse/stdio.c,v 1.6 2001/10/09 01:36:25 noro Exp $ */ #include #include @@ -61,6 +61,7 @@ static struct w_buf { } W_BUF; static int noflush; +extern int emergency; #define INBUF_EMPTY (W_BUF.inpos >= W_BUF.inlen) @@ -73,12 +74,19 @@ void w_purge_stdin(void) int w_filbuf(void) { int status = get_line(W_BUF.inbuf); + + /* XXX */ + if ( emergency ) return 0; + W_BUF.inpos = 0; W_BUF.inlen = strlen(W_BUF.inbuf); return status; } int w_flushbuf(void) { + /* XXX */ + if ( emergency ) return 0; + W_BUF.outbuf[W_BUF.outpos] = 0; W_BUF.outpos = 0; put_line(W_BUF.outbuf); @@ -141,6 +149,8 @@ int unget_char(int c) return c; } +int win_put_string(char *s,FILE *file); + int win_put_char(int c,FILE *file) { static char s[2]; @@ -199,8 +209,6 @@ int w_fputc(int c, FILE *file) int w_fputs(char *s, FILE *file) { - int status; - if ( file == stdout || file == stderr ) return win_put_string(s,file); else