billiob pushed a commit to branch master.

http://git.enlightenment.org/apps/terminology.git/commit/?id=273a85af0050bb0f604c88dcf0942a60eb848db2

commit 273a85af0050bb0f604c88dcf0942a60eb848db2
Author: Boris Faure <bill...@gmail.com>
Date:   Tue Dec 6 21:49:15 2016 +0100

    termpty: handle BSD special case when the other side of the tty pair has 
quit
---
 src/bin/termpty.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/bin/termpty.c b/src/bin/termpty.c
index dcdfdfc..0d5f77d 100644
--- a/src/bin/termpty.c
+++ b/src/bin/termpty.c
@@ -172,6 +172,13 @@ _cb_fd_read(void *data, Ecore_Fd_Handler *fd_handler)
    if (ty->fd == -1)
      return ECORE_CALLBACK_CANCEL;
 
+/* it seems the BSDs can not read from this side of the pair if the other side
+ * is closed */
+#if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__OpenBSD__) || 
defined(__NetBSD__)
+   if (ty->pid == -1)
+       return ECORE_CALLBACK_CANCEL;
+#endif
+
    // read up to 64 * 4096 bytes
    for (reads = 0; reads < 64; reads++)
      {

-- 


Reply via email to