summaryrefslogtreecommitdiff
path: root/editors/emacs20/files/patch-ch
blob: 02301bd363c5c1683f87d1ba309a391f5bdf9c6a (plain) (blame)
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
--- src/process.c.original	Fri Sep 23 11:49:02 2005
+++ src/process.c	Fri Sep 23 11:51:45 2005
@@ -400,6 +400,14 @@
 
 #ifdef HAVE_PTYS
 
+char to_tty_char(int i)
+{
+  if (i < 10)
+    return '0' + i;
+  else
+    return 'a' + i - 10;
+}
+
 /* Open an available pty, returning a file descriptor.
    Return -1 on failure.
    The file name of the terminal corresponding to the pty
@@ -423,13 +431,13 @@
   PTY_ITERATION
 #else
   for (c = FIRST_PTY_LETTER; c <= 'z'; c++)
-    for (i = 0; i < 16; i++)
+    for (i = 0; i < 'z' - 'a' + 1 + 10; i++)
 #endif
       {
 #ifdef PTY_NAME_SPRINTF
 	PTY_NAME_SPRINTF
 #else
-	sprintf (pty_name, "/dev/pty%c%x", c, i);
+	sprintf (pty_name, "/dev/pty%c%c", c, to_tty_char(i));
 #endif /* no PTY_NAME_SPRINTF */
 
 #ifdef PTY_OPEN
@@ -446,7 +454,7 @@
 	if (stat (pty_name, &stb) < 0)
 	  {
 	    failed_count++;
-	    if (failed_count >= 3)
+	    if (failed_count >= 30)
 	      return -1;
 	  }
 	else
@@ -466,7 +474,7 @@
 #ifdef PTY_TTY_NAME_SPRINTF
 	    PTY_TTY_NAME_SPRINTF
 #else
-            sprintf (pty_name, "/dev/tty%c%x", c, i);
+            sprintf (pty_name, "/dev/tty%c%c", c, to_tty_char(i));
 #endif /* no PTY_TTY_NAME_SPRINTF */
 #ifndef UNIPLUS
 	    if (access (pty_name, 6) != 0)