1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
$NetBSD: patch-ae,v 1.4 2005/02/14 15:40:49 rillig Exp $
--- src/command.c.orig Thu Sep 6 18:38:07 2001
+++ src/command.c Mon Feb 14 16:26:50 2005
@@ -534,7 +534,11 @@
ttydev = tty_name;
# define PTYCHAR1 "pqrstuvwxyz"
+#ifdef __NetBSD__
+# define PTYCHAR2 "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
+#else
# define PTYCHAR2 "0123456789abcdef"
+#endif
for (c1 = PTYCHAR1; *c1; c1++) {
ptydev[len - 2] = ttydev[len - 2] = *c1;
for (c2 = PTYCHAR2; *c2; c2++) {
@@ -1146,6 +1150,11 @@ init_command(char *argv[])
num_fds = getdtablesize();
#endif
+#if defined(__NetBSD__)
+ if (num_fds > FD_SETSIZE)
+ num_fds = FD_SETSIZE;
+#endif
+
#ifdef META8_OPTION
meta_char = (Options & Opt_meta8 ? 0x80 : 033);
if (rs_modifier
@@ -1763,16 +1772,21 @@
}
break;
+ case XK_F1: /* "\033OP" */
+ case XK_F2: /* "\033OQ" */
+ case XK_F3: /* "\033OR" */
+ case XK_F4: /* "\033OS" */
+ len = 3;
+ STRCPY(kbuf, "\033OP");
+ kbuf[2] += (keysym - XK_F1);
+ break;
+
#define FKEY(n, fkey) \
len = 5; \
sprintf((char *) kbuf,"\033[%02d~", (int)((n) + (keysym - fkey)))
- case XK_F1: /* "\033[11~" */
- case XK_F2: /* "\033[12~" */
- case XK_F3: /* "\033[13~" */
- case XK_F4: /* "\033[14~" */
case XK_F5: /* "\033[15~" */
- FKEY(11, XK_F1);
+ FKEY(15, XK_F5);
break;
case XK_F6: /* "\033[17~" */
@@ -2024,7 +2038,7 @@
#endif
/* See if we can read from the application */
- if (FD_ISSET(cmd_fd, &readfds)) {
+ if (retval > 0 && FD_ISSET(cmd_fd, &readfds)) {
unsigned int count = BUFSIZ;
cmdbuf_ptr = cmdbuf_endp = cmdbuf_base;
|