]> code.delx.au - gnu-emacs/blobdiff - src/s/darwin.h
Merge from emacs--devo--0
[gnu-emacs] / src / s / darwin.h
index 9f78405a43c85e473fba834e7bbd932e4ae941cb..a2a3d862f806dfe9c4fe83ee786f6967e7670122 100644 (file)
@@ -1,11 +1,12 @@
 /* System description header file for Darwin (Mac OS X).
-   Copyright (C) 2001, 02, 2004  Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2004, 2005,
+                 2006, 2007 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
 GNU Emacs is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
+the Free Software Foundation; either version 3, or (at your option)
 any later version.
 
 GNU Emacs is distributed in the hope that it will be useful,
@@ -15,8 +16,8 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.  */
 
 
 /*
@@ -37,11 +38,20 @@ Boston, MA 02111-1307, USA.  */
 #define BSD_SYSTEM
 /* #define VMS */
 
+#if 0 /* Don't define DARWIN on Mac OS X because CoreFoundation.h uses
+        it to distinguish Mac OS X from bare Darwin.  */
+#ifndef        DARWIN
+#define        DARWIN 1
+#endif
+#endif
+
 /* MAC_OS is used to conditionally compile code common to both MAC_OS8
    and MAC_OSX.  */
 #ifdef MAC_OSX
 #ifdef HAVE_CARBON
 #define MAC_OS
+/* We need a little extra space, see ../../lisp/loadup.el. */
+#define SYSTEM_PURESIZE_EXTRA 30000
 #endif
 #endif
 
@@ -103,10 +113,18 @@ Boston, MA 02111-1307, USA.  */
 
 /*
  *     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 the
+ * default for process-connection-type dependent on the kernel
+ * version.
+ */
+#define MIN_PTY_KERNEL_VERSION '7'
+
 /*
  *     Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
  *      The 4.2 opendir, etc., library functions.
@@ -200,9 +218,6 @@ Boston, MA 02111-1307, USA.  */
    also the name of a Mach system call.  */
 #define init_process emacs_init_process
 
-/* Fix compilation problem for regex.c.  */
-#define __restrict
-
 /* Used in dispnew.c.  Copied from freebsd.h. */
 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_p - (FILE)->_bf._base)
 
@@ -246,15 +261,14 @@ Boston, MA 02111-1307, USA.  */
 
 /* Definitions for how to compile & link.  */
 
-/* Indicate that we are compiling for Mac OS X and where to find Mac
-   specific headers.  */
-#define C_SWITCH_SYSTEM -fpascal-strings -fno-common -DMAC_OSX -I../mac/src
+/* Indicate that we are compiling for Mac OS X.  */
+#define C_SWITCH_SYSTEM -fpascal-strings -DMAC_OSX
 
 /* Link in the Carbon lib. */
 #ifdef HAVE_CARBON
 #define LIBS_CARBON -framework Carbon -framework QuickTime
 #else
-#define LIBS_CARBON -framework Carbon
+#define LIBS_CARBON
 #endif
 
 /* The -headerpad option tells ld (see man page) to leave room at the
@@ -301,18 +315,15 @@ Boston, MA 02111-1307, USA.  */
 #define NO_MATHERR
 
 
-/* This prevents a compilation error in xfaces.c: struct kboard * is
-   used in a function protocol the first time this type appears in the
-   file, since MULTI_KBOARD is undefined for the Mac OS X build.  */
-#ifndef NOT_C_CODE
-struct kboard;
-#endif
-
 /* The following solves the problem that Emacs hangs when evaluating
    (make-comint "test0" "/nodir/nofile" nil "") when /nodir/nofile
    does not exist.  */
 #undef HAVE_WORKING_VFORK
 #define vfork fork
+
+/* Don't close pty in process.c to make it as controlling terminal.
+   It is already a controlling terminal of subprocess, because we did
+   ioctl TIOCSCTTY.  */
 #define DONT_REOPEN_PTY
 
 #ifdef temacs