Applied the VMS update patch from Craig A. Berry update Daniel

* vms/build_libxml.com vms/config.vms vms/readme.vms
  include/libxml/parser.h include/libxml/parserInternals.h
  include/libxml/tree.h include/libxml/xmlIO.h
  HTMLparser.c catalog.c debugXML.c parser.c parserInternals.c
  tree.c triodef.h trionan.c uri.c xmlIO.c xpath.c:
  Applied the VMS update patch from Craig A. Berry
* doc/*.html: update
Daniel
diff --git a/ChangeLog b/ChangeLog
index 9ed4011..6612c39 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Tue Oct 22 19:33:20 CEST 2002 Daniel Veillard <daniel@veillard.com>
+
+	* vms/build_libxml.com vms/config.vms vms/readme.vms
+	  include/libxml/parser.h include/libxml/parserInternals.h
+	  include/libxml/tree.h include/libxml/xmlIO.h
+	  HTMLparser.c catalog.c debugXML.c parser.c parserInternals.c
+	  tree.c triodef.h trionan.c uri.c xmlIO.c xpath.c:
+	  Applied the VMS update patch from Craig A. Berry
+	* doc/*.html: update
+
 Tue Oct 22 16:27:31 CEST 2002 Daniel Veillard <daniel@veillard.com>
 
 	* include/libxml/encoding.h encoding.c: made xmlGetUTF8Char public
diff --git a/HTMLparser.c b/HTMLparser.c
index 7200a3b..e4a5226 100644
--- a/HTMLparser.c
+++ b/HTMLparser.c
@@ -3200,7 +3200,7 @@
 	        ctxt->sax->characters(ctxt->userData, BAD_CAST "&", 1);
 	    return;
 	}
-	if ((ent == NULL) || (ent->value <= 0)) {
+	if ((ent == NULL) || !(ent->value > 0)) {
 	    htmlCheckParagraph(ctxt);
 	    if ((ctxt->sax != NULL) && (ctxt->sax->characters != NULL)) {
 		ctxt->sax->characters(ctxt->userData, BAD_CAST "&", 1);
diff --git a/catalog.c b/catalog.c
index 8905b04..40236a2 100644
--- a/catalog.c
+++ b/catalog.c
@@ -2860,7 +2860,7 @@
 		    paths = cur;
 		    while ((*cur != 0) && (!IS_BLANK(*cur)))
 			cur++;
-		    path = xmlStrndup((const xmlChar *)paths, cur - paths);
+		    path = (char *) xmlStrndup((const xmlChar *)paths, cur - paths);
 		    if (path != NULL) {
 			*nextent = xmlNewCatalogEntry(XML_CATA_CATALOG, NULL,
 				NULL, BAD_CAST path, xmlCatalogDefaultPrefer);
diff --git a/debugXML.c b/debugXML.c
index cbc5db0..9652c9f 100644
--- a/debugXML.c
+++ b/debugXML.c
@@ -1563,7 +1563,7 @@
  *
  * Returns 0
  */
-int
+static int
 xmlShellGrep(xmlShellCtxtPtr ctxt ATTRIBUTE_UNUSED,
             char *arg, xmlNodePtr node, xmlNodePtr node2 ATTRIBUTE_UNUSED)
 {
@@ -1582,16 +1582,16 @@
 #endif
     while (node != NULL) {
         if (node->type == XML_COMMENT_NODE) {
-	    if (xmlStrstr(node->content, arg)) {
+	    if (xmlStrstr(node->content, (xmlChar *) arg)) {
 
 		fprintf(ctxt->output, "%s : ", xmlGetNodePath(node));
                 xmlShellList(ctxt, NULL, node, NULL);
 	    }
         } else if (node->type == XML_TEXT_NODE) {
-	    if (xmlStrstr(node->content, arg)) {
+	    if (xmlStrstr(node->content, (xmlChar *) arg)) {
 
 		fprintf(ctxt->output, "%s : ", xmlGetNodePath(node->parent));
-                xmlShellList(ctxt, NULL, node, NULL);
+                xmlShellList(ctxt, NULL, node->parent, NULL);
 	    }
         }
 
diff --git a/doc/index.html b/doc/index.html
index 7208ee3..4e8fb2f 100644
--- a/doc/index.html
+++ b/doc/index.html
@@ -1,3 +1,693 @@
+Freeing 0x809a570
+Freeing 0x8099e68
+Freeing 0x809a850
+Freeing 0x809a120
+Freeing 0x809aac8
+Freeing 0x8099e68
+Freeing 0x809ad30
+Freeing 0x809a920
+Freeing 0x809b090
+Freeing 0x809a920
+Freeing 0x809b368
+Freeing 0x809a920
+Freeing 0x809b630
+Freeing 0x809a920
+Freeing 0x809b8d8
+Freeing 0x809a920
+Freeing 0x809bba0
+Freeing 0x809a920
+Freeing 0x809be38
+Freeing 0x809a920
+Freeing 0x809c118
+Freeing 0x809a920
+Freeing 0x809c3b0
+Freeing 0x809a920
+Freeing 0x809c640
+Freeing 0x809a920
+Freeing 0x809c8e0
+Freeing 0x809a920
+Freeing 0x809cbb0
+Freeing 0x809a920
+Freeing 0x809ce60
+Freeing 0x809a920
+Freeing 0x809d140
+Freeing 0x809a920
+Freeing 0x809d3c0
+Freeing 0x809a920
+Freeing 0x809d6f8
+Freeing 0x809a920
+Freeing 0x809d9e0
+Freeing 0x809a920
+Freeing 0x809dbf8
+Freeing 0x809d900
+Freeing 0x809ded0
+Freeing 0x809d900
+Freeing 0x809e168
+Freeing 0x809d900
+Freeing 0x809e438
+Freeing 0x809d900
+Freeing 0x809e6e8
+Freeing 0x809d900
+Freeing 0x809e980
+Freeing 0x809d900
+Freeing 0x80a50d8
+Freeing 0x817af18
+Freeing 0x817b5b8
+Freeing 0x8184cc8
+Freeing 0x81827e8
+Freeing 0x81854c8
+Freeing 0x8185110
+Freeing 0x8185868
+Freeing 0x81854d0
+Freeing 0x8185bf0
+Freeing 0x8185868
+Freeing 0x8185f70
+Freeing 0x81858b8
+Freeing 0x8186268
+Freeing 0x8185d20
+Freeing 0x8186678
+Freeing 0x81862c0
+Freeing 0x8186ab8
+Freeing 0x81866d0
+Freeing 0x8186e18
+Freeing 0x8186bb0
+Freeing 0x81872a0
+Freeing 0x8186ec0
+Freeing 0x81875a8
+Freeing 0x8187258
+Freeing 0x81878b0
+Freeing 0x8187258
+Freeing 0x8187df0
+Freeing 0x8187b08
+Freeing 0x81883b8
+Freeing 0x8187fa8
+Freeing 0x8188680
+Freeing 0x8187fa8
+Freeing 0x81889a8
+Freeing 0x8185088
+Freeing 0x81890a0
+Freeing 0x8188c90
+Freeing 0x8189488
+Freeing 0x8189168
+Freeing 0x8189910
+Freeing 0x8189410
+Freeing 0x818a658
+Freeing 0x818a2a0
+Freeing 0x818aa78
+Freeing 0x818a760
+Freeing 0x818ae90
+Freeing 0x818ab08
+Freeing 0x818b138
+Freeing 0x818ab08
+Freeing 0x818b768
+Freeing 0x818b340
+Freeing 0x818bd78
+Freeing 0x818c928
+Freeing 0x818fd78
+Freeing 0x818cf60
+Freeing 0x8191e48
+Freeing 0x81927a8
+Freeing 0x8193138
+Freeing 0x81a0288
+Freeing 0x819fdc0
+Freeing 0x81a0550
+Freeing 0x819ffe0
+Freeing 0x81a0818
+Freeing 0x819fdc0
+Freeing 0x81a1280
+Freeing 0x81a0e70
+Freeing 0x81a16e8
+Freeing 0x81a1358
+Freeing 0x81a1980
+Freeing 0x81a16a8
+Freeing 0x81a1e48
+Freeing 0x81a1a60
+Freeing 0x818b768
+Freeing 0x818b6c8
+Freeing 0x81a2520
+Freeing 0x818c7e0
+Freeing 0x8193f58
+Freeing 0x818cb60
+Freeing 0x818ebc8
+Freeing 0x8194bd0
+Freeing 0x8195560
+Freeing 0x819f308
+Freeing 0x819cde0
+Freeing 0x819f668
+Freeing 0x819f010
+Freeing 0x819f948
+Freeing 0x819f010
+Freeing 0x819fca8
+Freeing 0x819f4b0
+Freeing 0x81a07a0
+Freeing 0x81a0420
+Freeing 0x81a1e10
+Freeing 0x81a1968
+Freeing 0x81a2068
+Freeing 0x81a1968
+Freeing 0x81a27c0
+Freeing 0x81a2338
+Freeing 0x81a3270
+Freeing 0x81a2e80
+Freeing 0x81a3520
+Freeing 0x81a3080
+Freeing 0x81a3a38
+Freeing 0x81a3710
+Freeing 0x81a3d00
+Freeing 0x81a38c8
+Freeing 0x81a46c0
+Freeing 0x81a4268
+Freeing 0x81a76b0
+Freeing 0x81a72a0
+Freeing 0x81a7bd0
+Freeing 0x81a7638
+Freeing 0x81a7ee8
+Freeing 0x81a7ad0
+Freeing 0x81a81d0
+Freeing 0x81a7ad0
+Freeing 0x81aaca8
+Freeing 0x81aaa40
+Freeing 0x81aaf58
+Freeing 0x81aac10
+Freeing 0x81aceb0
+Freeing 0x81acae8
+Freeing 0x81ada18
+Freeing 0x81ad660
+Freeing 0x81ae470
+Freeing 0x81ae038
+Freeing 0x81afb20
+Freeing 0x81af750
+Freeing 0x81b02e8
+Freeing 0x81afea0
+Freeing 0x81b0820
+Freeing 0x81b04a0
+Freeing 0x81b1620
+Freeing 0x81b1200
+Freeing 0x81b1a10
+Freeing 0x81b1620
+Freeing 0x81b1fe0
+Freeing 0x81b1bf0
+Freeing 0x81b23c8
+Freeing 0x81b2278
+Freeing 0x818c2e0
+Freeing 0x81a24c8
+Freeing 0x818b848
+Freeing 0x818c4c0
+Freeing 0x81b2a28
+Freeing 0x818cad8
+Freeing 0x81ab7e8
+Freeing 0x81abf18
+Freeing 0x81ac8a8
+Freeing 0x8195c28
+Freeing 0x8195828
+Freeing 0x8196080
+Freeing 0x8195d50
+Freeing 0x8196440
+Freeing 0x8196158
+Freeing 0x8196740
+Freeing 0x8196270
+Freeing 0x8196bc8
+Freeing 0x8196818
+Freeing 0x8197080
+Freeing 0x8196d40
+Freeing 0x8197278
+Freeing 0x8196f88
+Freeing 0x8197bb8
+Freeing 0x8196e70
+Freeing 0x8197e80
+Freeing 0x8197080
+Freeing 0x81982a8
+Freeing 0x8197e88
+Freeing 0x8198730
+Freeing 0x8198348
+Freeing 0x8198bd8
+Freeing 0x8198830
+Freeing 0x8199110
+Freeing 0x8198d60
+Freeing 0x818bf70
+Freeing 0x81b2cc8
+Freeing 0x818bcc8
+Freeing 0x818c978
+Freeing 0x818fcf0
+Freeing 0x818ce20
+Freeing 0x8191dc0
+Freeing 0x8192720
+Freeing 0x81930b0
+Freeing 0x81a0a30
+Freeing 0x81a0680
+Freeing 0x81a0d00
+Freeing 0x81a0918
+Freeing 0x81a1218
+Freeing 0x81a0f40
+Freeing 0x81a1658
+Freeing 0x81a13a0
+Freeing 0x81a19b8
+Freeing 0x81a14c8
+Freeing 0x818b6c8
+Freeing 0x818b408
+Freeing 0x8199788
+Freeing 0x818c6a8
+Freeing 0x818f9e8
+Freeing 0x818ca78
+Freeing 0x8191ac8
+Freeing 0x8192428
+Freeing 0x8192db8
+Freeing 0x81a0438
+Freeing 0x81a0018
+Freeing 0x818c220
+Freeing 0x81a4cb0
+Freeing 0x818b838
+Freeing 0x818d6f0
+Freeing 0x81a19b0
+Freeing 0x818ba40
+Freeing 0x819bad0
+Freeing 0x818e438
+Freeing 0x819c7f8
+Freeing 0x8199be0
+Freeing 0x81997f8
+Freeing 0x819a088
+Freeing 0x8199d40
+Freeing 0x81a3298
+Freeing 0x81a2e20
+Freeing 0x81a35d0
+Freeing 0x81a3120
+Freeing 0x818b6c8
+Freeing 0x818b588
+Freeing 0x818b7a8
+Freeing 0x818cfb0
+Freeing 0x81a3810
+Freeing 0x818c6d8
+Freeing 0x819cf80
+Freeing 0x819d8e0
+Freeing 0x819e270
+Freeing 0x81acb58
+Freeing 0x81ac6d8
+Freeing 0x81ace18
+Freeing 0x81ac6d8
+Freeing 0x8193030
+Freeing 0x8192c40
+Freeing 0x81bffd0
+Freeing 0x81bfbe0
+Freeing 0x81c5ce8
+Freeing 0x81c5b60
+Freeing 0x81c7008
+Freeing 0x81c6bf8
+Freeing 0x81c9ed0
+Freeing 0x81c9a98
+Freeing 0x81ca548
+Freeing 0x81ca210
+Freeing 0x81cb508
+Freeing 0x81cb1b8
+Freeing 0x81cb8a0
+Freeing 0x81cb178
+Freeing 0x81ccb28
+Freeing 0x81cc828
+Freeing 0x81cd1f0
+Freeing 0x81cce60
+Freeing 0x81cfb08
+Freeing 0x81cf6c0
+Freeing 0x81d0db0
+Freeing 0x81d0be0
+Freeing 0x81d3378
+Freeing 0x81d2f08
+Freeing 0x81d3be0
+Freeing 0x81d37d0
+Freeing 0x81d4050
+Freeing 0x81d3c40
+Freeing 0x818d798
+Freeing 0x81a3d18
+Freeing 0x81822a0
+Freeing 0x818d6c8
+Freeing 0x81a2b18
+Freeing 0x819df90
+Freeing 0x819c498
+Freeing 0x819c998
+Freeing 0x819ed98
+Freeing 0x818dc48
+Freeing 0x818b838
+Freeing 0x818d8a0
+Freeing 0x818d298
+Freeing 0x81a3590
+Freeing 0x818b9f8
+Freeing 0x819e4e8
+Freeing 0x81a3f18
+Freeing 0x81a48a8
+Freeing 0x818d848
+Freeing 0x818b6c8
+Freeing 0x818b758
+Freeing 0x81affe0
+Freeing 0x81a35e8
+Freeing 0x81a1898
+Freeing 0x81a3a80
+Freeing 0x81adcb0
+Freeing 0x81a42b8
+Freeing 0x81911a0
+Freeing 0x8190b30
+Freeing 0x8191580
+Freeing 0x8190ee8
+Freeing 0x81918e0
+Freeing 0x81914e0
+Freeing 0x8191dd0
+Freeing 0x8191750
+Freeing 0x81923a0
+Freeing 0x8191fc8
+Freeing 0x8192708
+Freeing 0x8192428
+Freeing 0x81929c8
+Freeing 0x8192428
+Freeing 0x8192ce0
+Freeing 0x8192428
+Freeing 0x81930e8
+Freeing 0x8192d90
+Freeing 0x81933d0
+Freeing 0x8192d90
+Freeing 0x81937d0
+Freeing 0x8193480
+Freeing 0x8193c58
+Freeing 0x8193910
+Freeing 0x81940f8
+Freeing 0x8193db0
+Freeing 0x81945b0
+Freeing 0x8194268
+Freeing 0x8194950
+Freeing 0x8194268
+Freeing 0x8194de8
+Freeing 0x8194a08
+Freeing 0x8195670
+Freeing 0x8195378
+Freeing 0x8195a18
+Freeing 0x8195438
+Freeing 0x8195e30
+Freeing 0x8195ac8
+Freeing 0x818d150
+Freeing 0x81ae280
+Freeing 0x818d6e0
+Freeing 0x818ba00
+Freeing 0x819e648
+Freeing 0x818c030
+Freeing 0x81a0728
+Freeing 0x81a1088
+Freeing 0x81a3a50
+Freeing 0x818d9e8
+Freeing 0x818b7e8
+Freeing 0x81a36f8
+Freeing 0x818e938
+Freeing 0x81a27e0
+Freeing 0x818d6b8
+Freeing 0x81a0510
+Freeing 0x81a0e70
+Freeing 0x81a1758
+Freeing 0x818e9f0
+Freeing 0x818d930
+Freeing 0x81a3400
+Freeing 0x818cf50
+Freeing 0x818ded0
+Freeing 0x818d1c0
+Freeing 0x818ff70
+Freeing 0x81908d0
+Freeing 0x81a3b90
+Freeing 0x81a3750
+Freeing 0x818b588
+Freeing 0x818dac8
+Freeing 0x818ca58
+Freeing 0x818fae8
+Freeing 0x818d6c0
+Freeing 0x8191c68
+Freeing 0x81925c8
+Freeing 0x8192f58
+Freeing 0x81aed20
+Freeing 0x81ac1b8
+Freeing 0x81af088
+Freeing 0x81aecc0
+Freeing 0x81af380
+Freeing 0x81aecc8
+Freeing 0x81af8c0
+Freeing 0x81af4b0
+Freeing 0x81afc90
+Freeing 0x81af938
+Freeing 0x81aff78
+Freeing 0x81af4b0
+Freeing 0x8193df0
+Freeing 0x81affd8
+Freeing 0x81940a0
+Freeing 0x81b00b0
+Freeing 0x8194420
+Freeing 0x8194058
+Freeing 0x8195cf0
+Freeing 0x81958b8
+Freeing 0x81960b8
+Freeing 0x8195b20
+Freeing 0x8197968
+Freeing 0x8197538
+Freeing 0x81a0c98
+Freeing 0x81a0818
+Freeing 0x818da70
+Freeing 0x8193d40
+Freeing 0x81a3700
+Freeing 0x81a7ad0
+Freeing 0x818f370
+Freeing 0x818c828
+Freeing 0x81a51d8
+Freeing 0x81afce8
+Freeing 0x81a5a90
+Freeing 0x8192838
+Freeing 0x8192500
+Freeing 0x8192b78
+Freeing 0x8190348
+Freeing 0x8192f20
+Freeing 0x8190348
+Freeing 0x81931e0
+Freeing 0x81903c8
+Freeing 0x8193518
+Freeing 0x81930e0
+Freeing 0x8193d58
+Freeing 0x8193968
+Freeing 0x8194ce8
+Freeing 0x8194930
+Freeing 0x8195138
+Freeing 0x8194de8
+Freeing 0x8195cc8
+Freeing 0x8195918
+Freeing 0x81961b0
+Freeing 0x8195af8
+Freeing 0x8196dd8
+Freeing 0x81969e8
+Freeing 0x8197090
+Freeing 0x8196d00
+Freeing 0x81973c8
+Freeing 0x8196f70
+Freeing 0x81977c0
+Freeing 0x8197470
+Freeing 0x818b7b0
+Freeing 0x81a36a8
+Freeing 0x818cf00
+Freeing 0x81adda8
+Freeing 0x818f130
+Freeing 0x818c640
+Freeing 0x81afe40
+Freeing 0x81adb28
+Freeing 0x81a3c60
+Freeing 0x8192a20
+Freeing 0x81904d0
+Freeing 0x8192d88
+Freeing 0x8190460
+Freeing 0x8193150
+Freeing 0x8192b70
+Freeing 0x8193450
+Freeing 0x8192b70
+Freeing 0x8193798
+Freeing 0x8193200
+Freeing 0x8196a00
+Freeing 0x81965b8
+Freeing 0x81a7e48
+Freeing 0x818b588
+Freeing 0x818d860
+Freeing 0x818d380
+Freeing 0x818f120
+Freeing 0x81aa688
+Freeing 0x81ac768
+Freeing 0x81aa0d0
+Freeing 0x81a3bb0
+Freeing 0x819f698
+Freeing 0x819d370
+Freeing 0x819fa38
+Freeing 0x819f630
+Freeing 0x819fd68
+Freeing 0x819f638
+Freeing 0x81a0038
+Freeing 0x819f5e8
+Freeing 0x81a03d0
+Freeing 0x81a00c0
+Freeing 0x81a06f8
+Freeing 0x819f5e8
+Freeing 0x81a0eb8
+Freeing 0x81a0a80
+Freeing 0x81a1770
+Freeing 0x81a1508
+Freeing 0x818ffe0
+Freeing 0x818fbb0
+Freeing 0x818db70
+Freeing 0x819c7e8
+Freeing 0x818bac8
+Freeing 0x818bdf0
+Freeing 0x818e360
+Freeing 0x818c368
+Freeing 0x8190548
+Freeing 0x8190de0
+Freeing 0x8191588
+Freeing 0x8192a68
+Freeing 0x81926c8
+Freeing 0x8192dc8
+Freeing 0x8192628
+Freeing 0x8193138
+Freeing 0x8192b68
+Freeing 0x8193420
+Freeing 0x8192700
+Freeing 0x8193758
+Freeing 0x8193320
+Freeing 0x8193ac8
+Freeing 0x8193800
+Freeing 0x8193df0
+Freeing 0x8193758
+Freeing 0x8194198
+Freeing 0x8193e98
+Freeing 0x8194510
+Freeing 0x8194210
+Freeing 0x8196680
+Freeing 0x8196298
+Freeing 0x8196af0
+Freeing 0x8196758
+Freeing 0x81a10c8
+Freeing 0x81a0e08
+Freeing 0x81a15a0
+Freeing 0x81a1020
+Freeing 0x81a1a50
+Freeing 0x81a16c8
+Freeing 0x81a1f00
+Freeing 0x81a1b50
+Freeing 0x81a23c8
+Freeing 0x81a2078
+Freeing 0x81a28a8
+Freeing 0x81a2588
+Freeing 0x81a32b0
+Freeing 0x81a2f30
+Freeing 0x81b0290
+Freeing 0x81a33c8
+Freeing 0x818b938
+Freeing 0x818ceb0
+Freeing 0x818d4a0
+Freeing 0x81a3b68
+Freeing 0x81afdf8
+Freeing 0x818c808
+Freeing 0x818f878
+Freeing 0x81a1da0
+Freeing 0x81a2730
+Freeing 0x818d210
+Freeing 0x81ae1d8
+Freeing 0x818bd90
+Freeing 0x818bc40
+Freeing 0x81a5ba0
+Freeing 0x818d3b8
+Freeing 0x81a7c70
+Freeing 0x81a85d0
+Freeing 0x81a8f60
+Freeing 0x818b750
+Freeing 0x818d608
+Freeing 0x818cf00
+Freeing 0x818c7d8
+Freeing 0x81a5be8
+Freeing 0x818cc98
+Freeing 0x81a7d50
+Freeing 0x81a86b0
+Freeing 0x81a9040
+Freeing 0x818baf8
+Freeing 0x818d6e8
+Freeing 0x818b958
+Freeing 0x818d368
+Freeing 0x81a3fc8
+Freeing 0x818d708
+Freeing 0x818df98
+Freeing 0x818e8f8
+Freeing 0x818f288
+Freeing 0x818ba18
+Freeing 0x8195fa0
+Freeing 0x81ae828
+Freeing 0x81a5df8
+Freeing 0x81af618
+Freeing 0x818d328
+Freeing 0x81a85a0
+Freeing 0x81a8f00
+Freeing 0x81a9890
+Freeing 0x81ae938
+Freeing 0x8185220
+Freeing 0x818cf00
+Freeing 0x81ae4f0
+Freeing 0x81af8d8
+Freeing 0x81a6230
+Freeing 0x81a85f0
+Freeing 0x81a8f50
+Freeing 0x81a98e0
+Freeing 0x81a5f88
+Freeing 0x818b588
+Freeing 0x818cf00
+Freeing 0x81b0048
+Freeing 0x81a69a0
+Freeing 0x818bdb0
+Freeing 0x81a8ab8
+Freeing 0x81a9238
+Freeing 0x81a9b00
+Freeing 0x818d2b0
+Freeing 0x818cf90
+Freeing 0x81acce8
+Freeing 0x818ca90
+Freeing 0x81af420
+Freeing 0x818bdf0
+Freeing 0x81ab4e8
+Freeing 0x81abe48
+Freeing 0x81ac738
+Freeing 0x8195558
+Freeing 0x81951d8
+Freeing 0x8195810
+Freeing 0x81952e8
+Freeing 0x8195bc8
+Freeing 0x8195768
+Freeing 0x8195e90
+Freeing 0x8195768
+Freeing 0x81961c8
+Freeing 0x8195718
+Freeing 0x8196478
+Freeing 0x8195718
+Freeing 0x8196770
+Freeing 0x8195718
+Freeing 0x8196ad8
+Freeing 0x8196798
+Freeing 0x8196d90
+Freeing 0x8196798
+Freeing 0x8197050
+Freeing 0x8196798
+Freeing 0x81974b0
+Freeing 0x8197170
+Freeing 0x8197780
+Freeing 0x8197170
+Freeing 0x8197ae8
+Freeing 0x81976f0
+Freeing 0x8197f28
+Freeing 0x8197a28
+Freeing 0x81982d0
+Freeing 0x8197a28
+Freeing 0x8198650
+Freeing 0x8198350
+Freeing 0x8198aa8
+Freeing 0x8198538
+Freeing 0x8198d40
+Freeing 0x81988b0
+Freeing 0x8199010
+Freeing 0x8198b88
+Freeing 0x81981c0
+Freeing 0x8185220
+Freeing 0x8116ab0
+Freeing 0x8118c80
+Freeing 0x8098b70
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
 <html>
 <head>
diff --git a/doc/news.html b/doc/news.html
index 781ccc1..94470b6 100644
--- a/doc/news.html
+++ b/doc/news.html
@@ -102,6 +102,13 @@
     Schemas</a> and <a href="http://www.w3.org/TR/xinclude">XInclude</a>
 </li>
 </ul>
+<h3>2.4.26: Oct 18 2002</h3>
+<ul>
+<li>Patches for Windows CE port, improvements on Windows paths handling</li>
+  <li>Fixes to the validation  code (DTD and Schemas), xmlNodeGetPath() ,
+    HTML serialization, Namespace compliance,  and a number of small
+  problems</li>
+</ul>
 <h3>2.4.25: Sep 26 2002</h3>
 <ul>
 <li>A number of bug fixes: XPath, validation, Python bindings, DOM and
diff --git a/doc/xmlio.html b/doc/xmlio.html
index 90e4b1e..eca8e82 100644
--- a/doc/xmlio.html
+++ b/doc/xmlio.html
@@ -248,6 +248,7 @@
 
 
 
+
 } </pre>
   </li>
   <li>And then use it to save the document:
diff --git a/include/libxml/parser.h b/include/libxml/parser.h
index 8f50096..a1c8b37 100644
--- a/include/libxml/parser.h
+++ b/include/libxml/parser.h
@@ -627,15 +627,6 @@
  * Entity substitution default behavior.
  */
 
-#ifdef VMS
-/**
- * xmlSubstituteEntitiesDefaultValue:
- *
- * Global variable controlling the entity substitution default behavior.
- */
-LIBXML_DLL_IMPORT extern int xmlSubstituteEntitiesDefaultVal;
-#define xmlSubstituteEntitiesDefaultValue xmlSubstituteEntitiesDefaultVal
-#endif
 #if 0
 LIBXML_DLL_IMPORT extern int xmlSubstituteEntitiesDefaultValue;
 LIBXML_DLL_IMPORT extern int xmlGetWarningsDefaultValue;
diff --git a/include/libxml/parserInternals.h b/include/libxml/parserInternals.h
index 823dae8..8507442 100644
--- a/include/libxml/parserInternals.h
+++ b/include/libxml/parserInternals.h
@@ -5,9 +5,6 @@
  *
  * daniel@veillard.com
  *
- * 14 Nov 2000 ht - truncated declaration of xmlParseElementChildrenContentDecl 
- * for VMS
- *
  */
 
 #ifndef __XML_PARSER_INTERNALS_H__
@@ -275,15 +272,9 @@
 xmlElementContentPtr	xmlParseElementMixedContentDecl
 						(xmlParserCtxtPtr ctxt,
 						 xmlParserInputPtr inputchk);
-#ifdef VMS
-xmlElementContentPtr	xmlParseElementChildrenContentD
-						(xmlParserCtxtPtr ctxt);
-#define xmlParseElementChildrenContentDecl	xmlParseElementChildrenContentD
-#else
 xmlElementContentPtr	xmlParseElementChildrenContentDecl
 						(xmlParserCtxtPtr ctxt,
 						 xmlParserInputPtr inputchk);
-#endif
 int			xmlParseElementContentDecl(xmlParserCtxtPtr ctxt,
 						 xmlChar *name,
 						 xmlElementContentPtr *result);
diff --git a/include/libxml/tree.h b/include/libxml/tree.h
index efd902a..6759ce9 100644
--- a/include/libxml/tree.h
+++ b/include/libxml/tree.h
@@ -6,8 +6,6 @@
  *
  * daniel@veillard.com
  *
- * 14 Nov 2000 ht - added redefinition of xmlBufferWriteChar for VMS
- *
  */
 
 #ifndef __XML_TREE_H__
@@ -799,14 +797,8 @@
 /*
  * Internal, don't use.
  */
-#ifdef VMS
-void		xmlBufferWriteXmlCHAR	(xmlBufferPtr buf,
-					 const xmlChar *string);
-#define 	xmlBufferWriteCHAR 	xmlBufferWriteXmlCHAR
-#else
 void		xmlBufferWriteCHAR	(xmlBufferPtr buf,
 					 const xmlChar *string);
-#endif
 void		xmlBufferWriteChar	(xmlBufferPtr buf,
 					 const char *string);
 void		xmlBufferWriteQuotedString(xmlBufferPtr buf,
diff --git a/include/libxml/xmlIO.h b/include/libxml/xmlIO.h
index d0ef8d6..e0275b0 100644
--- a/include/libxml/xmlIO.h
+++ b/include/libxml/xmlIO.h
@@ -5,7 +5,6 @@
  *
  * daniel@veillard.com
  *
- * 15 Nov 2000 ht - modified for VMS
  */
 
 #ifndef __XML_IO_H__
@@ -159,17 +158,9 @@
 xmlParserInputBufferPtr
 	xmlAllocParserInputBuffer		(xmlCharEncoding enc);
 
-#ifdef VMS
-xmlParserInputBufferPtr
-	xmlParserInputBufferCreateFname		(const char *URI,
-                                                 xmlCharEncoding enc);
-#define xmlParserInputBufferCreateFilename xmlParserInputBufferCreateFname
-#else
 xmlParserInputBufferPtr
 	xmlParserInputBufferCreateFilename	(const char *URI,
                                                  xmlCharEncoding enc);
-#endif
-
 xmlParserInputBufferPtr
 	xmlParserInputBufferCreateFile		(FILE *file,
                                                  xmlCharEncoding enc);
diff --git a/parser.c b/parser.c
index a10b3e3..75d2221 100644
--- a/parser.c
+++ b/parser.c
@@ -2297,7 +2297,7 @@
     xmlChar *ret = NULL;
     SHRINK;
     GROW;
-    in = CUR_PTR;
+    in = (xmlChar *) CUR_PTR;
     if (*in != '"' && *in != '\'') {
       ctxt->errNo = XML_ERR_ATTRIBUTE_NOT_STARTED;
       if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
@@ -4405,15 +4405,6 @@
 }
 
 /**
- * xmlParseElementChildrenContentD:
- * @ctxt:  an XML parser context
- *
- * VMS version of xmlParseElementChildrenContentDecl()
- *
- * Returns the tree of xmlElementContentPtr describing the element 
- *          hierarchy.
- */
-/**
  * xmlParseElementChildrenContentDecl:
  * @ctxt:  an XML parser context
  *
@@ -4444,11 +4435,7 @@
  *          hierarchy.
  */
 xmlElementContentPtr
-#ifdef VMS
-xmlParseElementChildrenContentD
-#else
 xmlParseElementChildrenContentDecl
-#endif
 (xmlParserCtxtPtr ctxt, xmlParserInputPtr inputchk) {
     xmlElementContentPtr ret = NULL, cur = NULL, last = NULL, op = NULL;
     xmlChar *elem;
diff --git a/parserInternals.c b/parserInternals.c
index ea217ad..41725d5 100644
--- a/parserInternals.c
+++ b/parserInternals.c
@@ -58,12 +58,6 @@
 /*
  * Various global defaults for parsing
  */
-#ifdef VMS
-int xmlSubstituteEntitiesDefaultVal = 0;
-#define xmlSubstituteEntitiesDefaultValue xmlSubstituteEntitiesDefaultVal 
-int xmlDoValidityCheckingDefaultVal = 0;
-#define xmlDoValidityCheckingDefaultValue xmlDoValidityCheckingDefaultVal
-#endif
 
 /**
  * xmlCheckVersion:
diff --git a/python/libxml2class.txt b/python/libxml2class.txt
index cae9a43..e2cbb28 100644
--- a/python/libxml2class.txt
+++ b/python/libxml2class.txt
@@ -151,6 +151,7 @@
 validateNmtokensValue()
 
 # functions from module xmlIO
+checkFilename()
 cleanupInputCallbacks()
 cleanupOutputCallbacks()
 fileMatch()
@@ -492,38 +493,38 @@
 
     # functions from module xpath
     xpathNewContext()
+Class xpathContext()
+    # accessors
+    contextDoc()
+    contextNode()
+    contextPosition()
+    contextSize()
+    function()
+    functionURI()
+    setContextDoc()
+    setContextNode()
+
+    # functions from module python
+    registerXPathFunction()
+
+    # functions from module xpath
+    xpathEval()
+    xpathEvalExpression()
+    xpathFreeContext()
+
+    # functions from module xpathInternals
+    xpathNewParserContext()
+    xpathNsLookup()
+    xpathRegisterAllFunctions()
+    xpathRegisterNs()
+    xpathRegisteredFuncsCleanup()
+    xpathRegisteredNsCleanup()
+    xpathRegisteredVariablesCleanup()
+    xpathVariableLookup()
+    xpathVariableLookupNS()
 
 
 Class xmlAttribute(xmlNode)
-
-
-Class xmlNs(xmlNode)
-
-    # functions from module tree
-    copyNamespace()
-    copyNamespaceList()
-    freeNs()
-    freeNsList()
-    newNodeEatName()
-
-    # functions from module xpathInternals
-    xpathNodeSetFreeNs()
-
-
-Class xmlDtd(xmlNode)
-
-    # functions from module debugXML
-    debugDumpDTD()
-
-    # functions from module tree
-    copyDtd()
-    freeDtd()
-
-    # functions from module valid
-    dtdAttrDesc()
-    dtdElementDesc()
-    dtdQAttrDesc()
-    dtdQElementDesc()
 Class catalog()
 
     # functions from module catalog
@@ -537,6 +538,34 @@
     resolvePublic()
     resolveSystem()
     resolveURI()
+
+
+Class xmlElement(xmlNode)
+
+
+Class xmlAttr(xmlNode)
+
+    # functions from module debugXML
+    debugDumpAttr()
+    debugDumpAttrList()
+
+    # functions from module tree
+    freeProp()
+    freePropList()
+    removeProp()
+Class xmlReg()
+
+    # functions from module xmlregexp
+    regexpExec()
+    regexpFreeRegexp()
+    regexpIsDeterminist()
+    regexpPrint()
+
+
+Class xmlEntity(xmlNode)
+
+    # functions from module parserInternals
+    handleEntity()
 Class xpathParserContext()
     # accessors
     context()
@@ -661,6 +690,44 @@
     stringDecodeEntities()
 
 
+Class xmlDtd(xmlNode)
+
+    # functions from module debugXML
+    debugDumpDTD()
+
+    # functions from module tree
+    copyDtd()
+    freeDtd()
+
+    # functions from module valid
+    dtdAttrDesc()
+    dtdElementDesc()
+    dtdQAttrDesc()
+    dtdQElementDesc()
+
+
+Class xmlNs(xmlNode)
+
+    # functions from module tree
+    copyNamespace()
+    copyNamespaceList()
+    freeNs()
+    freeNsList()
+    newNodeEatName()
+
+    # functions from module xpathInternals
+    xpathNodeSetFreeNs()
+
+
+Class inputBuffer(ioReadWrapper)
+
+    # functions from module xmlIO
+    freeParserInputBuffer()
+    grow()
+    push()
+    read()
+
+
 Class outputBuffer(ioWriteWrapper)
 
     # functions from module xmlIO
@@ -668,34 +735,6 @@
     flush()
     write()
     writeString()
-
-
-Class xmlElement(xmlNode)
-
-
-Class xmlEntity(xmlNode)
-
-    # functions from module parserInternals
-    handleEntity()
-
-
-Class xmlAttr(xmlNode)
-
-    # functions from module debugXML
-    debugDumpAttr()
-    debugDumpAttrList()
-
-    # functions from module tree
-    freeProp()
-    freePropList()
-    removeProp()
-Class xmlReg()
-
-    # functions from module xmlregexp
-    regexpExec()
-    regexpFreeRegexp()
-    regexpIsDeterminist()
-    regexpPrint()
 Class URI()
     # accessors
     authority()
@@ -722,41 +761,3 @@
     parseURIReference()
     printURI()
     saveUri()
-Class xpathContext()
-    # accessors
-    contextDoc()
-    contextNode()
-    contextPosition()
-    contextSize()
-    function()
-    functionURI()
-    setContextDoc()
-    setContextNode()
-
-    # functions from module python
-    registerXPathFunction()
-
-    # functions from module xpath
-    xpathEval()
-    xpathEvalExpression()
-    xpathFreeContext()
-
-    # functions from module xpathInternals
-    xpathNewParserContext()
-    xpathNsLookup()
-    xpathRegisterAllFunctions()
-    xpathRegisterNs()
-    xpathRegisteredFuncsCleanup()
-    xpathRegisteredNsCleanup()
-    xpathRegisteredVariablesCleanup()
-    xpathVariableLookup()
-    xpathVariableLookupNS()
-
-
-Class inputBuffer(ioReadWrapper)
-
-    # functions from module xmlIO
-    freeParserInputBuffer()
-    grow()
-    push()
-    read()
diff --git a/tree.c b/tree.c
index de9b04c..1b18ee9 100644
--- a/tree.c
+++ b/tree.c
@@ -5,10 +5,6 @@
  *
  * daniel@veillard.com
  *
- * 14 Nov 2000 ht - Changed the name of function xmlBufferWriteChar under VMS
- * as it was similar to xmlBufferWriteCHAR when compiling without case
- * sensitivity.
- *  
  */
 
 #define IN_LIBXML
@@ -5797,15 +5793,6 @@
 }
 
 /**
- * xmlBufferWriteXmlCHAR:
- * @buf:  the XML buffer
- * @string:  the string to add
- *
- * For VMS only.
- * routine which manages and grows an output buffer. This one adds
- * xmlChars at the end of the buffer.
- */
-/**
  * xmlBufferWriteCHAR:
  * @buf:  the XML buffer
  * @string:  the string to add
@@ -5814,11 +5801,7 @@
  * xmlChars at the end of the buffer.
  */
 void
-#ifdef VMS
-xmlBufferWriteXmlCHAR
-#else
 xmlBufferWriteCHAR
-#endif
 (xmlBufferPtr buf, const xmlChar *string) {
     xmlBufferCat(buf, string);
 }
diff --git a/triodef.h b/triodef.h
index e9b62e5..73d6431 100644
--- a/triodef.h
+++ b/triodef.h
@@ -46,7 +46,7 @@
 # define TRIO_PLATFORM_UNIX
 #elif defined(TRIO_COMPILER_XLC) || defined(_AIX)
 # define TRIO_PLATFORM_UNIX
-#elif defined(TRIO_COMPILER_DECC) || defined(__osf__)
+#elif ( defined(TRIO_COMPILER_DECC) && !defined(__VMS) ) || defined(__osf__)
 # define TRIO_PLATFORM_UNIX
 #elif defined(__NetBSD__)
 # define TRIO_PLATFORM_UNIX
@@ -82,6 +82,18 @@
 # endif
 #endif
 
+#if defined(TRIO_PLATFORM_VMS)
+ /* The compiler does support C99 but the library still does not have things
+  * the standard requires (like nan() and strtof()) as of __CRTL_VER 70300022.
+  */
+# undef TRIO_COMPILER_SUPPORTS_C99
+
+ /* Computations done with constants at compile time can trigger these
+  * even when compiling with IEEE enabled.
+  */
+#  pragma message disable (UNDERFLOW,FLOATOVERFL)
+#endif /* TRIO_PLATFORM_VMS */
+
 #if defined(_XOPEN_SOURCE)
 # if defined(_XOPEN_SOURCE_EXTENDED)
 #  define TRIO_COMPILER_SUPPORTS_UNIX95
diff --git a/trionan.c b/trionan.c
index 5d63ad7..3a65986 100644
--- a/trionan.c
+++ b/trionan.c
@@ -773,7 +773,7 @@
 
 static TRIO_CONST char *
 getClassification
-TRIO_ARGS1((type)
+TRIO_ARGS1((type),
 	   int type)
 {
   switch (type) {
@@ -794,7 +794,7 @@
 
 static void
 print_class
-TRIO_ARGS2((prefix, number)
+TRIO_ARGS2((prefix, number),
 	   TRIO_CONST char *prefix,
 	   double number)
 {
diff --git a/uri.c b/uri.c
index ef9ca12..5f77837 100644
--- a/uri.c
+++ b/uri.c
@@ -874,7 +874,7 @@
     if (str == NULL)
 	return(NULL);
     len = xmlStrlen(str);
-    if (len <= 0) return(NULL);
+    if (!(len > 0)) return(NULL);
 
     len += 20;
     ret = (xmlChar *) xmlMalloc(len);
diff --git a/vms/build_libxml.com b/vms/build_libxml.com
index 57a46e4..21e554d 100755
--- a/vms/build_libxml.com
+++ b/vms/build_libxml.com
@@ -4,34 +4,35 @@
 $!
 $! Arguments:
 $!
-$!	"NOWARN" - suppress known/expected warnings
-$!   	"DEBUG"  - build everythign in debug
+$!   	"DEBUG"  - build everything in debug
 $!
-$! This procedure creates an object library XMLOLB:LIBXML.OLB directory.  
+$! This procedure creates an object library XML_LIBDIR:LIBXML.OLB directory.  
 $! After the library is built, you can link LIBXML routines into
 $! your code with the command  
 $!
-$!	$ LINK your_modules,XMLOLB:LIBXML.OLB/LIBRARY
+$!	$ LINK your_modules,XML_LIBDIR:LIBXML.OLB/LIBRARY
 $! 
 $! Change History
 $! --------------
 $! Command file author : John A Fotheringham (jaf@jafsoft.com)
-$! Last update         : 2 Nov 2001
+$! Last update         : 28 September 2002	Craig Berry (craigberry@mac.com)
+$!			 updated to work with current sources
+$!			 miscellaneous enhancements to build process
 $!
 $!- configuration -------------------------------------------------------------
 $!
 $!- compile command.  If p1="nowarn" suppress the expected warning types
 $!
+$   cc_opts = "/NAMES=(SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS"
+$!
 $   if p1.eqs."DEBUG" .or. p2.eqs."DEBUG"
 $   then
 $     debug = "Y"
-$     cc_command = "CC/DEBUG/NOOPT"
+$     cc_command = "CC''cc_opts'/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL"
 $   else
 $     debug = "N"
-$     cc_command = "CC"
+$     cc_command = "CC''cc_opts'"
 $   endif
-$   if p1.eqs."NOWARN" then 		-
-      cc_command = cc_command + "/WARN=DISABLE=(FLOATOVERFL,NOMAINUFLO)"
 $!
 $!- list of sources to be built into the LIBXML library.  Compare this list
 $!  to the definition of "libxml2_la_SOURCES" in the file MAKEFILE.IN.
@@ -41,8 +42,9 @@
 $   sources = sources + " tree.c hash.c list.c xmlIO.c xmlmemory.c uri.c valid.c"
 $   sources = sources + " xlink.c HTMLparser.c HTMLtree.c debugXML.c xpath.c "
 $   sources = sources + " xpointer.c xinclude.c nanohttp.c nanoftp.c "
-$   sources = sources + " DOCBparser.c catalog.c globals.c threads.c"
-$   sources = sources + " trio.c strio.c"
+$   sources = sources + " DOCBparser.c catalog.c globals.c threads.c c14n.c "
+$   sources = sources + " xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c "
+$   sources = sources + " triostr.c trio.c"
 $!
 $!- list of main modules to compile and link.  Compare this list to the
 $!  definition of bin_PROGRAMS in MAKEFILE.IN
@@ -52,23 +54,30 @@
 $!- list of test modules to compile and link.  Compare this list to the
 $!  definition of noinst_PROGRAMS in MAKEFILE.
 $!
-$   test_progs = "testSAX testHTML testXPath testURI testDocbook testThreads"
+$   noinst_PROGRAMS = "testSchemas testSAX testHTML testXPath testURI testDocbook " -
+                + "testThreads testC14N testAutomata testRegexp"
 $!
 $!- set up build logicals -----------------------------------------------------\
 $!
-$   if f$trnlnm("XMLOLB").eqs.""
+$!
+$!- start from where the procedure is in case it's submitted in batch ----------\
+$!
+$   whoami = f$parse(f$environment("PROCEDURE"),,,,"NO_CONCEAL")
+$   procdir = f$parse(whoami,,,"DEVICE") + f$parse(whoami,,,"DIRECTORY")
+$   set default 'procdir'
+$!
+$   if f$trnlnm("XML_LIBDIR").eqs.""
 $   then
-$     write sys$output ""
-$     write sys$output "	You need to define a XMLOLB logical directory to"
-$     write sys$output "	point to the directory containing your CMS object"
-$     write sys$output "	libraries.  This should already contain LIBXML.OLB"
-$     write sys$output "	from the libxml package, and will be the directory"
-$     write sys$output "	the new LIBXSLT.OLB library will be placed in"
-$     write sys$output ""
-$     exit
+$     if f$search("[-]lib.dir") .eqs. ""
+$     then
+$       create/directory/log [-.lib]
+$     endif
+$     xml_libdir = f$parse("[-.lib]",,,"DEVICE") + f$parse("[-.lib]",,,"DIRECTORY")
+$     define/process XML_LIBDIR 'xml_libdir'
+$     write sys$output "Defining XML_LIBDIR as """ + f$trnlnm("XML_LIBDIR") + """
 $   endif
 $!
-$   if f$trnlnm("xml_srcdir").eqs.""
+$   if f$trnlnm("XML_SRCDIR").eqs.""
 $   then
 $     globfile = f$search("[-...]globals.c")
 $     if globfile.eqs.""
@@ -76,12 +85,14 @@
 $	write sys$output "Can't locate globals.c.  You need to manually define a XML_SRCDIR logical"
 $	exit
 $     else
-$	srcdir = f$element(0,"]",globfile)+ "]"
-$	define/process xml_srcdir "''srcdir'"
-$       write sys$output "Defining xml_srcdir as ""''srcdir'"""
+$	srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY")
+$	define/process XML_SRCDIR "''srcdir'"
+$       write sys$output "Defining XML_SRCDIR as ""''srcdir'"""
 $     endif
 $   endif
 $!
+$   copy/log config.vms xml_srcdir:config.h
+$!
 $   if f$trnlnm("libxml").eqs."" 
 $   then 
 $     globfile = f$search("[-...]globals.h")
@@ -90,7 +101,7 @@
 $	write sys$output "Can't locate globals.h.  You need to manually define a LIBXML logical"
 $	exit
 $     else
-$	includedir = f$element(0,"]",globfile)+ "]"
+$	includedir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY")
 $	define/process libxml "''includedir'"
 $       write sys$output "Defining libxml as ""''includedir'"""
 $     endif
@@ -106,12 +117,12 @@
 $!- move to the source directory and create any necessary subdirs and the 
 $!  object library
 $!
-$ set def xml_srcdir
+$ set default xml_srcdir
 $ if f$search("DEBUG.DIR").eqs."" then create/dir [.DEBUG]
-$ if f$search("XMLOLB:LIBXML.OLB").eqs."" 
+$ if f$search("XML_LIBDIR:LIBXML.OLB").eqs."" 
 $ then 
-$   write sys$output "Creating new object library XMLOLB:LIBXML.OLB"
-$   library/create XMLOLB:LIBXML.OLB
+$   write sys$output "Creating new object library XML_LIBDIR:LIBXML.OLB"
+$   library/create XML_LIBDIR:LIBXML.OLB
 $ endif
 $!
 $ goto start_here
@@ -119,7 +130,7 @@
 $!
 $!- compile modules into the library ------------------------------------------
 $!
-$ lib_command   = "LIBRARY/REPLACE XMLOLB:LIBXML.OLB"
+$ lib_command   = "LIBRARY/REPLACE/LOG XML_LIBDIR:LIBXML.OLB"
 $ link_command	= ""
 $!
 $ write sys$output ""
@@ -137,17 +148,7 @@
 $!
 $     on error then goto ERROR_OUT 
 $     on control_y then goto ERROR_OUT 
-$     if next_source.eqs."xpath.c"
-$     then
-$	call build 'next_source' /IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE
-$     else
-$       if next_source.eqs."trio.c"
-$       then
-$	  call build 'next_source' /WARN=DISABLE=UNINIT1 
-$	else
-$         call build 'next_source'
-$	endif
-$     endif
+$     call build 'next_source'
 $     s_no = s_no + 1
 $     goto source_loop
 $!
@@ -155,20 +156,23 @@
 $!
 $!- now build self-test programs ----------------------------------------------
 $!
-$! these pograms are built as ordinary modules into XMLOLB:LIBXML.OLB.  Here they
+$! these programs are built as ordinary modules into XML_LIBDIR:LIBXML.OLB.  Here they
 $! are built a second time with /DEFINE=(STANDALONE) in which case a main()
 $! is also compiled into the module
 $ 
 $ lib_command	= ""
 $ link_command	= "LINK"
 $!
+$ library/compress XML_LIBDIR:LIBXML.OLB
+$ purge XML_LIBDIR:LIBXML.OLB
+$!
 $ write sys$output ""
 $ write sys$output "Building STANDALONE self-test programs"
 $ write sys$output ""
 $!
 $ call build NANOFTP.C	/DEFINE=(STANDALONE)
 $ call build NANOHTTP.C	/DEFINE=(STANDALONE)
-$ call build TRIONAN.C	/DEFINE=(STANDALONE)/IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE
+$ call build TRIONAN.C	/DEFINE=(STANDALONE)
 $!
 $!- now build main and test programs ------------------------------------------
 $!
@@ -181,7 +185,7 @@
 $ write sys$output ""
 $!
 $ p_no = 0
-$ all_progs = bin_progs + " " + test_progs
+$ all_progs = bin_progs + " " + noinst_PROGRAMS
 $ all_progs = f$edit(all_progs,"COMPRESS")
 $!
 $ prog_loop:
@@ -192,7 +196,7 @@
 $!
 $     on error then goto ERROR_OUT 
 $     on control_y then goto ERROR_OUT 
-$     call build 'next_prog'.c /IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE
+$     call build 'next_prog'.c
 $     p_no = p_no + 1
 $     goto prog_loop
 $!
@@ -210,7 +214,7 @@
 $EXIT_OUT:
 $!
 $ purge/nolog [.debug]
-$ set def 'saved_default
+$ set default 'saved_default
 $ exit 'exit_status
 $!
 $
@@ -224,12 +228,12 @@
 $BUILD: subroutine
 $   on warning then goto EXIT_BUILD
 $   source_file = p1
-$   name = f$element(0,".",source_file)
-$   object_file = f$fao("[.debug]!AS.OBJ",name)
+$   name = f$parse(source_file,,,"NAME")
+$   object_file = f$parse("[.debug].OBJ",name,,,"SYNTAX_ONLY")
 $!
 $!- compile
 $!
-$   write sys$output "Compiling ",p1," ",p2,"..."
+$   write sys$output "''cc_command'''p2'/object=''object_file' ''source_file'"
 $   cc_command'p2' /object='object_file 'source_file'
 $!
 $!- insert into library if command defined
@@ -239,12 +243,11 @@
 $!- link module if command defined
 $   if link_command.nes."" 
 $   then
-$	text = f$element(0,".",p1)	! lose the ".c"
-$	write sys$output "Linking ",text,"..."
 $	opts = ""
 $	if debug then opts = "/DEBUG"
+$	write sys$output "''link_command'''opts' ''object_file',XML_LIBDIR:libxml.olb/library"
 $	link_command'opts' 'object_file',-
-      		XMLOLB:libxml.olb/library
+      		XML_LIBDIR:libxml.olb/library
 $   endif
 $!
 $EXIT_BUILD:
diff --git a/vms/config.vms b/vms/config.vms
index 2bf4093..e5f3c08 100755
--- a/vms/config.vms
+++ b/vms/config.vms
@@ -1,148 +1,200 @@
-/* config.h  */

-

-#define VMS	1

-

-/* Define if you have the strftime function.  */

-#define HAVE_STRFTIME 	1

-

-/* Define if you have the ANSI C header files.  */

-#define STDC_HEADERS	1

-

-#undef PACKAGE

-#undef VERSION

-#undef HAVE_LIBZ

-#undef HAVE_LIBM

-#undef HAVE_ISINF

-#undef HAVE_ISNAN

-#undef HAVE_LIBHISTORY

-#undef HAVE_LIBREADLINE

-

-/* Define if you have the class function.  */

-#undef HAVE_CLASS

-

-/* Define if you have the finite function.  */

-#undef HAVE_FINITE

-

-/* Define if you have the fp_class function.  */

-#define HAVE_FP_CLASS	1

-

-/* Define if you have the fpclass function.  */

-#undef HAVE_FPCLASS

-

-/* Define if you have the isnand function.  */

-#undef HAVE_ISNAND

-

-/* Define if you have the localtime function.  */

-#define HAVE_LOCALTIME	1

-

-/* Define if you have the snprintf function.  */

-#undef HAVE_SNPRINTF

-

-/* Define if you have the strdup function.  */

-#define HAVE_STRDUP	1

-

-/* Define if you have the strerror function.  */

-#define HAVE_STRERROR	1

-

-/* Define if you have the strftime function.  */

-#define HAVE_STRFTIME	1

-

-/* Define if you have the strndup function.  */

-#undef HAVE_STRNDUP

-

-/* Define if you have the <arpa/inet.h> header file.  */

-#undef HAVE_ARPA_INET_H

-

-/* Define if you have the <ctype.h> header file.  */

-#define HAVE_CTYPE_H	1

-

-/* Define if you have the <dirent.h> header file.  */

-#define HAVE_DIRENT_H	1

-

-/* Define if you have the <errno.h> header file.  */

-#define HAVE_ERRNO_H	1

-

-/* Define if you have the <fcntl.h> header file.  */

-#define HAVE_FCNTL_H	1

-

-/* Define if you have the <float.h> header file.  */

-#define HAVE_FLOAT_H	1

-

-/* Define if you have the <fp_class.h> header file.  */

-#define HAVE_FP_CLASS_H	1

-

-/* Define if you have the <ieeefp.h> header file.  */

-#undef HAVE_IEEEFP_H

-

-/* Define if you have the <malloc.h> header file.  */

-#undef HAVE_MALLOC_H

-

-/* Define if you have the <math.h> header file.  */

-#define HAVE_MATH_H	1

-

-/* Define if you have the <nan.h> header file.  */

-#undef HAVE_NAN_H

-

-/* Define if you have the <ndir.h> header file.  */

-#undef HAVE_NDIR_H

-

-/* Define if you have the <netdb.h> header file.  */

-#define HAVE_NETDB_H	1

-

-/* Define if you have the <netinet/in.h> header file.  */

-#undef HAVE_NETINET_IN_H

-

-/* Define if you have the <stdarg.h> header file.  */

-#define HAVE_STDARG_H	1

-

-/* Define if you have the <stdlib.h> header file.  */

-#define HAVE_STDLIB_H	1

-

-/* Define if you have the <sys/dir.h> header file.  */

-#undef HAVE_SYS_DIR_H

-

-/* Define if you have the <sys/mman.h> header file.  */

-#undef HAVE_SYS_MMAN_H

-

-/* Define if you have the <sys/ndir.h> header file.  */

-#undef HAVE_SYS_NDIR_H

-

-/* Define if you have the <sys/select.h> header file.  */

-#undef HAVE_SYS_SELECT_H

-

-/* Define if you have the <sys/socket.h> header file.  */

-#undef HAVE_SYS_SOCKET_H

-

-/* Define if you have the <sys/stat.h> header file.  */

-#undef HAVE_SYS_STAT_H

-

-/* Define if you have the <sys/time.h> header file.  */

-#undef HAVE_SYS_TIME_H

-

-/* Define if you have the <sys/types.h> header file.  */

-#undef HAVE_SYS_TYPES_H

-

-/* Define if you have the <time.h> header file.  */

-#define HAVE_TIME_H	1

-

-/* Define if you have the <unistd.h> header file.  */

-#define HAVE_UNISTD_H	1

-

-/* Define if you have the <zlib.h> header file.  */

-#undef HAVE_ZLIB_H

-

-/* Define if you have the inet library (-linet).  */

-#undef HAVE_LIBINET

-

-/* Define if you have the nsl library (-lnsl).  */

-#undef HAVE_LIBNSL

-

-/* Define if you have the socket library (-lsocket).  */

-#undef HAVE_LIBSOCKET

-

-/* Name of package */

-#undef PACKAGE

-

-/* Version number of package */

-#undef VERSION

-

+/* config.h  */
+
+#define VMS	1
+
+/* Define if you have the strftime function.  */
+#define HAVE_STRFTIME 	1
+
+/* Define if you have the ANSI C header files.  */
+#define STDC_HEADERS	1
+
+#undef PACKAGE
+#undef VERSION
+#undef HAVE_LIBZ
+#undef HAVE_LIBM
+#undef HAVE_ISINF
+#if defined(_IEEE_FP) && (__CRTL_VER >= 60200000)
+# define HAVE_ISNAN 1
+#endif
+#undef HAVE_LIBHISTORY
+#undef HAVE_LIBREADLINE
+
+/* Define if you have the class function.  */
+#undef HAVE_CLASS
+
+/* Define if you have the finite function.  */
+#undef HAVE_FINITE
+
+/* Define if you have the fp_class function.  */
+#define HAVE_FP_CLASS	1
+
+/* Define if you have the fpclass function.  */
+#undef HAVE_FPCLASS
+
+/* Define if you have the isnand function.  */
+#undef HAVE_ISNAND
+
+/* Define if you have the localtime function.  */
+#define HAVE_LOCALTIME	1
+
+/* Define if you have the snprintf function.  */
+#undef HAVE_SNPRINTF
+
+/* Define if you have the strdup function.  */
+#define HAVE_STRDUP	1
+
+/* Define if you have the strerror function.  */
+#define HAVE_STRERROR	1
+
+/* Define if you have the strftime function.  */
+#define HAVE_STRFTIME	1
+
+/* Define if you have the strndup function.  */
+#undef HAVE_STRNDUP
+
+/* Define if you have the <arpa/inet.h> header file.  */
+#undef HAVE_ARPA_INET_H
+
+/* Define if you have the <ctype.h> header file.  */
+#define HAVE_CTYPE_H	1
+
+/* Define if you have the <dirent.h> header file.  */
+#define HAVE_DIRENT_H	1
+
+/* Define if you have the <errno.h> header file.  */
+#define HAVE_ERRNO_H	1
+
+/* Define if you have the <fcntl.h> header file.  */
+#define HAVE_FCNTL_H	1
+
+/* Define if you have the <float.h> header file.  */
+#define HAVE_FLOAT_H	1
+
+/* Define if you have the <fp_class.h> header file.  */
+#define HAVE_FP_CLASS_H	1
+
+/* Define if you have the <ieeefp.h> header file.  */
+#undef HAVE_IEEEFP_H
+
+/* Define if you have the <malloc.h> header file.  */
+#undef HAVE_MALLOC_H
+
+/* Define if you have the <math.h> header file.  */
+#define HAVE_MATH_H	1
+
+/* Define if you have the <nan.h> header file.  */
+#undef HAVE_NAN_H
+
+/* Define if you have the <ndir.h> header file.  */
+#undef HAVE_NDIR_H
+
+/* Define if you have the <netdb.h> header file.  */
+#define HAVE_NETDB_H	1
+
+/* Define if you have the <netinet/in.h> header file.  */
+#undef HAVE_NETINET_IN_H
+
+/* Define if you have the <stdarg.h> header file.  */
+#define HAVE_STDARG_H	1
+
+/* Define if you have the <stdlib.h> header file.  */
+#define HAVE_STDLIB_H	1
+
+/* Define if you have the <sys/dir.h> header file.  */
+#undef HAVE_SYS_DIR_H
+
+/* Define if you have the <sys/mman.h> header file.  */
+#undef HAVE_SYS_MMAN_H
+
+/* Define if you have the <sys/ndir.h> header file.  */
+#undef HAVE_SYS_NDIR_H
+
+/* Define if you have the <sys/select.h> header file.  */
+#undef HAVE_SYS_SELECT_H
+
+/* Define if you have the <sys/socket.h> header file.  */
+#undef HAVE_SYS_SOCKET_H
+
+/* Define if you have the <sys/stat.h> header file.  */
+#undef HAVE_SYS_STAT_H
+
+/* Define if you have the <sys/time.h> header file.  */
+#undef HAVE_SYS_TIME_H
+
+/* Define if you have the <sys/types.h> header file.  */
+#undef HAVE_SYS_TYPES_H
+
+/* Define if you have the <time.h> header file.  */
+#define HAVE_TIME_H	1
+
+/* Define if you have the <unistd.h> header file.  */
+#define HAVE_UNISTD_H	1
+
+/* Define if you have the <zlib.h> header file.  */
+#undef HAVE_ZLIB_H
+
+/* Define if you have the inet library (-linet).  */
+#undef HAVE_LIBINET
+
+/* Define if you have the nsl library (-lnsl).  */
+#undef HAVE_LIBNSL
+
+/* Define if you have the socket library (-lsocket).  */
+#undef HAVE_LIBSOCKET
+
+/* Name of package */
+#undef PACKAGE
+
+/* Version number of package */
+#undef VERSION
+
+/* Up to this point this is just a hard-wired version of 
+ * config.h.  After this will be anything else we need 
+ * that is VMS-specific.
+ */
+
+/* For best results, compile with /NAMES=(SHORTENED), which requires
+ * DEC C 5.7 or later.  For older compilers, the shortened names below
+ * are the same ones the mangler generates in C 5.7 and later.  These may
+ * work, though there will probably be some conflicts with redefinitions 
+ * in globals.h.
+ */
+
+#if __DECC_VER < 57000000
+/*      0        1         2         3               0        1         2         3
+ *      123456789012345678901234567890123456789      1234567890123456789012345678901 
+ */
+#define __xmlDoValidityCheckingDefaultValue          __xmlDoValidityChecking3qad3pq$
+#define __xmlSubstituteEntitiesDefaultValue          __xmlSubstituteEntities0pij13u$
+#define trio_locale_set_thousand_separator           trio_locale_set_thousan259ikkk$
+#define xmlDoValidityCheckingDefaultValue            xmlDoValidityCheckingDe1bcsei4$
+#define xmlParseBalancedChunkMemoryRecover           xmlParseBalancedChunkMe1lu1e86$
+#define xmlParseElementChildrenContentDecl           xmlParseElementChildren1mp6pcb$
+#define xmlParserInputBufferCreateFilename           xmlParserInputBufferCre36lujn2$
+#define xmlRegisterDefaultInputCallbacks             xmlRegisterDefaultInput3vin0cp$
+#define xmlRegisterDefaultOutputCallbacks            xmlRegisterDefaultOutpu0q443dd$
+#define xmlSubstituteEntitiesDefaultValue            xmlSubstituteEntitiesDe28k2c80$
+#define xmlUCSIsAlphabeticPresentationForms          xmlUCSIsAlphabeticPrese2qr24s3$
+#define xmlUCSIsArabicPresentationFormsB             xmlUCSIsArabicPresentat1gajvg8$
+#define xmlUCSIsArabicPresentationFormsA             xmlUCSIsArabicPresentat3sq1bti$
+#define xmlUCSIsCJKCompatibilityIdeographsSupplement xmlUCSIsCJKCompatibilit0or40ki$
+#define xmlUCSIsCJKCompatibilityIdeographs           xmlUCSIsCJKCompatibilit2nodmc5$
+#define xmlUCSIsCJKSymbolsandPunctuation             xmlUCSIsCJKSymbolsandPu0a3i7ra$
+#define xmlUCSIsCJKUnifiedIdeographsExtensionA       xmlUCSIsCJKUnifiedIdeog11ig3fd$
+#define xmlUCSIsCJKUnifiedIdeographsExtensionB       xmlUCSIsCJKUnifiedIdeog3d22n2n$
+#define xmlUCSIsCombiningDiacriticalMarks            xmlUCSIsCombiningDiacri3tj3nl8$
+#define xmlUCSIsCombiningMarksforSymbols             xmlUCSIsCombiningMarksf3ftqd7s$
+#define xmlUCSIsEnclosedCJKLettersandMonths          xmlUCSIsEnclosedCJKLett0nq67g4$
+#define xmlUCSIsHalfwidthandFullwidthForms           xmlUCSIsHalfwidthandFul047l0a1$
+#define xmlUCSIsHighPrivateUseSurrogates             xmlUCSIsHighPrivateUseS071kh83$
+#define xmlUCSIsIdeographicDescriptionCharacters     xmlUCSIsIdeographicDesc1rovf8g$
+#define xmlUCSIsMathematicalAlphanumericSymbols      xmlUCSIsMathematicalAlp2ag8r44$
+#define xmlUCSIsOpticalCharacterRecognition          xmlUCSIsOpticalCharacte1juuh06$
+#define xmlUCSIsSuperscriptsandSubscripts            xmlUCSIsSuperscriptsand3fi4eup$
+#define xmlUCSIsUnifiedCanadianAboriginalSyllabics   xmlUCSIsUnifiedCanadian0lbvi9b$
+#define xmlValidCtxtNormalizeAttributeValue          xmlValidCtxtNormalizeAt0q11n5f$
+#define xmlXPathRegisteredVariablesCleanup           xmlXPathRegisteredVaria1uvs4uc$
+
+#endif
+
+#define xmlBufferWriteChar xmlBufferWriteChar2
diff --git a/vms/readme.vms b/vms/readme.vms
index 9fe045b..91dddeb 100644
--- a/vms/readme.vms
+++ b/vms/readme.vms
@@ -13,6 +13,7 @@
 John A Fotheringham (jaf@jafsoft.com)
 October 2001
 
+Updated October 2002 by Craig A Berry (craigberry@mac.com)
 
 Installation kit
 ----------------
@@ -39,19 +40,17 @@
 - Don't execute BUILD_LIBXML.COM until you've done all the following
 
   - read these notes
-  - copied CONFIG.VMS to CONFIG.H
   - reviewed the configuration section of BUILD_LIBXML.COM, and in particular
     updated the module lists in line with MAKEFILE
-  - edited XMLVERSION.H so that WITH_TRIO is defined
   - identified the location of the include files, so that you can manually
     set the LIBXML logical if need be.
   - re-read these notes :-p
 
   instructions for all these steps are below.
 
-- the file [.vms]config.vms should be used to replace config.h.  This file
-  contains a number of define statements that identify the software options
-  required under VMS
+- the file [.vms]config.vms is used in lieu of a Configure-generated config.h.  
+  This file contains a number of define statements that identify the software 
+  options required under VMS
 
 - The include files are in a [.INCLUDE.LIBXML] subdirectory.  You need
   a logical "libxml" to point to this so that include statements of the
@@ -104,12 +103,12 @@
   that uses this functionality.  BUILD_LIBXML.COM should do this for you.
 
 - to build in trio support you need the define WITH_TRIO to be set.  This
-  is done by editing xmlversion.h 
+  is done by default for VMS in xmlversion.h 
 
 
 Compiler and linker errors
 --------------------------
-- the DEC C compiler will produce a number of warnings when compiling the
+- the DEC C compiler may produce a number of warnings when compiling the
   C code.  These include
 
     - Implicit function warnings.  These indicate functions whose type is
@@ -117,37 +116,9 @@
       configuration is not correct (e.g. for "snprintf" if you haven't
       edited xmlversion.h to set WITH_TRIO
 
-      These messages also occur for "read" and "write" when compiling trio.c
-
     - uninitialised variables.  Not usually a problem.  You can solve this
       by editing the code to initialise the variables affected
 
-  and with respect to the trionan code
-
-    - no main module for UNDERFLOW_TO_ZERO
-    - float overflow when compiling trionan.c STANDALONE
-
-  You can suppress these "expected" messages by using the compile command
-
-    $ CC /WARN=DISABLE=(FLOATOVERFL,NOMAINUFLO)
-
-  This can be achieved by specifying "NOWARN" as the first command
-  parameter to BUILD_LIBXML as follows
-
-    $ @BUILD_LIBXML NOWARN
-
-- the Linker will report the following error
-
-      %LINK-W-MULDEF, symbol DECC$STRERROR multiply defined
-        in module DECC$SHR file SYS$COMMON:[SYSLIB]DECC$SHR.EXE;5
-
-  This is complaining that DECC$STRERROR is multiply defined, which in turn 
-  is because this system symbol is getting added to LIBXML.OLB when strio.c
-  is compiled.
-
-  I'm not sure what the solution for this is, but this is a fairly benign error.
-
-
 Changes made to the codebase
 ----------------------------
 - I changed all dummy declarations in trio.c to be 
@@ -165,30 +136,8 @@
   This matches similar lines already added to nanohttp.c
 
 - Several variables and function names exceed the 31 character limit 
-  used in VMS.  This leads to compiler warnings.  The solution adopted
-  has been
-
-  a) where variables or functions are defined, set up an ifdef on VMS 
-     to define a variable/function of a shorter name.  This may need to
-     be done in the .h file, and in the implementation .c file
-
-  b) use define statements to map the long name onto a shorter name.  That
-     way all future code can refer to the function/variable by the long name,
-     reducing the need to add VMS-specific code everywhere.
-
-  In the current distro, I had to do this for the following names
-
-  in globals.c, parserinternals.c, globals.h, parser.h
-    xmlSubstituteEntitiesDefaultValue
-    xmlDoValidityCheckingDefaultValue
-
-  in globals.c, globals.h
-    __xmlDoValidityCheckingDefaultValue
-
-  in xmlio.c, xmlio.h
-    xmlRegisterDefaultInputCallbacks
-    xmlRegisterDefaultOutputCallbacks
-
-  in xpath.c and xpathinternals.h
-    xmlXPathRegisteredVariablesCleanup
+  of the VMS linker. The solution adopted has been to use the
+  /NAMES=SHORTENED compiler option, which requires DEC/Compaq C 5.7
+  or later.  For a complete list of the names that needed shortening
+  and the short names generated by the compiler, see [.vms]config.vms.
 
diff --git a/xmlIO.c b/xmlIO.c
index 0972e3f..1bff44a 100644
--- a/xmlIO.c
+++ b/xmlIO.c
@@ -79,11 +79,6 @@
 #endif
 #include <libxml/globals.h>
 
-#ifdef VMS
-#define xmlRegisterDefaultInputCallbacks xmlRegisterDefInputCallbacks
-#define xmlRegisterDefaultOutputCallbacks xmlRegisterDefOutputCallbacks
-#endif
-
 /* #define VERBOSE_FAILURE */
 /* #define DEBUG_EXTERNAL_ENTITIES */
 /* #define DEBUG_INPUT */
@@ -1465,11 +1460,7 @@
  * Registers the default compiled-in I/O handlers.
  */
 void
-#ifdef VMS
-xmlRegisterDefInputCallbacks
-#else
 xmlRegisterDefaultInputCallbacks
-#endif
 (void) {
     if (xmlInputCallbackInitialized)
 	return;
@@ -1499,11 +1490,7 @@
  * Registers the default compiled-in I/O handlers.
  */
 void
-#ifdef VMS
-xmlRegisterDefOutputCallbacks
-#else
 xmlRegisterDefaultOutputCallbacks
-#endif
 (void) {
     if (xmlOutputCallbackInitialized)
 	return;
@@ -1706,8 +1693,6 @@
  * @URI:  a C string containing the URI or filename
  * @enc:  the charset encoding if known
  *
- * VMS version of xmlParserInputBufferCreateFilename()
- *
  * Returns the new parser input or NULL
  */
 /**
@@ -1724,11 +1709,7 @@
  * Returns the new parser input or NULL
  */
 xmlParserInputBufferPtr
-#ifdef VMS
-xmlParserInputBufferCreateFname
-#else
 xmlParserInputBufferCreateFilename
-#endif
 (const char *URI, xmlCharEncoding enc) {
     xmlParserInputBufferPtr ret;
     int i = 0;
diff --git a/xpath.c b/xpath.c
index eac0937..7a39f74 100644
--- a/xpath.c
+++ b/xpath.c
@@ -12,8 +12,6 @@
  *
  * Author: daniel@veillard.com
  *
- * 14 Nov 2000 ht - truncated declaration of xmlXPathEvalRelativeLocationPath
- * for VMS
  */
 
 #define IN_LIBXML
@@ -6913,12 +6911,7 @@
 static void xmlXPathCompileExpr(xmlXPathParserContextPtr ctxt);
 static void xmlXPathCompPredicate(xmlXPathParserContextPtr ctxt, int filter);
 static void xmlXPathCompLocationPath(xmlXPathParserContextPtr ctxt);
-#ifdef VMS
-static void xmlXPathCompRelLocationPath(xmlXPathParserContextPtr ctxt);
-#define xmlXPathCompRelativeLocationPath xmlXPathCompRelLocationPath 
-#else 
 static void xmlXPathCompRelativeLocationPath(xmlXPathParserContextPtr ctxt);
-#endif
 static xmlChar * xmlXPathParseNameComplex(xmlXPathParserContextPtr ctxt,
 	                                  int qualified);
 
@@ -8568,11 +8561,7 @@
  * Compile a relative location path.
  */
 static void
-#ifdef VMS
-xmlXPathCompRelLocationPath
-#else
 xmlXPathCompRelativeLocationPath
-#endif
 (xmlXPathParserContextPtr ctxt) {
     SKIP_BLANKS;
     if ((CUR == '/') && (NXT(1) == '/')) {