annotate src/s/windowsnt.h @ 1257:4424541fa226

[xemacs-hg @ 2003-02-05 06:20:50 by ben] windows compile problems s/windowsnt.h: Windows has strupr(), strlwr(). Comment fixes. text.h: Style fixes.
author ben
date Wed, 05 Feb 2003 06:20:54 +0000
parents 184461bc8de4
children 543769b89fed
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
1 /* System description file for Windows 9x and NT.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
800
a5954632b187 [xemacs-hg @ 2002-03-31 08:27:14 by ben]
ben
parents: 771
diff changeset
3 Copyright (C) 2001, 2002 Ben Wing.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4
613
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 535
diff changeset
5 This file is part of XEmacs.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6
613
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 535
diff changeset
7 XEmacs is free software; you can redistribute it and/or modify
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8 it under the terms of the GNU General Public License as published by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 the Free Software Foundation; either version 2, or (at your option)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10 any later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11
613
023b83f4e54b [xemacs-hg @ 2001-06-10 10:42:16 by ben]
ben
parents: 535
diff changeset
12 XEmacs is distributed in the hope that it will be useful,
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15 GNU General Public License for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 along with XEmacs; see the file COPYING. If not, write to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20 Boston, MA 02111-1307, USA. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 /* Synched up with: FSF 19.31. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
24 /* Capsule summary of different preprocessor flags:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
25
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
26 1. Keep in mind that there are two possible OS environments we are dealing
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
27 with -- Cygwin and Native Windows. MS Windows natively provides
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
28 file-system, process, and window-system services through the Win32 API,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
29 implemented by various DLL's. (The most important and KERNEL32, USER32,
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
30 and GDI32. KERNEL32 implements the basic file-system and process
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
31 services. USER32 implements the fundamental window-system services
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
32 such as creating windows and handling messages. GDI32 implements
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
33 higher-level drawing capabilities -- fonts, colors, lines, etc.) The C
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
34 library is implemented on top of Win32 using either MSVCRT (dynamically
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
35 linked) or LIBC.LIB (statically linked). Cygwin provides a POSIX
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
36 emulation layer on top of MS Windows -- in particular, providing the
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
37 file-system, process, tty, and signal semantics that are part of a
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
38 modern, standard Unix operating system. Cygwin does this using its own
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
39 DLL, cygwin1.dll, which makes calls to the Win32 API services in
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
40 kernel32.dll. Cygwin also provides its own implementation of the C
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
41 library, called `newlib' (libcygwin.a; libc.a and libm.a are symlinked
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
42 to it), which is implemented on top of the Unix system calls provided
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
43 in cygwin1.dll. In addition, Cygwin provides static import libraries
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
44 that give you direct access to the Win32 API -- XEmacs uses this to
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
45 provide GUI support under Cygwin. The two environments also use
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
46 different compilers -- Native Windows uses Visual C++, and Cygwin uses
1111
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 1104
diff changeset
47 GCC. (MinGW, however, is a way of using GCC to target the Native
184461bc8de4 [xemacs-hg @ 2002-11-18 06:52:23 by ben]
ben
parents: 1104
diff changeset
48 Windows environment. See comment in mingw32.h.)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
49
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
50 2. There are two windowing environments we can target XEmacs for when
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
51 running under MS Windows -- Windows native, and X. (It may seem strange
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
52 to write an X application under Windows, but there are in fact many X
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
53 servers out there running on Windows, and as far as I know there is no
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
54 real (or at least, that works well) networking Window-system extension
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
55 under MS Windows. Furthermore, if you're porting a Unix application to
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
56 Windows and use Cygwin to assist you, it might seem natural to use an
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
57 X server to avoid having to port all the code to Windows.) For XEmacs,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
58 there are various reasons people could come up with for why we would
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
59 want to keep maintaining X Windows under MS Windows support.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
60
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
61 That gives us four possible build environments. I (Ben) build
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
62 regularly on fully-native-everything, Andy builds on Cygwin + MS
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
63 Windows + X Windows for windowing.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
64
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
65 The build flags used for these divisions are:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
66
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
67 CYGWIN -- for Cygwin-only stuff.
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
68 WIN32_NATIVE -- Win32 native OS-level stuff (files, process, etc.). Applies
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
69 whenever linking against the native C libraries -- i.e.
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
70 all compilations with VC++ and with MINGW, but never Cygwin.
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
71 HAVE_X_WINDOWS -- for X Windows (regardless of whether under MS Win)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
72 HAVE_MS_WINDOWS -- MS Windows native windowing system (anything related to
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
73 the appearance of the graphical screen). May or may not
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
74 apply to any of VC++, MINGW, Cygwin.
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
76 Finally, there's also the MINGW build environment, which uses GCC
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
77 \(similar to Cygwin), but native MS Windows libraries rather than a
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
78 POSIX emulation layer (the Cygwin approach). This environment defines
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
79 WIN32_NATIVE, but also defines MINGW, which is used mostly because
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
80 uses its own include files (related to Cygwin), which have a few
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
81 things messed up.
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
82
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
83
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
84 Formerly, we had a whole host of flags. Here's the conversion, for porting
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
85 code from GNU Emacs and such:
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
86
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
87
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
88 WINDOWSNT -> WIN32_NATIVE
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
89 WIN32 -> WIN32_NATIVE
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
90 _WIN32 -> WIN32_NATIVE
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
91 HAVE_WIN32 -> WIN32_NATIVE
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
92 DOS_NT -> WIN32_NATIVE
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
93 HAVE_NTGUI -> WIN32_NATIVE, unless it ends up already bracketed by this
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
94 HAVE_FACES -> always true
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
95 MSDOS -> determine whether this code is really specific to MS-DOS (and not
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
96 Windows -- e.g. DJGPP code); if so, delete the code; otherwise,
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
97 convert to WIN32_NATIVE (we do not support MS-DOS w/DOS Extender
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
98 under XEmacs)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
99
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
100 __CYGWIN__ -> CYGWIN
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
101 __CYGWIN32__ -> CYGWIN
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
102 __MINGW32__ -> MINGW
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
103
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
104 */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
105
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
106 #include "win32-native.h"
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
107
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
108 /* In case non-Microsoft compiler is used, we fake _MSC_VER */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
109 #ifndef _MSC_VER
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
110 #define _MSC_VER 1
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
111 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
112
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
113 /* Stuff from old nt/config.h: */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
114
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
115 #define NTHEAP_PROBE_BASE 1
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
116
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
117 #ifdef HAVE_X_WINDOWS
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
118
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
119 #define HAVE_XREGISTERIMINSTANTIATECALLBACK
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
120
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
121 #define THIS_IS_X11R6
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
122 #define HAVE_XMU
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
123 #define HAVE_XLOCALE_H
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
124 #define HAVE_X11_LOCALE_H
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
125 #define GETTIMEOFDAY_ONE_ARGUMENT
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
126
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
127 #define LWLIB_USES_ATHENA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
128 #define LWLIB_MENUBARS_LUCID
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
129 #define LWLIB_SCROLLBARS_LUCID
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
130 #define LWLIB_DIALOGS_ATHENA
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
131 #define LWLIB_TABS_LUCID
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
132 #define LWLIB_WIDGETS_ATHENA
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
133
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
134 /* These are what gets defined under Cygwin */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
135 #define _BSD_SOURCE 1
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
136 #define _SVID_SOURCE 1
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
137 #define X_LOCALE 1
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
138 #define NARROWPROTO 1
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
139
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
140 #endif /* HAVE_X_WINDOWS */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
141
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
142 #define HAVE_LOCALE_H
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
143 #define STDC_HEADERS
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
144
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
145 #define HAVE_LONG_FILE_NAMES
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
146
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
147 #define HAVE_TIMEVAL
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
148 #define HAVE_TZNAME
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
149 #define HAVE_H_ERRNO
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
150
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
151 #define HAVE_CLOSEDIR
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
152 #define HAVE_DUP2
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
153 #define HAVE_EXECVPE
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
154 #define HAVE_FMOD
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
155 #define HAVE_FREXP
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
156 #define HAVE_FTIME
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
157 #define HAVE_GETCWD
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
158 #define HAVE_GETHOSTNAME
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
159 #define HAVE_GETPAGESIZE
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
160 #define getpagesize() 4096
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
161 #define HAVE_GETTIMEOFDAY
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
162 #define HAVE_LINK
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
163 #define HAVE_LOGB
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
164 #define HAVE_MKDIR
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
165 #define HAVE_MKTIME
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
166 #define HAVE_RENAME
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
167 #define HAVE_RMDIR
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
168 #define HAVE_SELECT
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
169 #define HAVE_STRERROR
1257
4424541fa226 [xemacs-hg @ 2003-02-05 06:20:50 by ben]
ben
parents: 1111
diff changeset
170 #define HAVE_STRLWR
4424541fa226 [xemacs-hg @ 2003-02-05 06:20:50 by ben]
ben
parents: 1111
diff changeset
171 #define HAVE_STRUPR
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
172
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
173 #define HAVE_SOCKETS
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
174
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
175 #ifdef DEBUG_XEMACS
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
176 #define USE_ASSERTIONS
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
177 #define MEMORY_USAGE_STATS
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
178 #endif /* DEBUG_XEMACS */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
179
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
180 #define HAVE_DRAGNDROP
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
181
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
182 #define SIZEOF_SHORT 2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
183 #define SIZEOF_INT 4
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
184 #define SIZEOF_LONG 4
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
185 #define SIZEOF_LONG_LONG 0
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
186 #define SIZEOF_VOID_P 4
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
187
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
188 typedef int mode_t;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
189 typedef int pid_t;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
190 typedef int uid_t;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
191 typedef int gid_t;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
192 typedef int pid_t;
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
193 typedef int ssize_t;
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
194
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
195 /* If your system uses COFF (Common Object File Format) then define the
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
196 preprocessor symbol "COFF". */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
197
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
198 #define COFF
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
199
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
200 /* define MAIL_USE_FLOCK if the mailer uses flock
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
201 to interlock access to /usr/spool/mail/$USER.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
202 The alternative is that a lock file named
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
203 /usr/spool/mail/$USER.lock. */
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
204
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
205 #define MAIL_USE_POP
438
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
206 #define HAVE_LOCKING
84b14dcb0985 Import from CVS: tag r21-2-27
cvs
parents: 434
diff changeset
207 #define MAIL_USE_LOCKING
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
208
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
209 /* See unexnt.c */
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 800
diff changeset
210 #if (_MSC_VER >= 1100) && !defined(PDUMP)
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
211 #define DUMP_SEPARATE_SECTION
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
212 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
213 #ifdef DUMP_SEPARATE_SECTION
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
214 #pragma data_seg("xdata")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
215 #pragma bss_seg("xdata")
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
216 #endif
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
217
827
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 800
diff changeset
218 #ifdef emacs
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 800
diff changeset
219 /* intl-auto-encap-win32.[ch] assumes _WIN32_WINNT>=0x0400
28426972f654 [xemacs-hg @ 2002-05-06 14:14:33 by jhar]
jhar
parents: 800
diff changeset
220 We don't want this set when building command-line helpers in lib-src */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
221 # ifndef _WIN32_WINNT
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
222 # define _WIN32_WINNT 0x0400
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
223 # endif
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
224 #endif
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
225
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
226 /* The VC++ (5.0, at least) headers treat WINVER non-existent as 0x0400 */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
227 #if defined (WINVER) && WINVER < 0x0400
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
228 # undef WINVER
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
229 # define WINVER 0x0400
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
230 #endif
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
231
872
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
232 /* Vararg routines, main(), and callback routines for library functions
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
233 (qsort(), signal(), etc.) need to be __cdecl if we use the fastcall
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
234 convention by default (a good idea, since it speeds things up). #### Why
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
235 do they have to complain about this? Why not just do the right thing
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
236 automatically?
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
237
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
238 Prefix with X because plain CDECL is already defined by the VC++ header
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
239 files. */
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
240 #define XCDECL __cdecl
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
241
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
242 /* MSVC 6.0 has a mechanism to declare functions which never return */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
243 #if (_MSC_VER >= 1200)
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
244 #define DOESNT_RETURN __declspec(noreturn) void
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
245 #define DECLARE_DOESNT_RETURN(decl) __declspec(noreturn) extern void decl
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
246 #define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \
872
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
247 __declspec(noreturn) extern void __cdecl decl PRINTF_ARGS(str,idx)
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
248 #else
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
249 #define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \
79c6ff3eef26 [xemacs-hg @ 2002-06-20 21:18:01 by ben]
ben
parents: 827
diff changeset
250 extern void __cdecl decl PRINTF_ARGS(str,idx)
442
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
251 #endif /* MSVC 6.0 */
abe6d1db359e Import from CVS: tag r21-2-36
cvs
parents: 440
diff changeset
252
1257
4424541fa226 [xemacs-hg @ 2003-02-05 06:20:50 by ben]
ben
parents: 1111
diff changeset
253 /* MSVC warnings no-no crap. When adding one to this section,
4424541fa226 [xemacs-hg @ 2003-02-05 06:20:50 by ben]
ben
parents: 1111
diff changeset
254 1. Think twice.
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
255 2. Insert textual description of the warning.
1257
4424541fa226 [xemacs-hg @ 2003-02-05 06:20:50 by ben]
ben
parents: 1111
diff changeset
256 3. Think again. Undo still works. */
771
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
257 #if (_MSC_VER >= 800)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
258
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
259 /* unnamed type definition in parentheses
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
260 (Martin added a pedantically correct definition of ALIGNOF, which
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
261 generates temporary anonymous structures, and MSVC complains) */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
262 #pragma warning ( disable : 4116 )
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
263
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
264 #endif /* compiler understands #pragma warning*/
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
265
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
266 /* MSVC version >= 2.x without /Za supports __inline */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
267 #if (_MSC_VER < 900) || defined (__STDC__)
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
268 # define inline
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
269 #else
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
270 # define inline __inline
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
271 #endif
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
272
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
273 /* lisp.h defines abort() as a macro. therefore, we must include all
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
274 files that contain prototypes for abort() before then. */
943eaba38521 [xemacs-hg @ 2002-03-13 08:51:24 by ben]
ben
parents: 613
diff changeset
275 #include <../include/process.h>