emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/emacs-23 r99729: Use openpty for allocating


From: YAMAMOTO Mitsuharu
Subject: [Emacs-diffs] /srv/bzr/emacs/emacs-23 r99729: Use openpty for allocating pty on Darwin. Fix Bug#726 and Bug#5819.
Date: Sat, 10 Apr 2010 19:31:01 +0900
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 99729
committer: YAMAMOTO Mitsuharu <address@hidden>
branch nick: emacs-23
timestamp: Sat 2010-04-10 19:31:01 +0900
message:
  Use openpty for allocating pty on Darwin.  Fix Bug#726 and Bug#5819.
  
  * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
  (PTY_OPEN): New defines.  Use openpty (Bug#726, Bug#5819).
modified:
  src/ChangeLog
  src/s/darwin.h
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2010-04-08 00:43:57 +0000
+++ b/src/ChangeLog     2010-04-10 10:31:01 +0000
@@ -1,3 +1,8 @@
+2010-04-10  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
+       (PTY_OPEN): New defines.  Use openpty (Bug#726, Bug#5819).
+
 2010-04-08  YAMAMOTO Mitsuharu  <address@hidden>
 
        * frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.

=== modified file 'src/s/darwin.h'
--- a/src/s/darwin.h    2010-01-13 08:35:10 +0000
+++ b/src/s/darwin.h    2010-04-10 10:31:01 +0000
@@ -90,6 +90,24 @@
  */
 
 #define HAVE_PTYS
+/* Run only once.  We need a `for'-loop because the code uses
+   `continue'.  */
+#define PTY_ITERATION  for (i = 0; i < 1; i++)
+#define PTY_NAME_SPRINTF       /* none */
+#define PTY_TTY_NAME_SPRINTF   /* none */
+/* Note that openpty may fork via grantpt on Mac OS X 10.4/Darwin 8.
+   But we don't have to block SIGCHLD because it is blocked in the
+   implementation of grantpt.  */
+#define PTY_OPEN                                               \
+  do                                                           \
+    {                                                          \
+      int slave;                                               \
+      if (openpty (&fd, &slave, pty_name, NULL, NULL) == -1)   \
+       fd = -1;                                                \
+      else                                                     \
+       emacs_close (slave);                                    \
+    }                                                          \
+  while (0)
 
 /**
  * PTYs only work correctly on Darwin 7 or higher.  So make the


reply via email to

[Prev in Thread] Current Thread [Next in Thread]