comparison src/s/windowsnt.h @ 2500:3d8143fc88e1

[xemacs-hg @ 2005-01-24 23:33:30 by ben] get working with VC7 config.inc.samp: Declare OPTIONAL_LIBRARY_DIR as root of library directories. Redo all graphics library defaults to mirror the versions and directories in the current binary aux distribution on xemacs web site. Enable TIFF and COMPFACE by default since you can now compile with them and binary libs are provided. xemacs.mak: Put our own directories first in case of conflict (e.g. config.h in compface). xemacs.mak: Use MSVCRT to avoid link problems. s/windowsnt.h: bytecode.c, print.c: Add casts to avoid warning. compiler.h: Add MSC_VERSION and include definitions of DOESNT_RETURN and friends here, like for GCC. Need different definitions for VC7 and VC6. s/windowsnt.h: Remove stuff moved to compiler.h. Disable warning 4646 ("function declared with __declspec(noreturn) has non-void return type") on VC7 since lots of Lisp primitives trigger this and there is no easy way to kludge around the warning. glyphs-eimage.c: Some really nasty hacks to allow TIFF and JPEG to both be compiled. #### The better solution is to move the TIFF and JPEG code to different files. glyphs-msw.c: Define __STDC__ to avoid problems with compface.h. intl-auto-encap-win32.c, intl-auto-encap-win32.h, intl-encap-win32.c, syswindows.h: Those wankers at Microsoft cannot leave well enough alone. Various functions change parameter types semi-randomly between VC6 and VC7, so we need to include our own versions that can handle both kinds with appropriate casting. EmacsFrame.c, EmacsShell-sub.c, EmacsShell.c, alloc.c, alloca.c, buffer.c, bytecode.c, charset.h, chartab.c, cm.c, console-stream.c, console.c, data.c, debug.h, device-msw.c, device-tty.c, device-x.c, doprnt.c, dumper.c, dynarr.c, elhash.c, emacs.c, eval.c, event-Xt.c, event-gtk.c, event-msw.c, event-stream.c, events.c, extents.c, faces.c, file-coding.c, fileio.c, fns.c, font-lock.c, frame-gtk.c, frame-x.c, frame.c, free-hook.c, gccache-gtk.c, glyphs-eimage.c, glyphs-gtk.c, glyphs-msw.c, glyphs-x.c, glyphs.c, gtk-glue.c, gutter.c, input-method-xlib.c, insdel.c, intl-win32.c, keymap.c, lisp.h, lread.c, lstream.c, macros.c, malloc.c, menubar-gtk.c, menubar-msw.c, menubar-x.c, mule-coding.c, native-gtk-toolbar.c, number.c, objects-msw.c, objects.c, print.c, process-nt.c, process-unix.c, process.c, ralloc.c, rangetab.c, redisplay-gtk.c, redisplay-msw.c, redisplay-output.c, redisplay-tty.c, redisplay-x.c, redisplay.c, regex.c, scrollbar-gtk.c, scrollbar-x.c, search.c, select-x.c, signal.c, specifier.c, specifier.h, strftime.c, sunplay.c, symbols.c, sysdep.c, sysproc.h, text.c, text.h, toolbar-common.c, toolbar-msw.c, toolbar.c, ui-gtk.c, unexnt.c, unicode.c, win32.c, window.c, xgccache.c, s/windowsnt.h: abort() -> ABORT(). Eliminate preprocessor games with abort() since it creates huge problems in VC7, solvable only by including massive amounts of files in every compile (and not worth it).
author ben
date Mon, 24 Jan 2005 23:34:34 +0000
parents ecf1ebac70d8
children 5460287a3327
comparison
equal deleted inserted replaced
2499:4c5ee4d2e921 2500:3d8143fc88e1
157 157
158 Prefix with X because plain CDECL is already defined by the VC++ header 158 Prefix with X because plain CDECL is already defined by the VC++ header
159 files. */ 159 files. */
160 #define XCDECL __cdecl 160 #define XCDECL __cdecl
161 161
162 /* MSVC 6.0 has a mechanism to declare functions which never return */
163 #if (_MSC_VER >= 1200)
164 #define DOESNT_RETURN_TYPE(rettype) __declspec(noreturn) rettype
165 #define DECLARE_DOESNT_RETURN_TYPE(rettype,decl) \
166 __declspec(noreturn) rettype XCDECL decl
167 #endif /* MSVC 6.0 */
168
169 /* MSVC warnings no-no crap. When adding one to this section, 162 /* MSVC warnings no-no crap. When adding one to this section,
170 1. Think twice. 163 1. Think twice.
171 2. Insert textual description of the warning. 164 2. Insert textual description of the warning.
172 3. Think again. Undo still works. */ 165 3. Think again. Undo still works. */
173 #if (_MSC_VER >= 800) 166 #if (_MSC_VER >= 800)
177 generates temporary anonymous structures, and MSVC complains) */ 170 generates temporary anonymous structures, and MSVC complains) */
178 #pragma warning ( disable : 4116 ) 171 #pragma warning ( disable : 4116 )
179 172
180 #endif /* compiler understands #pragma warning*/ 173 #endif /* compiler understands #pragma warning*/
181 174
175 #if (_MSC_VER >= 1300)
176 /* function declared with __declspec(noreturn) has non-void return type;
177 Lisp primitives have to be declared with Lisp_Object return type or
178 lots of things get very messed up */
179 #pragma warning ( disable : 4646 )
180 #endif
181
182 /* MSVC version >= 2.x without /Za supports __inline */ 182 /* MSVC version >= 2.x without /Za supports __inline */
183 #if (_MSC_VER < 900) || defined (__STDC__) 183 #if (_MSC_VER < 900) || defined (__STDC__)
184 # define inline 184 # define inline
185 #else 185 #else
186 # define inline __inline 186 # define inline __inline
187 #endif 187 #endif
188
189 /* lisp.h defines abort() as a macro. therefore, we must include all
190 files that contain prototypes for abort() before then. */
191 #include <../include/process.h>