More work toward 2.2.5, integrated a number of patches
- configure.in Makefile.am win32config.h.in: trying to cleanup
  make distcheck .... huh ...
- include/Makefile.am include/win32config.h: new directory
  for includes
- win32/Makefile.mingw win32/README.MSDev win32/libxml2/libxml2.dsp
  updated teh makefiles and instructions for WIN32
- xpath.c: small fixes
- test/XPath/ results/XPath: updated the testcases and results
- HTMLparser.c nanohttp.c testXPath.c: incorporated provided or
  suggested patches
- valid.c: fixed an ID bug
Daniel
diff --git a/ChangeLog b/ChangeLog
index b0b1fbe..bac9e39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+Wed Oct 11 02:53:10 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
+
+	* More work toward 2.2.5, integrated a number of patches
+	* configure.in Makefile.am win32config.h.in: trying to cleanup
+	  make distcheck .... huh ...
+	* include/Makefile.am include/win32config.h: new directory
+	  for includes
+	* win32/Makefile.mingw win32/README.MSDev win32/libxml2/libxml2.dsp
+	  updated teh makefiles and instructions for WIN32
+	* xpath.c: small fixes
+	* test/XPath/ results/XPath: updated the testcases and results
+	* HTMLparser.c nanohttp.c testXPath.c: incorporated provided or
+	  suggested patches
+	* valid.c: fixed an ID bug
+
 Mon Oct  9 14:28:56 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
 
 	* moved xml-error.h to xmlerror.h: seems this allowed to bypass
diff --git a/HTMLparser.c b/HTMLparser.c
index 9de8bdc..40a15a4 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -14,7 +14,6 @@
 
 #include <libxml/xmlversion.h>
 #ifdef LIBXML_HTML_ENABLED
-
 #include <stdio.h>
 #include <string.h>
 #ifdef HAVE_CTYPE_H
