summaryrefslogtreecommitdiff
path: root/x11/aterm/patches/patch-ae
blob: cde82b68946d81e7a5392b66090c5a1d0900a6e5 (plain)
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;