Applied following patches from Robert Collins and make sure IN_LIBXML is

* libxml.h: Applied following patches from Robert Collins
  and make sure IN_LIBXML is defined when compiling it
-------
* include/libxml/xmlversion.h.in (LIBXML_DLL_IMPORT): Use on Cygwin
  as well as Visual C.
* parser.c (XML_DIR_SEP): Don't use '\\' for Cygwin.
* parserInternals.c (XML_DIR_SEP): Don't use '\\' for Cygwin.
* strio.c (PLATFORM_UNIX): Define for Cygwin.
* triodef.h (TRIO_PLATFORM_UNIX): Define for Cygwin.
* xmlIO.c (xmlFileOpen): Use unix behaviour for Cygwin.
  Use binary mode opens for Cygwin (xmlFileOpenW xmlParserGetDirectory
  xmlSysIDExists xmlNoNetExists).
* xmllint.c: Don't include winsock2.h for Cygwin.
Daniel
diff --git a/ChangeLog b/ChangeLog
index b99e1e8..cc82c8e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+Tue Jan  8 11:32:30 CET 2002 Daniel Veillard <daniel@veillard.com>
+
+	* libxml.h: Applied following patches from Robert Collins
+	  and make sure IN_LIBXML is defined when compiling it
+	-------
+	* include/libxml/xmlversion.h.in (LIBXML_DLL_IMPORT): Use on Cygwin
+	  as well as Visual C.
+	* parser.c (XML_DIR_SEP): Don't use '\\' for Cygwin.
+	* parserInternals.c (XML_DIR_SEP): Don't use '\\' for Cygwin.
+	* strio.c (PLATFORM_UNIX): Define for Cygwin.
+	* triodef.h (TRIO_PLATFORM_UNIX): Define for Cygwin.
+	* xmlIO.c (xmlFileOpen): Use unix behaviour for Cygwin.
+	  Use binary mode opens for Cygwin (xmlFileOpenW xmlParserGetDirectory
+	  xmlSysIDExists xmlNoNetExists).
+	* xmllint.c: Don't include winsock2.h for Cygwin.
+
 Mon Jan  7 17:52:48 CET 2002 Daniel Veillard <daniel@veillard.com>
 
 	* parser.c: Jirka Kosek pointer out a bug in xmlParseTextDecl()
diff --git a/include/libxml/xmlversion.h.in b/include/libxml/xmlversion.h.in
index 651d693..b5c20ca 100644
--- a/include/libxml/xmlversion.h.in
+++ b/include/libxml/xmlversion.h.in
@@ -198,7 +198,7 @@
  * code which links against libxml statically. 
  */
 #ifndef LIBXML_DLL_IMPORT
-#if defined(_MSC_VER) && !defined(IN_LIBXML) && !defined(LIBXML_STATIC)
+#if (defined(_MSC_VER) || defined(__CYGWIN__)) && !defined(IN_LIBXML) && !defined(LIBXML_STATIC)
 #define LIBXML_DLL_IMPORT __declspec(dllimport)
 #else
 #define LIBXML_DLL_IMPORT
diff --git a/libxml.h b/libxml.h
index 6b7476f..eaec654 100644
--- a/libxml.h
+++ b/libxml.h
@@ -30,5 +30,6 @@
 #define TRIO_REPLACE_STDIO
 #include "trio.h"
 #endif
+#define IN_LIBXML
 
 #endif /* ! __XML_LIBXML_H__ */
diff --git a/parser.c b/parser.c
index 9e78819..8122e19 100644
--- a/parser.c
+++ b/parser.c
@@ -32,7 +32,7 @@
 
 #include "libxml.h"
 
-#ifdef WIN32
+#if defined(WIN32) && !defined (__CYGWIN__)
 #define XML_DIR_SEP '\\'
 #else
 #define XML_DIR_SEP '/'
diff --git a/parserInternals.c b/parserInternals.c
index f7ca646..9a570c9 100644
--- a/parserInternals.c
+++ b/parserInternals.c
@@ -9,7 +9,7 @@
 
 #include "libxml.h"
 
-#ifdef WIN32
+#if defined(WIN32) && !defined (__CYGWIN__)
 #define XML_DIR_SEP '\\'
 #else
 #define XML_DIR_SEP '/'
