* horribly. What does get defined is HAVE_MS_WINDOWS, but this is
* done by configure and only applies to the window system.
*
- * The important thing about building is that it is done on a binary
- * mounted filesystem. i.e. something mounted like: mount -b c:
- * /binary. If you do not do this then compilation of el files may
- * produce garbage. As of b24 there are fixes in xemacs to make
- * building on text mounts but I don't generally do this. Make sure
- * you have installed cygwin32 b18 + patched dll (which can be found
- * at http://www.lexa.ru/sos or on my home page
- * http://www.parallax.co.uk/~andyp. Alternatively when b19 comes out
- * the patched dll will be unnecessary. Also make sure your HOME path
- * is unix style - i.e. without a drive letter.
+ * When building make sure your HOME path is unix style - i.e. without
+ * a drive letter.
*
- * Note that some people have reported problems with the patched
- * cygwin.dll on Sergey's home page so you may want to use the one on
- * mine which I *know* works.
- *
- * once you have done this, configure and make. If you want unexec
- * support you need to download a.out.h from my web page or use cygwin
- * b19. You probably want to build with mule support since this
- * addresses crlf issues in a sensible way.
+ * once you have done this, configure and make.
*
* windows '95 - I haven't tested this under '95, it will probably
* build but I konw there are some limitations with cygwin under 95 so
* YMMV. I build with NT4 SP3.
*
- * What I want to do:
- *
- * the fileio stuff merely uses the unix system calls this means that
- * the mount type of your fs will determine how files are edited. This
- * is fine except in the instance that you want to convert one to the
- * other. In this instance I would like to bring the buffer_file_type
- * code into the picture without all the other windows-nt
- * cruft. Apparently the best way to do this is use the mule coding
- * stuff.
- *
- * process support needs fixing although basic support works (a la
- * make-docfile)
- *
- * Andy Piper <andyp@parallax.co.uk> 8/1/98
- * http://www.parallax.co.uk/~andyp */
+ * Andy Piper <andy@xemacs.org> 8/1/98
+ * http://www.xemacs.freeserve.co.uk/ */
/* cheesy way to determine cygwin version */
#ifndef NOT_C_CODE
-#include <signal.h>
-#ifdef SIGIO
-#define CYGWIN_B19
-#else
-#define BROKEN_CYGWIN
-#endif
+# include <signal.h>
+# ifdef HAVE_CYGWIN_VERSION_H
+# include <cygwin/version.h>
+# else
+# ifdef SIGIO
+# define CYGWIN_VERSION_DLL_MAJOR 19
+# define CYGWIN_VERSION_DLL_MINOR 0
+# define CYGWIN_B19
+# else
+# define CYGWIN_VERSION_DLL_MAJOR 18
+# define CYGWIN_VERSION_DLL_MINOR 0
+# define BROKEN_CYGWIN
+# endif
+# endif
+
extern void cygwin32_win32_to_posix_path_list(const char*, char*);
extern int cygwin32_win32_to_posix_path_list_buf_size(const char*);
extern void cygwin32_posix_to_win32_path_list(const char*, char*);
extern int cygwin32_posix_to_win32_path_list_buf_size(const char*);
+# if CYGWIN_VERSION_DLL_MAJOR < 20
struct timeval;
struct timezone;
struct itimerval;
extern int srandom( unsigned seed);
extern long random();
+
+# endif
#endif
#ifdef HAVE_MS_WINDOWS
#define C_SWITCH_SYSTEM -Wno-sign-compare -fno-caller-saves
#define LIBS_SYSTEM -lwinmm
-
-#define ICC_BAR_CLASSES 4
-#define SIF_TRACKPOS 0x0010
-#define FW_BLACK FW_HEAVY
-#define FW_ULTRABOLD FW_EXTRABOLD
-#define FW_DEMIBOLD FW_SEMIBOLD
-#define FW_ULTRALIGHT FW_EXTRALIGHT
-#define VK_APPS 0x5D
-#define APPCMD_FILTERINITS 0x20L
-#define CBF_FAIL_SELFCONNECTIONS 0x1000
-#define CBF_SKIP_ALLNOTIFICATIONS 0x3C0000
-#define CBF_FAIL_ADVISES 0x4000
-#define CBF_FAIL_POKES 0x10000
-#define CBF_FAIL_REQUESTS 0x20000
-#define SZDDESYS_TOPIC "System"
-#define SND_ASYNC 1
-#define SND_NODEFAULT 2
-#define SND_MEMORY 4
-#define SND_FILENAME 0x2000L
-#define JOHAB_CHARSET 130
-#define MAC_CHARSET 77
+#define WIN32_LEAN_AND_MEAN
#define TEXT_START -1
#define TEXT_END -1
#define DATA_END -1
#define HEAP_IN_DATA
+#define NO_LIM_DATA
#define UNEXEC "unexcw.o"
-/* #define BROKEN_SIGIO */
+
+#ifdef CYGWIN_VERSION_DLL_MAJOR
+#if 0
+/* #### FIXME: although defining BROKEN_SIGIO is correct for proper ^G
+ behavior, bugs in cygwin mean that xemacs locks up frequently if
+ this is defined. */
+#define BROKEN_SIGIO
+#endif
+#else
#define PROCESS_IO_BLOCKING
+#endif
#define strnicmp strncasecmp
#ifndef HAVE_SOCKETS
#define HAVE_SOCKETS
#define NO_ARG_ARRAY
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts. */
-
-#define WORD_MACHINE
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the 24-bit bit field into an int. In other words, if bit fields
- are always unsigned.
-
- If you use NO_UNION_TYPE, this flag does not matter. */
-
-#define EXPLICIT_SIGN_EXTEND
-
/* Data type of load average, as read out of kmem. */
#define LOAD_AVE_TYPE long
/* Text does precede data space, but this is never a safe assumption. */
#define VIRT_ADDR_VARIES
-/* set this if you have a new version of cygwin
-#define DATA_SEG_BITS 0x10000000
-*/
-
/* If you are compiling with a non-C calling convention but need to
declare vararg routines differently, put it here */
#define _VARARGS_ __cdecl
/* Pseudo-terminal support under SVR4 only loops to deal with errors. */
-#define PTY_ITERATION for (i = 0; i < 1; i++)
+#define PTY_ITERATION for (i = 0, c = 0; i < 1; i++)
/* This sets the name of the master side of the PTY. */