]> git.eshelyaron.com Git - emacs.git/commitdiff
(BROKEN_PTY_READ_AFTER_EAGAIN): Define.
authorGerd Moellmann <gerd@gnu.org>
Tue, 15 Feb 2000 10:27:48 +0000 (10:27 +0000)
committerGerd Moellmann <gerd@gnu.org>
Tue, 15 Feb 2000 10:27:48 +0000 (10:27 +0000)
src/s/freebsd.h

index 0a344f9753bdc96c151e7bf79460b893b3ae0b04..59a1e9072e7890d91f94d15d9752a149f9a42d8b 100644 (file)
    /usr/local/include or libs in /usr/local/lib by default.  */
 
 #define C_SWITCH_SYSTEM -I /usr/X11R6/include -I /usr/local/include -L /usr/local/lib
+
+/* Circumvent a bug in FreeBSD.  In the following sequence of
+   writes/reads on a PTY, read(2) returns bogus data:
+
+   write(2)  1022 bytes
+   write(2)   954 bytes, get EAGAIN
+   read(2)   1024 bytes in process_read_output
+   read(2)     11 bytes in process_read_output
+
+   That is, read(2) returns more bytes than have ever been written
+   successfully.  The 1033 bytes read are the 1022 bytes written
+   successfully after processing (for example with CRs added if the
+   terminal is set up that way which it is here).  The same bytes will
+   be seen again in a later read(2), without the CRs.  */
+
+#define BROKEN_PTY_READ_AFTER_EAGAIN 1