XEmacs 21.2.30 "Hygeia".
[chise/xemacs-chise.git.1] / src / s / cygwin32.h
index e45a70f..d108923 100644 (file)
@@ -28,58 +28,40 @@ Boston, MA 02111-1307, USA.  */
  * 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 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;
@@ -102,27 +84,18 @@ extern int utimes(char *file, struct timeval *tvp);
 
 extern int srandom( unsigned seed);
 extern long random();
-#endif
-
-#ifdef HAVE_MS_WINDOWS
-#define HAVE_NTGUI
-#define HAVE_FACES
-#endif
-
-#ifndef ORDINARY_LINK
-#define ORDINARY_LINK
-#endif
-
-#define C_SWITCH_SYSTEM -Wno-sign-compare -fno-caller-saves
-#define LIBS_SYSTEM -lwinmm
 
-#define ICC_BAR_CLASSES 4
+#define SND_ASYNC              1
+#define SND_NODEFAULT          2
+#define SND_MEMORY             4
+#define SND_FILENAME           0x2000L
+#define VK_APPS                        0x5D
 #define SIF_TRACKPOS   0x0010
+#define ICC_BAR_CLASSES 4
 #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
@@ -130,20 +103,75 @@ extern long random();
 #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
 
+#endif
+#endif
+
+#ifndef SPI_GETWHEELSCROLLLINES
+#define SPI_GETWHEELSCROLLLINES 104
+#endif
+#ifndef WHEEL_PAGESCROLL
+#define WHEEL_PAGESCROLL (UINT_MAX)
+#endif
+#ifndef WHEEL_DELTA
+#define WHEEL_DELTA 120
+#endif
+#ifndef WM_MOUSEWHEEL
+#define WM_MOUSEWHEEL 0x20A
+#endif
+#ifndef TCS_BOTTOM
+#define TCS_BOTTOM 0x0002
+#endif
+#ifndef TCS_VERTICAL
+#define TCS_VERTICAL 0x0080
+#endif
+#ifndef PHYSICALWIDTH
+#define PHYSICALWIDTH 110
+#endif
+#ifndef PHYSICALHEIGHT
+#define PHYSICALHEIGHT 111
+#endif
+#ifndef PHYSICALOFFSETX
+#define PHYSICALOFFSETX 112
+#endif
+#ifndef PHYSICALOFFSETY
+#define PHYSICALOFFSETY 113
+#endif
+
+
+#define PBS_SMOOTH              0x01
+
+#ifdef HAVE_MS_WINDOWS
+#define HAVE_NTGUI
+#define HAVE_FACES
+#endif
+
+#ifndef ORDINARY_LINK
+#define ORDINARY_LINK
+#endif
+
+#define C_SWITCH_SYSTEM -Wno-sign-compare -fno-caller-saves
+#define LIBS_SYSTEM -lwinmm
+
+
 #define TEXT_START -1
 #define TEXT_END -1
 #define DATA_END -1
 #define HEAP_IN_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
@@ -159,19 +187,6 @@ extern long random();
 
 #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
@@ -190,10 +205,6 @@ extern long random();
 /* 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
@@ -257,7 +268,7 @@ cygwin32_posix_to_win32_path_list(src, dst)
 
 /* 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. */