changeset 59689:007a1a6d92de

* s/darwin.h: Removed PTY_ITERATION from here. (DARWIN): Defined. * process.c (init_process): Default process-connection-type to nil on darwin 6 or less, t if it is 7 or higher. This way the broken pty behavior is still allowed on darwin 6 for interactive processes for people that know what they are doing.
author Steven Tamm <steventamm@mac.com>
date Sat, 22 Jan 2005 15:54:04 +0000
parents 3761d1e2619d
children 0017dfb224ef
files src/ChangeLog src/process.c src/s/darwin.h
diffstat 3 files changed, 32 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Jan 22 15:43:56 2005 +0000
+++ b/src/ChangeLog	Sat Jan 22 15:54:04 2005 +0000
@@ -1,3 +1,12 @@
+2005-01-22  Steven Tamm  <steventamm@mac.com>
+
+	* s/darwin.h: Removed PTY_ITERATION from here.
+	(DARWIN): Defined.
+	* process.c (init_process): Default process-connection-type to
+	nil on darwin 6 or less, t if it is 7 or higher.  This way the
+	broken pty behavior is still allowed on darwin 6 for interactive
+	processes for people that know what they are doing.
+
 2005-01-22  Kim F. Storm  <storm@cua.dk>
 
 	* window.c (auto_window_vscroll_p): New boolean.
--- a/src/process.c	Sat Jan 22 15:43:56 2005 +0000
+++ b/src/process.c	Sat Jan 22 15:54:04 2005 +0000
@@ -187,6 +187,7 @@
 #include "syswait.h"
 
 extern void set_waiting_for_input P_ ((EMACS_TIME *));
+extern char *get_operating_system_release ();
 
 #ifndef USE_CRT_DLL
 extern int errno;
@@ -6704,6 +6705,19 @@
    Fprovide (intern ("make-network-process"), subfeatures);
  }
 #endif /* HAVE_SOCKETS */
+
+#ifdef DARWIN
+  /* PTYs are broken on Darwin < 6, but are sometimes useful for interactive 
+     processes.  As such, we only change the default value.  */
+ if (initialized)
+  {
+    char *release = get_operating_system_release();
+    if (!release || !release[0] || (release[0] < MIN_PTY_KERNEL_VERSION
+				    && release[1] == '.')) {
+      Vprocess_connection_type = Qnil;
+    }
+  }
+#endif
 }
 
 void
--- a/src/s/darwin.h	Sat Jan 22 15:43:56 2005 +0000
+++ b/src/s/darwin.h	Sat Jan 22 15:54:04 2005 +0000
@@ -37,6 +37,10 @@
 #define BSD_SYSTEM
 /* #define VMS */
 
+#ifndef	DARWIN
+#define	DARWIN 1
+#endif
+
 /* MAC_OS is used to conditionally compile code common to both MAC_OS8
    and MAC_OSX.  */
 #ifdef MAC_OSX
@@ -103,25 +107,17 @@
 
 /*
  *	Define HAVE_PTYS if the system supports pty devices.
+ *      Note: PTYs are broken on darwin <6.  Use at your own risk.
  */
 
 #define HAVE_PTYS
 
-
-/*
- * PTYs only work correctly on Darwin 7 or higher.  So make PTY_ITERATION
- * Test the operating system release and only allow PTYs if it is greater
- * than 7.
+/**
+ * PTYs only work correctly on Darwin 7 or higher.  So make the
+ * default for process-connection-type dependent on the kernel
+ * version.
  */
 #define MIN_PTY_KERNEL_VERSION '7' 
-#define PTY_ITERATION  \
-  char *release = get_operating_system_release();	\
-  if (!release || !release[0] || (release[0] < MIN_PTY_KERNEL_VERSION \
-				  && release[1] == '.'))	      \
-    return -1; \
-  for (c = FIRST_PTY_LETTER; c <= 'z'; c++)	\
-    for (i = 0; i < 16; i++)
-
 
 /*
  *	Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate