diff mac/inc/s-mac.h @ 88155:d7ddb3e565de

sync with trunk
author Henrik Enberg <henrik.enberg@telia.com>
date Mon, 16 Jan 2006 00:03:54 +0000
parents 01b93e5e53a7
children
line wrap: on
line diff
--- a/mac/inc/s-mac.h	Sun Jan 15 23:02:10 2006 +0000
+++ b/mac/inc/s-mac.h	Mon Jan 16 00:03:54 2006 +0000
@@ -1,5 +1,6 @@
-/* Handcrafted s-mac.h file for building GNU Emacs on the Macintosh.
-   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+/* Handcrafted s-mac.h file for building GNU Emacs on Mac OS 9.
+   Copyright (C) 1999, 2000, 2002, 2003, 2004,
+      2005 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -15,8 +16,8 @@
 
 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.  */
 
 /* Contributed by Andrew Choi (akochoi@mac.com).  */
 
@@ -53,8 +54,8 @@
 
    Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
 
-   Emacs uses the presence or absence of the SIGIO macro to indicate
-   whether or not signal-driven I/O is possible.  It uses
+   Emacs uses the presence or absence of the SIGIO and BROKEN_SIGIO macros
+   to indicate whether or not signal-driven I/O is possible.  It uses
    INTERRUPT_INPUT to decide whether to use it by default.
 
    SIGIO can be used only on systems that implement it (4.2 and 4.3).
@@ -146,6 +147,9 @@
    is not ':', #define this to be the appropriate character constant.  */
 /* #define SEPCHAR ':' */
 
+/* Define this if the system can use mmap for buffer text allocation.  */
+/* #define USE_MMAP_FOR_BUFFERS 1 */
+
 /* ============================================================ */
 
 /* Here, add any special hacks needed
@@ -162,6 +166,14 @@
 
 /* #define static */
 
+/* If the system's imake configuration file defines `NeedWidePrototypes'
+   as `NO', we must define NARROWPROTO manually.  Such a define is
+   generated in the Makefile generated by `xmkmf'.  If we don't
+   define NARROWPROTO, we will see the wrong function prototypes
+   for X functions taking float or double parameters.  */
+
+/*  #define NARROWPROTO 1 */
+
 /* ============================================================ */
 
 /* After adding support for a new system, modify the large case
@@ -174,7 +186,12 @@
    of known problems in that configuration should be updated.  */
 
 #ifdef __MRC__
-#define __signal_max SIGTERM /* largest one in signal.h */
+/* MrC predefines signal numbers as powers of 2.  */
+#define sigmask(no) (((no) & (no) - 1) ? 1L << ((no) - 1) : (no))
+#define __signal_max 8	      /* There's enough room for the following
+				 signals between 8 and 16, and the
+				 maximum predefined one (32) is less
+				 than 8th power of 2.  */
 #endif
 
 #define SIGHUP (__signal_max+1)
@@ -183,7 +200,12 @@
 #define SIGKILL (__signal_max+4)
 #define SIGALRM (__signal_max+5)
 #define SIGPIPE (__signal_max+6)
+
+#ifdef __MRC__
+#define NSIG SIGTERM  /* largest one in signal.h */
+#else
 #define NSIG (__signal_max+6)
+#endif
 
 #ifdef __MRC__
 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)
@@ -228,19 +250,11 @@
 #define READ_BUF_SIZE (8 << 10)
 
 #include <utsname.h>
-void read_input_waiting ();
-
-/* #define GETTIMEOFDAY_ONE_ARGUMENT */
 
 #define SYSV_SYSTEM_DIR
 
 #define SYSTEM_MALLOC
 
-/* Constants such as O_RDONLY are defined in fcntl.h.  Best solution is
-   really to patch individual files to include it: callproc.c, doc.c,
-   fileio.c, getloadavg.c, lread.c, and termcap.c.  */
-#include <fcntl.h>
-
 #define _setjmp setjmp
 #define _longjmp longjmp
 
@@ -255,6 +269,10 @@
 #include <unistd.h>
 #endif
 
+#ifndef X_OK
+#define X_OK 01
+#endif
+
 #undef unlink
 #define unlink sys_unlink
 #undef read
@@ -278,43 +296,22 @@
 #define ctime sys_ctime
 #define time sys_time
 
-#ifndef bcmp
-#define bcmp(s1, s2, n)	memcmp ((s1), (s2), (n))
-#endif
-#ifndef bcopy
-#define bcopy(s, d, n)	memcpy ((d), (s), (n))
+#define index strchr
+#define rindex strrchr
+
+#define PTR POINTER_TYPE *	/* For strftime.c.  */
+
+#define SYMS_SYSTEM syms_of_mac()
+
+#ifdef USE_LSB_TAG
+#ifdef __MRC__
+#define DECL_ALIGN(type, var) type var
 #endif
-#ifndef bzero
-#define bzero(s, n)	memset ((s), 0, (n))
-#endif
-
-extern char *index (const char *, int);
-
-/* MPW strftime broken for "%p" format */
-#ifdef __MRC__
-#define strftime sys_strftime
 #endif
 
-#include <time.h>
-/* Editfns.c includes types.h which indirectly includes time.h before config.h.
-   So gmtime (localtime) is defined and not sys_gmtime (sys_localtime).  Define
-   here explicitly.  */
-extern struct tm *sys_gmtime (const time_t *);
-extern struct tm *sys_localtime (const time_t *);
-extern char *sys_ctime (const time_t *);
-extern time_t sys_time (time_t *);
+/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the
+   stack.  */
+#define GC_MARK_STACK   GC_MAKE_GCPROS_NOOPS
 
-/* Emacs.c includes signal.h before config.h.  Define this to make it happy.  */
-#ifdef __MRC__
-#include <signal.h>
-extern __sigfun sys_signal (int signal_num, __sigfun signal_func);
-#elif __MWERKS__
-#include <signal.h>
-extern __signal_func_ptr sys_signal (int signal_num, __signal_func_ptr signal_func);
-#endif
-
-extern double atof (const char *);
-
-#define volatile
-
-#define SYMS_SYSTEM syms_of_mac()
+/* arch-tag: 6a941c4b-a419-4d25-80ac-9335053e58b2
+   (do not change this comment) */