Blame SOURCES/telnet-0.17-errno_test_sys_bsd.patch

ce2f68
diff -up netkit-telnet-0.17/telnet/sys_bsd.c.errnosysbsd netkit-telnet-0.17/telnet/sys_bsd.c
ce2f68
--- netkit-telnet-0.17/telnet/sys_bsd.c.errnosysbsd	2007-09-20 10:57:58.000000000 +0200
ce2f68
+++ netkit-telnet-0.17/telnet/sys_bsd.c	2007-09-20 11:10:08.000000000 +0200
ce2f68
@@ -375,6 +375,7 @@ TerminalNewMode(int f)
ce2f68
     int onoff;
ce2f68
     int old;
ce2f68
     cc_t esc;
ce2f68
+    int err;
ce2f68
 
ce2f68
     globalmode = f&~MODE_FORCE;
ce2f68
     if (prevmode == f)
ce2f68
@@ -407,6 +408,12 @@ TerminalNewMode(int f)
ce2f68
 	    tcsetattr(tin, TCSADRAIN, &tmp_tc);
ce2f68
 #endif	/* USE_TERMIO */
ce2f68
 	    old = ttyflush(SYNCHing|flushout);
ce2f68
+            if (old < 0) {
ce2f68
+	      err = errno;
ce2f68
+              if (! ((err == EINTR) || (err == EAGAIN) || (err == ENOSPC))) {
ce2f68
+                break;
ce2f68
+              }
ce2f68
+            }
ce2f68
 	} while (old < 0 || old > 1);
ce2f68
     }
ce2f68