diff src/lstream.c @ 263:727739f917cb r20-5b30

Import from CVS: tag r20-5b30
author cvs
date Mon, 13 Aug 2007 10:24:41 +0200
parents f955c73f5258
children c5d627a313b1
line wrap: on
line diff
--- a/src/lstream.c	Mon Aug 13 10:23:52 2007 +0200
+++ b/src/lstream.c	Mon Aug 13 10:24:41 2007 +0200
@@ -529,6 +529,15 @@
   return i == 0 ? -1 : 0;
 }
 
+int
+Lstream_was_blocked_p (Lstream *lstr)
+{
+  if (lstr->imp->was_blocked_p)
+    return (lstr->imp->was_blocked_p) (lstr);
+  else
+    return 0;
+}
+
 static int
 Lstream_raw_read (Lstream *lstr, unsigned char *buffer, int size)
 {
@@ -1170,6 +1179,13 @@
     return 0;
 }
 
+static int
+filedesc_was_blocked_p (Lstream *stream)
+{
+  struct filedesc_stream *str = FILEDESC_STREAM_DATA (stream);
+  return str->blocking_error_p;
+}
+
 void
 filedesc_stream_set_pty_flushing (Lstream *stream, int pty_max_bytes,
 				  Bufbyte eof_char)
@@ -1177,13 +1193,14 @@
   struct filedesc_stream *str = FILEDESC_STREAM_DATA (stream);
   str->pty_max_bytes = pty_max_bytes;
   str->eof_char = eof_char;
+  str->pty_flushing = 1;
 }
 
 int
-filedesc_stream_was_blocked (Lstream *stream)
+filedesc_stream_fd (Lstream *stream)
 {
   struct filedesc_stream *str = FILEDESC_STREAM_DATA (stream);
-  return str->blocking_error_p;
+  return str->fd;
 }
 
 /*********** read from a Lisp string ***********/
@@ -1707,6 +1724,7 @@
 
   LSTREAM_HAS_METHOD (filedesc, reader);
   LSTREAM_HAS_METHOD (filedesc, writer);
+  LSTREAM_HAS_METHOD (filedesc, was_blocked_p);
   LSTREAM_HAS_METHOD (filedesc, rewinder);
   LSTREAM_HAS_METHOD (filedesc, seekable_p);
   LSTREAM_HAS_METHOD (filedesc, closer);