on a few architectures). Reported by darix.
- include one trailing space in rectangular selections to indicate
the inserted newline (yeah, weird, but visually more pleasing).
+ - try to use sched_yield to improve terminal data transfer efficiency.
- further minor cleanups.
6.1 Tue Dec 27 13:23:40 CET 2005
#include <csignal>
+#define HAVE_SCHED_YIELD 1 //D//TODO//FIXME
+#if HAVE_SCHED_YIELD
+# include <sched.h>
+#endif
+
/*----------------------------------------------------------------------*/
#define IS_CONTROL(ch) !((ch) & 0xffffff60UL)
cmdbuf_ptr = cmdbuf_base;
cmdbuf_endp = cmdbuf_ptr + n;
- n = read (pty.pty, cmdbuf_endp, CBUFSIZ - n);
+ ssize_t r = read (pty.pty, cmdbuf_endp, CBUFSIZ - n);
- if (n > 0)
+ if (r > 0)
{
- cmdbuf_endp += n;
+ cmdbuf_endp += r;
return true;
}
- else if ((n < 0 && errno != EAGAIN && errno != EINTR) || n == 0)
+ else if (r < 0 && (errno == EAGAIN || errno == EINTR))
+ {
+#if HAVE_SCHED_YIELD
+ sched_yield ();
+#endif
+ }
+ else
{
pty_ev.stop ();
// do not change these constants lightly, there are many interdependencies
#define IMBUFSIZ 128 // input modifier buffer sizes
#define KBUFSZ 512 // size of keyboard mapping buffer
-#define CBUFSIZ 4096 // size of command buffer
-#define UBUFSIZ 4096 // character buffer
+#define CBUFSIZ 2048 // size of command buffer
+#define UBUFSIZ 2048 // character buffer
#ifndef PATH_MAX
# define PATH_MAX 16384