@@ -1786,7 +1785,7 @@
 
     while ((i < HTML_PARSER_BUFFER_SIZE) &&
            ((IS_LETTER(CUR)) || (IS_DIGIT(CUR)) ||
-	   (CUR == ':') || (CUR == '_'))) {
+	   (CUR == ':') || (CUR == '-') || (CUR == '_'))) {
 	if ((CUR >= 'A') && (CUR <= 'Z')) loc[i] = CUR + 0x20;
         else loc[i] = CUR;
 	i++;
diff --git a/Makefile.am b/Makefile.am
index 5c98db0..e0ae860 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,8 +1,8 @@
 ## Process this file with automake to produce Makefile.in
 
-SUBDIRS = doc
+SUBDIRS = include doc
 
-INCLUDES = -I@srcdir@/include @Z_CFLAGS@ @CORBA_CFLAGS@ 
+INCLUDES = -I@srcdir@/include -I./include @Z_CFLAGS@ @CORBA_CFLAGS@ 
 
 noinst_PROGRAMS=testSAX testHTML testXPath testURI
 
@@ -35,29 +35,6 @@
 		nanohttp.c \
 		nanoftp.c
 
-xmlincdir = $(includedir)/libxml
-
-xmlinc_HEADERS = \
-		include/libxml/SAX.h \
-		include/libxml/entities.h \
-		include/libxml/encoding.h \
-		include/libxml/parser.h \
-		include/libxml/parserInternals.h \
-		include/libxml/xmlerror.h \
-		include/libxml/HTMLparser.h \
-		include/libxml/HTMLtree.h \
-		include/libxml/debugXML.h \
-		include/libxml/tree.h \
-		include/libxml/xpath.h \
-		include/libxml/xmlIO.h \
-		include/libxml/xmlmemory.h \
-		include/libxml/nanohttp.h \
-		include/libxml/nanoftp.h \
-		include/libxml/uri.h \
-		include/libxml/valid.h \
-		include/libxml/xlink.h \
-		include/libxml/xmlversion.h
-
 DEPS = $(top_builddir)/libxml.la
 LDADDS = $(top_builddir)/libxml.la @Z_LIBS@ @M_LIBS@
 
@@ -357,8 +334,8 @@
 confexec_DATA = xmlConf.sh
 EXTRA_DIST = xmlConf.sh.in libxml.spec.in libxml.spec libxml.m4 \
              example/Makefile.am example/gjobread.c example/gjobs.xml \
-	     $(man_MANS) libxml-2.0.pc.in include/libxml/*.h.in \
-	     win32/README.MSDev win32/libxml2/libxml2.dsp
+	     $(man_MANS) libxml-2.0.pc.in include/libxml/*.h xmlversion.h.in \
+	     win32/README.MSDev win32/Makefile.mingw win32/libxml2/libxml2.dsp
 
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = libxml-2.0.pc
diff --git a/configure.in b/configure.in
index 22e98d9..df7bc37 100644
--- a/configure.in
+++ b/configure.in
@@ -116,7 +116,7 @@
   [M_LIBS="-lm"; AC_DEFINE(HAVE_ISINF)]))
 
 XML_LIBDIR='-L${libdir}'
-XML_INCLUDEDIR='-I${srcdir}/include -I${includedir}/libxml -I${includedir}'
+XML_INCLUDEDIR='-I${includedir}/libxml -I${includedir}'
 XML_LIBS="-lxml $Z_LIBS $M_LIBS $LIBS"
 
 dnl
@@ -299,18 +299,26 @@
 dnl
 if test ! -d $srcdir/include/libxml
 then
-    rm -f $srcdir/include
+    rm -rf $srcdir/include
     rm -f $srcdir/libxml
-    (cd $srcdir ; ln -s . include)
-    (cd $srcdir ; ln -s . libxml)
+    mkdir $srcdir/include
+    (cd $srcdir/include ; ln -s .. libxml)
+fi
+if test ! -e $srcdir/libxml
+then
+    (cd $srcdir ; ln -s include/libxml libxml)
 fi
 if test ! -e include/libxml
 then
-    rm -f include
-    rm -f libxml
-    (ln -s $srcdir/include include)
-    (ln -s $srcdir/include/libxml libxml)
+    rm -rf include
+    mkdir include
+    (cd include ; ln -s ../libxml libxml)
+fi
+if test ! -e libxml
+then
+    rm -rf libxml
+    ln -s $srcdir/include/libxml libxml
 fi
 
-AC_OUTPUT(libxml.spec Makefile doc/Makefile example/Makefile include/libxml/xmlversion.h xml-config include/libxml/win32config.h libxml-2.0.pc)
+AC_OUTPUT(libxml.spec Makefile include/Makefile doc/Makefile example/Makefile libxml/xmlversion.h xml-config libxml-2.0.pc)
 
diff --git a/include/Makefile.am b/include/Makefile.am
new file mode 100644
index 0000000..eea4e9c
--- /dev/null
+++ b/include/Makefile.am
@@ -0,0 +1,28 @@
+## Process this file with automake to produce Makefile.in
+
+xmlincdir = $(includedir)
+
+xmlinc_HEADERS = \
+		libxml/xmlversion.h.in \
+		libxml/SAX.h \
+		libxml/entities.h \
+		libxml/encoding.h \
+		libxml/parser.h \
+		libxml/parserInternals.h \
+		libxml/xmlerror.h \
+		libxml/HTMLparser.h \
+		libxml/HTMLtree.h \
+		libxml/debugXML.h \
+		libxml/tree.h \
+		libxml/xpath.h \
+		libxml/xmlIO.h \
+		libxml/xmlmemory.h \
+		libxml/nanohttp.h \
+		libxml/nanoftp.h \
+		libxml/uri.h \
+		libxml/valid.h \
+		libxml/xlink.h
+
+install-exec-hook:
+	$(mkinstalldirs) $(xmlincdir) $(xmlincdir)/libxml
+
diff --git a/win32config.h.in b/include/win32config.h
similarity index 95%
rename from win32config.h.in
rename to include/win32config.h
index 0bb3a4f..f09c840 100644
--- a/win32config.h.in
+++ b/include/win32config.h
@@ -4,10 +4,6 @@
 #define HAVE_TIME_H
 #define HAVE_FCNTL_H
 
-#define LIBXML_VERSION @LIBXML_VERSION_NUMBER@
-#define LIBXML_VERSION_STRING "@LIBXML_VERSION@"
-
-
 #include <io.h>
 
 #ifdef INCLUDE_WINSOCK
diff --git a/nanohttp.c b/nanohttp.c
index 88db9fc..df717cb 100644
--- a/nanohttp.c
+++ b/nanohttp.c
@@ -105,6 +105,27 @@
 static int proxyPort;	/* the proxy port if any */
 
 /**
+ * A bit of portability macros and functions
+ */
+#ifdef _WINSOCKAPI_
+
+WSADATA wsaData;
+
+#else
+
+#define closesocket(s) close(s)
+
+#endif
+
+int socket_errno(void) {
+#ifdef _WINSOCKAPI_
+    return(WSAGetLastError());
+#else
+    return(errno);
+#endif
+}
+
+/**
  * xmlNanoHTTPInit:
  *
  * Initialize the HTTP protocol layer.
@@ -118,6 +139,11 @@
     if (initialized)
 	return;
 
+#ifdef _WINSOCKAPI_
+    if (WSAStartup(0x0101, &wsaData) != 0)
+	WSACleanup();
+#endif
+
     if (proxy == NULL) {
 	proxyPort = 80;
 	env = getenv("no_proxy");
@@ -149,6 +175,9 @@
     if (proxy != NULL)
 	xmlFree(proxy);
     initialized = 0;
+#ifdef _WINSOCKAPI_
+    WSACleanup();
+#endif
     return;
 }
 
@@ -344,7 +373,7 @@
     if (ctxt->contentType != NULL) xmlFree(ctxt->contentType);
     if (ctxt->location != NULL) xmlFree(ctxt->location);
     ctxt->state = XML_NANO_HTTP_NONE;
-    if (ctxt->fd >= 0) close(ctxt->fd);
+    if (ctxt->fd >= 0) closesocket(ctxt->fd);
     ctxt->fd = -1;
     xmlFree(ctxt);
 }
@@ -359,7 +388,7 @@
 static void
 xmlNanoHTTPSend(xmlNanoHTTPCtxtPtr ctxt) {
     if (ctxt->state & XML_NANO_HTTP_WRITE)
-	ctxt->last = write(ctxt->fd, ctxt->outptr, strlen(ctxt->outptr));
+	ctxt->last = send(ctxt->fd, ctxt->outptr, strlen(ctxt->outptr), 0);
 }
 
 /**
@@ -412,7 +441,7 @@
             ctxt->content = ctxt->in + d_content;
             ctxt->inrptr = ctxt->in + d_inrptr;
 	}
-	ctxt->last = read(ctxt->fd, ctxt->inptr, XML_NANO_HTTP_CHUNK);
+	ctxt->last = recv(ctxt->fd, ctxt->inptr, XML_NANO_HTTP_CHUNK, 0);
 	if (ctxt->last > 0) {
 	    ctxt->inptr += ctxt->last;
 	    return(ctxt->last);
@@ -420,17 +449,25 @@
 	if (ctxt->last == 0) {
 	    return(0);
 	}
-#ifdef EWOULDBLOCK
-	if ((ctxt->last == -1) && (errno != EWOULDBLOCK)) {
-	    return(0);
-	}
+	if (ctxt->last == -1) {
+	    switch (socket_errno()) {
+		case EINPROGRESS:
+		case EWOULDBLOCK:
+#if defined(EAGAIN) && EAGAIN != EWOULDBLOCK
+		case EAGAIN:
 #endif
-	tv.tv_sec=10;
-	tv.tv_usec=0;
+		    break;
+		default:
+		    return(0);
+	    }
+	}
+
+	tv.tv_sec = 10;
+	tv.tv_usec = 0;
 	FD_ZERO(&rfd);
 	FD_SET(ctxt->fd, &rfd);
 	
-	if(select(ctxt->fd+1, &rfd, NULL, NULL, &tv)<1)
+	if (select(ctxt->fd+1, &rfd, NULL, NULL, &tv)<1)
 		return(0);
     }
     return(0);
@@ -450,10 +487,10 @@
 static char *
 xmlNanoHTTPReadLine(xmlNanoHTTPCtxtPtr ctxt) {
     char buf[4096];
-    char *bp=buf;
+    char *bp = buf;
     
-    while(bp - buf < 4095) {
-	if(ctxt->inrptr == ctxt->inptr) {
+    while (bp - buf < 4095) {
+	if (ctxt->inrptr == ctxt->inptr) {
 	    if (xmlNanoHTTPRecv(ctxt) == 0) {
 		if (bp == buf)
 		    return(NULL);
@@ -463,11 +500,11 @@
 	    }
 	}
 	*bp = *ctxt->inrptr++;
-	if(*bp == '\n') {
+	if (*bp == '\n') {
 	    *bp = 0;
 	    return(xmlMemStrdup(buf));
 	}
-	if(*bp != '\r')
+	if (*bp != '\r')
 	    bp++;
     }
     buf[4095] = 0;
@@ -567,7 +604,7 @@
     struct timeval tv;
     int status;
     
-    if(s==-1) {
+    if (s==-1) {
 #ifdef DEBUG_HTTP
 	perror("socket");
 #endif
@@ -576,9 +613,6 @@
     
 #ifdef _WINSOCKAPI_
     {
-	long levents = FD_READ | FD_WRITE | FD_ACCEPT |
-		       FD_CONNECT | FD_CLOSE ;
-	int rv = 0 ;
 	u_long one = 1;
 
 	status = ioctlsocket(s, FIONBIO, &one) == SOCKET_ERROR ? -1 : 0;
@@ -590,7 +624,7 @@
 	status = IOCTL(s, FIONBIO, &enable);
     }
 #else /* VMS */
-    if((status = fcntl(s, F_GETFL, 0)) != -1) {
+    if ((status = fcntl(s, F_GETFL, 0)) != -1) {
 #ifdef O_NONBLOCK
 	status |= O_NONBLOCK;
 #else /* O_NONBLOCK */
@@ -600,11 +634,11 @@
 #endif /* !O_NONBLOCK */
 	status = fcntl(s, F_SETFL, status);
     }
-    if(status < 0) {
+    if (status < 0) {
 #ifdef DEBUG_HTTP
 	perror("nonblocking");
 #endif
-	close(s);
+	closesocket(s);
 	return(-1);
     }
 #endif /* !VMS */
@@ -615,10 +649,10 @@
     sin.sin_addr   = ia;
     sin.sin_port   = htons(port);
     
-    if((connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1) &&
-       (errno != EINPROGRESS)) {
+    if ((connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1) &&
+       (socket_errno() != EINPROGRESS) && (socket_errno() != EWOULDBLOCK)) {
 	perror("connect");
-	close(s);
+	closesocket(s);
 	return(-1);
     }	
     
@@ -632,14 +666,14 @@
     {
 	case 0:
 	    /* Time out */
-	    close(s);
+	    closesocket(s);
 	    return(-1);
 	case -1:
 	    /* Ermm.. ?? */
 #ifdef DEBUG_HTTP
 	    perror("select");
 #endif
-	    close(s);
+	    closesocket(s);
 	    return(-1);
     }
 
@@ -655,7 +689,7 @@
 	    return (-1);
 	}
 	if ( status ) {
-	    close (s);
+	    closesocket(s);
 	    errno = status;
 	    return (-1);
 	}
@@ -686,7 +720,7 @@
     int s;
     
     h=gethostbyname(host);
-    if(h==NULL)
+    if (h==NULL)
     {
 #ifdef DEBUG_HTTP
 	fprintf(stderr,"unable to resolve '%s'.\n", host);
@@ -699,7 +733,7 @@
 	struct in_addr ia;
 	memcpy(&ia, h->h_addr_list[i],4);
 	s = xmlNanoHTTPConnectAttempt(ia, port);
-	if(s != -1)
+	if (s != -1)
 	    return(s);
     }
 
@@ -839,7 +873,7 @@
 	}
 	xmlNanoHTTPFreeCtxt(ctxt);
 #ifdef DEBUG_HTTP
-	printf("Too many redirrects, aborting ...\n");
+	printf("Too many redirects, aborting ...\n");
 #endif
 	return(NULL);
 
diff --git a/result/XPath/tests/chaptersbase b/result/XPath/tests/chaptersbase
index 4b5b9cc..b004efe 100644
--- a/result/XPath/tests/chaptersbase
+++ b/result/XPath/tests/chaptersbase
@@ -3,79 +3,79 @@
 Expression: /child::EXAMPLE
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT EXAMPLE
-      ATTRIBUTE prop1
-        TEXT
-          content=gnome is great
-      ATTRIBUTE prop2
-        TEXT
-          content=& linux too
+1  ELEMENT EXAMPLE
+    ATTRIBUTE prop1
+      TEXT
+        content=gnome is great
+    ATTRIBUTE prop2
+      TEXT
+        content=& linux too
 
 ========================
 Expression: /child::*
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT EXAMPLE
-      ATTRIBUTE prop1
-        TEXT
-          content=gnome is great
-      ATTRIBUTE prop2
-        TEXT
-          content=& linux too
+1  ELEMENT EXAMPLE
+    ATTRIBUTE prop1
+      TEXT
+        content=gnome is great
+    ATTRIBUTE prop2
+      TEXT
+        content=& linux too
 
 ========================
 Expression: /child::EXAMPLE/child::head
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT head
+1  ELEMENT head
 
 ========================
 Expression: /child::EXAMPLE/child::*
 Object is a Node Set :
 Set contains 6 nodes:
-1    ELEMENT head
-2    ELEMENT chapter
-3    ELEMENT chapter
-4    ELEMENT chapter
-5    ELEMENT chapter
-6    ELEMENT chapter
+1  ELEMENT head
+2  ELEMENT chapter
+3  ELEMENT chapter
+4  ELEMENT chapter
+5  ELEMENT chapter
+6  ELEMENT chapter
 
 ========================
 Expression: /child::EXAMPLE/child::head/child::title
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT title
+1  ELEMENT title
 
 ========================
 Expression: /child::EXAMPLE/child::head/child::title/child::text()
 Object is a Node Set :
 Set contains 1 nodes:
-1    TEXT
-      content=Welcome to Gnome
+1  TEXT
+    content=Welcome to Gnome
 
 ========================
 Expression: /child::EXAMPLE/child::head/node()
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT title
+1  ELEMENT title
 
 ========================
 Expression: /descendant::title
 Object is a Node Set :
 Set contains 6 nodes:
-1    ELEMENT title
-2    ELEMENT title
-3    ELEMENT title
-4    ELEMENT title
-5    ELEMENT title
-6    ELEMENT title
+1  ELEMENT title
+2  ELEMENT title
+3  ELEMENT title
+4  ELEMENT title
+5  ELEMENT title
+6  ELEMENT title
 
 ========================
 Expression: /descendant::p/ancestor::chapter
 Object is a Node Set :
 Set contains 5 nodes:
-1    ELEMENT chapter
-2    ELEMENT chapter
-3    ELEMENT chapter
-4    ELEMENT chapter
-5    ELEMENT chapter
+1  ELEMENT chapter
+2  ELEMENT chapter
+3  ELEMENT chapter
+4  ELEMENT chapter
+5  ELEMENT chapter
diff --git a/result/XPath/tests/chaptersprefol b/result/XPath/tests/chaptersprefol
index 5c33f2d..930bb7a 100644
--- a/result/XPath/tests/chaptersprefol
+++ b/result/XPath/tests/chaptersprefol
@@ -23,54 +23,54 @@
 Expression: /child::EXAMPLE/child::chapter[3]/preceding::*
 Object is a Node Set :
 Set contains 10 nodes:
-1    ELEMENT p
-2    ELEMENT title
-3    ELEMENT chapter
-4    ELEMENT p
-5    ELEMENT image
-      ATTRIBUTE href
-        TEXT
-          content=linus.gif
-6    ELEMENT p
-7    ELEMENT title
-8    ELEMENT chapter
-9    ELEMENT title
-10    ELEMENT head
+1  ELEMENT p
+2  ELEMENT title
+3  ELEMENT chapter
+4  ELEMENT p
+5  ELEMENT image
+    ATTRIBUTE href
+      TEXT
+        content=linus.gif
+6  ELEMENT p
+7  ELEMENT title
+8  ELEMENT chapter
+9  ELEMENT title
+10  ELEMENT head
 
 ========================
 Expression: /child::EXAMPLE/child::chapter[3]/following::*
 Object is a Node Set :
 Set contains 6 nodes:
-1    ELEMENT chapter
-2    ELEMENT title
-3    ELEMENT p
-4    ELEMENT chapter
-5    ELEMENT title
-6    ELEMENT p
+1  ELEMENT chapter
+2  ELEMENT title
+3  ELEMENT p
+4  ELEMENT chapter
+5  ELEMENT title
+6  ELEMENT p
 
 ========================
 Expression: /child::EXAMPLE/child::chapter[1]/image/preceding::*
 Object is a Node Set :
 Set contains 4 nodes:
-1    ELEMENT p
-2    ELEMENT title
-3    ELEMENT title
-4    ELEMENT head
+1  ELEMENT p
+2  ELEMENT title
+3  ELEMENT title
+4  ELEMENT head
 
 ========================
 Expression: /child::EXAMPLE/child::chapter[1]/image/following::*
 Object is a Node Set :
 Set contains 13 nodes:
-1    ELEMENT p
-2    ELEMENT chapter
-3    ELEMENT title
-4    ELEMENT p
-5    ELEMENT chapter
-6    ELEMENT title
-7    ELEMENT p
-8    ELEMENT chapter
-9    ELEMENT title
-10    ELEMENT p
-11    ELEMENT chapter
-12    ELEMENT title
-13    ELEMENT p
+1  ELEMENT p
+2  ELEMENT chapter
+3  ELEMENT title
+4  ELEMENT p
+5  ELEMENT chapter
+6  ELEMENT title
+7  ELEMENT p
+8  ELEMENT chapter
+9  ELEMENT title
+10  ELEMENT p
+11  ELEMENT chapter
+12  ELEMENT title
+13  ELEMENT p
diff --git a/result/XPath/tests/idsimple b/result/XPath/tests/idsimple
index 3d15841..891b52e 100644
--- a/result/XPath/tests/idsimple
+++ b/result/XPath/tests/idsimple
@@ -3,31 +3,31 @@
 Expression: //*[@id="root"]
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT EXAMPLE
-      ATTRIBUTE id
-        TEXT
-          content=root
-      ATTRIBUTE prop1
-        TEXT
-          content=gnome is great
-      ATTRIBUTE prop2
-        TEXT
-          content=& linux too
+1  ELEMENT EXAMPLE
+    ATTRIBUTE id
+      TEXT
+        content=root
+    ATTRIBUTE prop1
+      TEXT
+        content=gnome is great
+    ATTRIBUTE prop2
+      TEXT
+        content=& linux too
 
 ========================
 Expression: //*[@id="chapter2"]
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT chapter
-      ATTRIBUTE id
-        TEXT
-          content=chapter2
+1  ELEMENT chapter
+    ATTRIBUTE id
+      TEXT
+        content=chapter2
 
 ========================
 Expression: //*[@id="chapter5"]
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT chapter
-      ATTRIBUTE id
-        TEXT
-          content=chapter5
+1  ELEMENT chapter
+    ATTRIBUTE id
+      TEXT
+        content=chapter5
diff --git a/result/XPath/tests/simpleabbr b/result/XPath/tests/simpleabbr
index 188a719..e8d5d97 100644
--- a/result/XPath/tests/simpleabbr
+++ b/result/XPath/tests/simpleabbr
@@ -3,61 +3,61 @@
 Expression: /EXAMPLE
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT EXAMPLE
-      ATTRIBUTE prop1
-        TEXT
-          content=gnome is great
-      ATTRIBUTE prop2
-        TEXT
-          content=& linux too
+1  ELEMENT EXAMPLE
+    ATTRIBUTE prop1
+      TEXT
+        content=gnome is great
+    ATTRIBUTE prop2
+      TEXT
+        content=& linux too
 
 ========================
 Expression: /EXAMPLE/head
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT head
+1  ELEMENT head
 
 ========================
 Expression: /EXAMPLE/chapter[1]
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT chapter
+1  ELEMENT chapter
 
 ========================
 Expression: //p
 Object is a Node Set :
 Set contains 2 nodes:
-1    ELEMENT p
-2    ELEMENT p
+1  ELEMENT p
+2  ELEMENT p
 
 ========================
 Expression: //chapter/image
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT image
-      ATTRIBUTE href
-        TEXT
-          content=linus.gif
+1  ELEMENT image
+    ATTRIBUTE href
+      TEXT
+        content=linus.gif
 
 ========================
 Expression: //p/text()
 Object is a Node Set :
 Set contains 2 nodes:
-1    TEXT
-      content=bla bla bla ...
-2    TEXT
-      content=...
+1  TEXT
+    content=bla bla bla ...
+2  TEXT
+    content=...
 
 ========================
 Expression: //p/text()[position()=1]
 Object is a Node Set :
 Set contains 1 nodes:
-1    TEXT
-      content=bla bla bla ...
+1  TEXT
+    content=bla bla bla ...
 
 ========================
 Expression: //p/text()[position()=last()]
 Object is a Node Set :
 Set contains 1 nodes:
-1    TEXT
-      content=...
+1  TEXT
+    content=...
diff --git a/result/XPath/tests/simplebase b/result/XPath/tests/simplebase
index 2e9687c..2ee65cb 100644
--- a/result/XPath/tests/simplebase
+++ b/result/XPath/tests/simplebase
@@ -3,67 +3,67 @@
 Expression: /child::*
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT EXAMPLE
-      ATTRIBUTE prop1
-        TEXT
-          content=gnome is great
-      ATTRIBUTE prop2
-        TEXT
-          content=& linux too
+1  ELEMENT EXAMPLE
+    ATTRIBUTE prop1
+      TEXT
+        content=gnome is great
+    ATTRIBUTE prop2
+      TEXT
+        content=& linux too
 
 ========================
 Expression: /child::EXAMPLE
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT EXAMPLE
-      ATTRIBUTE prop1
-        TEXT
-          content=gnome is great
-      ATTRIBUTE prop2
-        TEXT
-          content=& linux too
+1  ELEMENT EXAMPLE
+    ATTRIBUTE prop1
+      TEXT
+        content=gnome is great
+    ATTRIBUTE prop2
+      TEXT
+        content=& linux too
 
 ========================
 Expression: /child::EXAMPLE/child::head
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT head
+1  ELEMENT head
 
 ========================
 Expression: /child::EXAMPLE/child::*
 Object is a Node Set :
 Set contains 2 nodes:
-1    ELEMENT head
-2    ELEMENT chapter
+1  ELEMENT head
+2  ELEMENT chapter
 
 ========================
 Expression: /child::EXAMPLE/child::head/child::title
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT title
+1  ELEMENT title
 
 ========================
 Expression: /child::EXAMPLE/child::head/child::title/child::text()
 Object is a Node Set :
 Set contains 1 nodes:
-1    TEXT
-      content=Welcome to Gnome
+1  TEXT
+    content=Welcome to Gnome
 
 ========================
 Expression: /child::EXAMPLE/child::head/node()
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT title
+1  ELEMENT title
 
 ========================
 Expression: /descendant::title
 Object is a Node Set :
 Set contains 2 nodes:
-1    ELEMENT title
-2    ELEMENT title
+1  ELEMENT title
+2  ELEMENT title
 
 ========================
 Expression: /descendant::p/ancestor::chapter
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT chapter
+1  ELEMENT chapter
diff --git a/result/XPath/tests/usr1check b/result/XPath/tests/usr1check
index f1f2faa..0308991 100644
--- a/result/XPath/tests/usr1check
+++ b/result/XPath/tests/usr1check
@@ -3,10 +3,10 @@
 Expression: //ITEM[1]
 Object is a Node Set :
 Set contains 1 nodes:
-1    ELEMENT ITEM
-      ATTRIBUTE monto
-        TEXT
-          content=50.12
-      ATTRIBUTE divisa
-        TEXT
-          content=DOL
+1  ELEMENT ITEM
+    ATTRIBUTE monto
+      TEXT
+        content=50.12
+    ATTRIBUTE divisa
+      TEXT
+        content=DOL
diff --git a/test/XPath/docs/chapters b/test/XPath/docs/chapters
index bf402d1..c48f65e 100644
--- a/test/XPath/docs/chapters
+++ b/test/XPath/docs/chapters
@@ -3,25 +3,25 @@
   <head>
    <title>Welcome to Gnome</title>
   </head>
-  <chapter>
+  <chapter id="chapter1">
    <title>The Linux adventure</title>
    <p>bla bla bla ...</p>
    <image href="linus.gif"/>
    <p>...</p>
   </chapter>
-  <chapter>
+  <chapter id="chapter2">
    <title>Chapter 2</title>
    <p>this is chapter 2 ...</p>
   </chapter>
-  <chapter>
+  <chapter id="chapter3">
    <title>Chapter 3</title>
    <p>this is chapter 3 ...</p>
   </chapter>
-  <chapter>
+  <chapter id="chapter4">
    <title>Chapter 4</title>
    <p>this is chapter 4 ...</p>
   </chapter>
-  <chapter>
+  <chapter id="chapter5">
    <title>Chapter 5</title>
    <p>this is chapter 5 ...</p>
   </chapter>
diff --git a/test/XPath/tests/chaptersprefol b/test/XPath/tests/chaptersprefol
index e95995b..8f1e65b 100644
--- a/test/XPath/tests/chaptersprefol
+++ b/test/XPath/tests/chaptersprefol
@@ -1 +1,8 @@
-/following::*                                                                   /preceding::*                                                                   /child::EXAMPLE/preceding::*                                                    /child::EXAMPLE/following::*                                                    /child::EXAMPLE/child::chapter[3]/preceding::*                                  /child::EXAMPLE/child::chapter[3]/following::*                                  /child::EXAMPLE/child::chapter[1]/image/preceding::*                            /child::EXAMPLE/child::chapter[1]/image/following::*
+/following::*
+/preceding::*
+/child::EXAMPLE/preceding::*
+/child::EXAMPLE/following::*
+/child::EXAMPLE/child::chapter[3]/preceding::*
+/child::EXAMPLE/child::chapter[3]/following::*
+/child::EXAMPLE/child::chapter[1]/image/preceding::*
+/child::EXAMPLE/child::chapter[1]/image/following::*
diff --git a/testXPath.c b/testXPath.c
index 65fc545..1133d4c 100644
--- a/testXPath.c
+++ b/testXPath.c
@@ -150,7 +150,7 @@
 
     for (i = 0;i < cur->locNr;i++) {
 	fprintf(output, shift);
-        fprintf(output, "%d :\n", i + 1);
+        fprintf(output, "%d : ", i + 1);
 	xmlXPAthDebugDumpObject(output, cur->locTab[i], depth + 1);
     }
 }
@@ -197,16 +197,18 @@
 	    fprintf(output, "\n");
 	    break;
 	case XPATH_RANGE:
-	    fprintf(output, "Object is a range : from ");
+	    fprintf(output, "Object is a range :\n");
+	    fprintf(output, shift);
+	    fprintf(output, "From ");
 	    if (cur->index >= 0)
 		fprintf(output, "index %d in ", cur->index);
-	    fprintf(output, "node");
+	    fprintf(output, "node\n");
 	    xmlXPAthDebugDumpNode(output, (xmlNodePtr) cur->user, depth + 1);
 	    fprintf(output, shift);
-	    fprintf(output, "                      to ");
+	    fprintf(output, "To ");
 	    if (cur->index2 >= 0)
 		fprintf(output, "index %d in ", cur->index2);
-	    fprintf(output, "node");
+	    fprintf(output, "node\n");
 	    xmlXPAthDebugDumpNode(output, (xmlNodePtr) cur->user2, depth + 1);
 	    fprintf(output, "\n");
 	    break;
diff --git a/valid.c b/valid.c
index 4b2f620..f5b40e2 100644
--- a/valid.c
+++ b/valid.c
@@ -1823,9 +1823,7 @@
     if (doc == NULL) return(0);
     if (attr == NULL) return(0);
     if ((doc->intSubset == NULL) && (doc->extSubset == NULL)) {
-        if (((attr->name[0] == 'I') || (attr->name[0] == 'i')) &&
-            ((attr->name[1] == 'D') || (attr->name[1] == 'd')) &&
-	    (attr->name[2] == 0)) return(1);
+	return(0);
     } else if (doc->type == XML_HTML_DOCUMENT_NODE) {
         if ((xmlStrEqual(BAD_CAST "id", attr->name)) ||
 	    (xmlStrEqual(BAD_CAST "name", attr->name)))
diff --git a/win32/Makefile.mingw b/win32/Makefile.mingw
new file mode 100644
index 0000000..11ff7bc
--- /dev/null
+++ b/win32/Makefile.mingw
@@ -0,0 +1,95 @@
+# This Makefile will allow you to build the static library, a DLL, the

+# DLL-import library, and the test executables using the "mingw" gcc

+# compiler environment.  This Makefile is based on Alfred Reibenschuh's

+# version for 2.1.1, and was modified by Wayne Davison.

+

+# Set "PREFIX" to the root of the mingw installed files.

+

+PREFIX = /mingw

+

+CC=gcc

+CFLAGS=-O -Iinclude -I$(PREFIX)/include -D_WINSOCKAPI_ -fnative-struct

+LDFLAGS=-L. -L$(PREFIX)/lib

+LIBS=-lwsock32 -lz

+

+AR=ar rc

+DLLTOOL=dlltool

+DLLWRAP=dllwrap

+

+LIBSRCS=HTMLparser.c	\

+	HTMLtree.c	\

+	SAX.c		\

+	debugXML.c	\

+	encoding.c	\

+	entities.c	\

+	error.c		\

+	nanoftp.c	\

+	nanohttp.c	\

+	parser.c	\

+	parserInternals.c	\

+	tree.c		\

+	valid.c		\

+	xlink.c		\

+	xmlIO.c		\

+	xmlmemory.c	\

+	xpath.c		\

+	uri.c

+

+LIBOBJS=$(LIBSRCS:.c=.o)

+

+OBJS=$(LIBOBJS)

+

+LIBBASE=xml

+LIB=lib$(LIBBASE).a

+DLL=$(LIB:.a=.dll)

+

+OBJ1=testHTML.o

+OBJ2=testSAX.o

+OBJ3=testURI.o

+EXE1=$(OBJ1:.o=.exe)

+EXE2=$(OBJ2:.o=.exe)

+EXE3=$(OBJ3:.o=.exe)

+

+IMPBASE=$(LIBBASE)_dll

+IMP=lib$(IMPBASE).a

+

+DEF=$(DLL:.dll=.def)

+

+all: $(LIB) $(DLL) $(DEF) $(IMP) $(EXE1) $(EXE2) $(EXE3)

+

+dll: $(DLL)

+

+lib: $(LIB)

+

+$(DLL): $(LIB) $(DEF) $(IMP)

+	$(DLLWRAP) --def $(DEF) --dllname $@ --output-lib $@ $(LIB) $(LDFLAGS) $(LIBS) -mwindows

+

+$(LIB): $(LIBOBJS)

+	$(AR) $@ $^

+

+$(DEF): $(LIBOBJS)

+	$(DLLTOOL) --kill-at --export-all -D $(DLL) --output-def $@ $^

+

+$(IMP): $(DEF)

+	$(DLLTOOL) -d $< -l $@ -D $(DLL)

+

+$(EXE1): $(OBJ1) $(LIBOBJS) $(DLL)

+	$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)

+	strip $@

+

+$(EXE2): $(OBJ2) $(LIBOBJS) $(DLL)

+	$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(IMPBASE) $(LIBS)

+	strip $@

+

+$(EXE3): $(OBJ3) $(LIBOBJS) $(LIB)

+	$(CC) $(CFLAGS) $< -o $@ $(LDFLAGS) -l$(LIBBASE) $(LIBS)

+	strip $@

+

+.c.o:

+	$(CC) $(CFLAGS) -c $< -o $@	

+

+clean:

+	rm *.o *.a *.dll *.def

+

+test: all

+	./$(EXE1)	-c $(OBJS) | xxd | head -3

diff --git a/win32/README.MSDev b/win32/README.MSDev
index 47b8dd8..411a607 100644
--- a/win32/README.MSDev
+++ b/win32/README.MSDev
@@ -1,41 +1,30 @@
-The configuration stuff (i.e. what should be enabled/disabled) is in xmlversion.h

-I only tested it compiled fine with the current settings 

+If you're creating libxml2 with the "mingw" compiler, just copy the

+Makefile.mingw to the root directory as "Makefile", edit the PREFIX

+value, and run "make".

+

+If you're using MSVC, here are some instructions for how you can

+proceed:

+

+The configuration stuff (i.e. what should be enabled/disabled) is in

+xmlversion.h I only tested it compiled fine with the current settings

 (that is nearly everything disabled, I didn't need many features)

 

 ----------------------------

 

-How did I get everything in place so the MSDev project works from the original archive?

+How did I get everything in place so the MSDev project works from the

+original archive?

 

 from the cygwin prompt (http://sources.redhat.com/cygwin) :

 $ ./configure --disable-corba --without-ftp --without-http --without-html --wit

 hout-xpath --without-iconv --without-debug

 

-created a libxml directory and copied the following headers in:

-HTMLparser.h       entities.h         tree.h             xmlIO.h

-HTMLtree.h         nanoftp.h          uri.h              xmlmemory.h

-SAX.h              nanohttp.h         valid.h            xmlversion.h

-debugXML.h         parser.h           xlink.h            xpath.h

-encoding.h         parserInternals.h  xml-error.h

-

-modified win32config.h to comment out 

-#define LIBXML_VERSION 20204

-#define LIBXML_VERSION_STRING "2.2.4"

-(is already in xmlversion.h)

-

 built the project file for the static library

 

 ----------------------------

 

 diff after doing the changes and cleaning up the generated stuff:

 

-Only in libxml2-2.2.4: MSDev

-Common subdirectories: libxml2-2.2.4/SAXresult and libxml2-2.2.4-reference/SAXresult

-Common subdirectories: libxml2-2.2.4/doc and libxml2-2.2.4-reference/doc

-Common subdirectories: libxml2-2.2.4/example and libxml2-2.2.4-reference/example

-Only in libxml2-2.2.4: libxml

-Common subdirectories: libxml2-2.2.4/result and libxml2-2.2.4-reference/result

-Common subdirectories: libxml2-2.2.4/test and libxml2-2.2.4-reference/test

-Only in libxml2-2.2.4: win32config.h

+[Note: this is out of date]

 diff libxml2-2.2.4/xmlversion.h libxml2-2.2.4-reference/xmlversion.h

 38c38

 < #if 0

diff --git a/win32/libxml2/libxml2.dsp b/win32/libxml2/libxml2.dsp
index 286b250..52c24fd 100644
--- a/win32/libxml2/libxml2.dsp
+++ b/win32/libxml2/libxml2.dsp
@@ -1,166 +1,169 @@
-# Microsoft Developer Studio Project File - Name="libxml2" - Package Owner=<4>

-# Microsoft Developer Studio Generated Build File, Format Version 6.00

-# ** DO NOT EDIT **

-

-# TARGTYPE "Win32 (x86) Static Library" 0x0104

-

-CFG=libxml2 - Win32 Debug

-!MESSAGE This is not a valid makefile. To build this project using NMAKE,

-!MESSAGE use the Export Makefile command and run

-!MESSAGE 

-!MESSAGE NMAKE /f "libxml2.mak".

-!MESSAGE 

-!MESSAGE You can specify a configuration when running NMAKE

-!MESSAGE by defining the macro CFG on the command line. For example:

-!MESSAGE 

-!MESSAGE NMAKE /f "libxml2.mak" CFG="libxml2 - Win32 Debug"

-!MESSAGE 

-!MESSAGE Possible choices for configuration are:

-!MESSAGE 

-!MESSAGE "libxml2 - Win32 Release" (based on "Win32 (x86) Static Library")

-!MESSAGE "libxml2 - Win32 Debug" (based on "Win32 (x86) Static Library")

-!MESSAGE 

-

-# Begin Project

-# PROP AllowPerConfigDependencies 0

-# PROP Scc_ProjName ""

-# PROP Scc_LocalPath ""

-CPP=cl.exe

-RSC=rc.exe

-

-!IF  "$(CFG)" == "libxml2 - Win32 Release"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 0

-# PROP BASE Output_Dir "Release"

-# PROP BASE Intermediate_Dir "Release"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 0

-# PROP Output_Dir "Release"

-# PROP Intermediate_Dir "Release"

-# PROP Target_Dir ""

-F90=df.exe

-# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c

-# ADD CPP /nologo /W3 /GX /O2 /I "..\.." /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c

-# ADD BASE RSC /l 0x409 /d "NDEBUG"

-# ADD RSC /l 0x409 /d "NDEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LIB32=link.exe -lib

-# ADD BASE LIB32 /nologo

-# ADD LIB32 /nologo

-

-!ELSEIF  "$(CFG)" == "libxml2 - Win32 Debug"

-

-# PROP BASE Use_MFC 0

-# PROP BASE Use_Debug_Libraries 1

-# PROP BASE Output_Dir "Debug"

-# PROP BASE Intermediate_Dir "Debug"

-# PROP BASE Target_Dir ""

-# PROP Use_MFC 0

-# PROP Use_Debug_Libraries 1

-# PROP Output_Dir "Debug"

-# PROP Intermediate_Dir "Debug"

-# PROP Target_Dir ""

-F90=df.exe

-# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ  /c

-# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\.." /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ  /c

-# ADD BASE RSC /l 0x409 /d "_DEBUG"

-# ADD RSC /l 0x409 /d "_DEBUG"

-BSC32=bscmake.exe

-# ADD BASE BSC32 /nologo

-# ADD BSC32 /nologo

-LIB32=link.exe -lib

-# ADD BASE LIB32 /nologo

-# ADD LIB32 /nologo

-

-!ENDIF 

-

-# Begin Target

-

-# Name "libxml2 - Win32 Release"

-# Name "libxml2 - Win32 Debug"

-# Begin Group "Source Files"

-

-# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"

-# Begin Source File

-

-SOURCE=..\..\debugXML.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\encoding.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\entities.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\error.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\HTMLparser.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\HTMLtree.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\nanoftp.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\nanohttp.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\parser.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\parserInternals.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\SAX.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\tree.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\uri.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\valid.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\xlink.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\xmlIO.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\xmlmemory.c

-# End Source File

-# Begin Source File

-

-SOURCE=..\..\xpath.c

-# End Source File

-# End Group

-# Begin Group "Header Files"

-

-# PROP Default_Filter "h;hpp;hxx;hm;inl"

-# End Group

-# End Target

-# End Project

+# Microsoft Developer Studio Project File - Name="libxml2" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=libxml2 - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE 
+!MESSAGE NMAKE /f "libxml2.mak".
+!MESSAGE 
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE 
+!MESSAGE NMAKE /f "libxml2.mak" CFG="libxml2 - Win32 Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "libxml2 - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "libxml2 - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+F90=df.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "libxml2 - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Target_Dir ""
+# ADD BASE F90 /include:"Release/"
+# ADD F90 /include:"Release/"
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /W3 /GX /O2 /I "..\..\include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ELSEIF  "$(CFG)" == "libxml2 - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Target_Dir ""
+# ADD BASE F90 /include:"Debug/"
+# ADD F90 /include:"Debug/"
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "..\..\include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo
+
+!ENDIF 
+
+# Begin Target
+
+# Name "libxml2 - Win32 Release"
+# Name "libxml2 - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\..\debugXML.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\encoding.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\entities.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\error.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\HTMLparser.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\HTMLtree.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\nanoftp.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\nanohttp.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\parser.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\parserInternals.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\SAX.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\tree.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\uri.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\valid.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\xlink.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\xmlIO.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\xmlmemory.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\..\xpath.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# End Target
+# End Project