diff --git a/strio.c b/strio.c
index f1ab5b8..58a9a26 100644
--- a/strio.c
+++ b/strio.c
@@ -22,7 +22,7 @@
  
 static const char rcsid[] = "@(#)$Id$";
 
-#if defined(unix) || defined(__xlC__) || defined(__QNX__)
+#if defined(unix) || defined(__xlC__) || defined(__QNX__) || defined(__CYGWIN__)
 # define PLATFORM_UNIX
 #elif defined(WIN32) || defined(_WIN32)
 # define PLATFORM_WIN32
diff --git a/triodef.h b/triodef.h
index 407ea03..a3ca8b6 100644
--- a/triodef.h
+++ b/triodef.h
@@ -48,6 +48,8 @@
 # define TRIO_PLATFORM_UNIX
 #elif defined(__QNX__)
 # define TRIO_PLATFORM_UNIX
+#elif defined(__CYGWIN__)
+# define TRIO_PLATFORM_UNIX
 #elif defined(AMIGA) && defined(TRIO_COMPILER_GCC)
 # define TRIO_PLATFORM_UNIX
 #elif defined(TRIO_COMPILER_MSVC) || defined(WIN32) || defined(_WIN32)
diff --git a/xmlIO.c b/xmlIO.c
index bfa8096..1bad043 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -294,7 +294,7 @@
     if (!strncmp(filename, "file://localhost", 16))
 	path = &filename[16];
     else if (!strncmp(filename, "file:///", 8)) {
-#ifdef _WIN32
+#if defined (_WIN32) && !defined(__CYGWIN__)
 	path = &filename[8];
 #else
 	path = &filename[7];
@@ -307,7 +307,7 @@
     if (!xmlCheckFilename(path))
         return(NULL);
 
-#ifdef WIN32
+#if defined(WIN32) || defined (__CYGWIN__)
     fd = fopen(path, "rb");
 #else
     fd = fopen(path, "r");
@@ -337,7 +337,7 @@
     if (!strncmp(filename, "file://localhost", 16))
 	path = &filename[16];
     else if (!strncmp(filename, "file:///", 8)) {
-#ifdef _WIN32
+#if defined (_WIN32) && !defined(__CYGWIN__)
 	path = &filename[8];
 #else
 	path = &filename[7];
@@ -454,7 +454,7 @@
     if (!strncmp(filename, "file://localhost", 16))
 	path = &filename[16];
     else if (!strncmp(filename, "file:///", 8)) {
-#ifdef _WIN32
+#if defined (_WIN32) && !defined(__CYGWIN__)
 	path = &filename[8];
 #else
 	path = &filename[7];
@@ -496,7 +496,7 @@
     if (!strncmp(filename, "file://localhost", 16))
 	path = &filename[16];
     else if (!strncmp(filename, "file:///", 8)) {
-#ifdef _WIN32
+#if defined (_WIN32) && !defined(__CYGWIN__)
 	path = &filename[8];
 #else
 	path = &filename[7];
@@ -2387,7 +2387,7 @@
 	xmlRegisterDefaultInputCallbacks();
 
     if (filename == NULL) return(NULL);
-#ifdef WIN32
+#if defined(WIN32) && !defined(__CYGWIN__)
     sep = '\\';
 #endif
 
@@ -2430,7 +2430,7 @@
     if (!strncmp(URL, "file://localhost", 16))
 	path = &URL[16];
     else if (!strncmp(URL, "file:///", 8)) {
-#ifdef _WIN32
+#if defined (_WIN32) && !defined(__CYGWIN__)
 	path = &URL[8];
 #else
 	path = &URL[7];
@@ -2617,7 +2617,7 @@
     if (!xmlStrncmp(BAD_CAST URL, BAD_CAST "file://localhost", 16))
         path = &URL[16];
     else if (!xmlStrncmp(BAD_CAST URL, BAD_CAST "file:///", 8)) {
-#ifdef _WIN32
+#if defined (_WIN32) && !defined(__CYGWIN__)
         path = &URL[8];
 #else
         path = &URL[7];
diff --git a/xmllint.c b/xmllint.c
index 6cdcef3..70ec276 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -11,7 +11,7 @@
 #include <string.h>
 #include <stdarg.h>
 
-#ifdef _WIN32
+#if defined (_WIN32) && !defined(__CYGWIN__)
 #ifdef _MSC_VER
 #include <winsock2.h>
 #pragma comment(lib, "ws2_32.lib")