I wrote:
> I had a lot of difficulties (and finally gave up) with
> older versions of XML-Parser, but built the latest version 2.30
> (and a separate expat) with a lot less hassle.

Here are the diffs for expat 1.95.1 and XML::Parser 2.30 to build
successfully using DEC C 5.7 and MMK on my VMS VAX 6.2 system.
I hope that MicroCrap Outlook doesn't mangle the diffs.

[Start expat diff]
diff -udrN expat-1_95_1-orig/CONFIG.H expat-1_95_1/CONFIG.H
--- expat-1_95_1-orig/CONFIG.H  Thu Jan  1 00:00:00 1970
+++ expat-1_95_1/CONFIG.H       Sun Nov 26 04:03:03 2000
@@ -0,0 +1,64 @@
+/*================================================================
+** Copyright 2000, Clark Cooper
+** All rights reserved.
+**
+** This is free software. You are permitted to copy, distribute, or modify
+** it under the terms of the MIT/X license (contained in the COPYING file
+** with this distribution.)
+**
+**
+*/
+
+/* Define to empty if the keyword does not work.  */
+#undef const
+
+/* Define if you have a working `mmap' system call.  */
+#undef HAVE_MMAP
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+#undef off_t
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+#undef size_t
+
+/* Define if you have the ANSI C header files.  */
+#define STDC_HEADERS 1
+
+/* Define if your processor stores words with the most significant
+   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
+#undef WORDS_BIGENDIAN
+
+/* Define if you have the bcopy function.  */
+#undef HAVE_BCOPY
+
+/* Define if you have the getpagesize function.  */
+#undef HAVE_GETPAGESIZE
+
+/* Define if you have the memmove function.  */
+#define HAVE_MEMMOVE 1
+
+/* Define if you have the <fcntl.h> header file.  */
+#undef HAVE_FCNTL_H
+
+/* Define if you have the <unistd.h> header file.  */
+#define HAVE_UNISTD_H 1
+
+#define XML_NS
+#define XML_DTD
+
+#ifdef WORDS_BIGENDIAN
+#define XML_BYTE_ORDER 21
+#else
+#define XML_BYTE_ORDER 12
+#endif
+
+#define XML_CONTEXT_BYTES 1024
+
+#ifndef HAVE_MEMMOVE
+#ifdef HAVE_BCOPY
+#define memmove(d,s,l) bcopy((s),(d),(l))
+#else
+#define memmove(d,s,l) ;punting on memmove;
+#endif
+
+#endif
diff -udrN expat-1_95_1-orig/LIB/DESCRIP.MMS expat-1_95_1/LIB/DESCRIP.MMS
--- expat-1_95_1-orig/LIB/DESCRIP.MMS   Thu Jan  1 00:00:00 1970
+++ expat-1_95_1/LIB/DESCRIP.MMS        Sun Nov 26 04:00:54 2000
@@ -0,0 +1,202 @@
+################################################################
+# Process this file with top-level configure script to produce Makefile
+#
+# Copyright 2000 Clark Cooper
+#
+#  This file is part of EXPAT.
+#
+#  EXPAT is free software; you can redistribute it and/or modify it
+#  under the terms of the License (based on the MIT/X license) contained
+#  in the file COPYING that comes with this distribution.
+#
+# EXPAT IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+# SOFTWARE OR THE USE OR OTHER DEALINGS IN EXPAT.
+#
+# 
+# 
+# SHELL = @SHELL@
+# 
+# srcdir = @srcdir@
+# top_srcdir = @top_srcdir@
+# VPATH = @srcdir@
+# prefix = @prefix@
+# exec_prefix = @exec_prefix@
+# 
+# bindir = @bindir@
+# sbindir = @sbindir@
+# libexecdir = @libexecdir@
+# datadir = @datadir@
+# sysconfdir = @sysconfdir@
+# sharedstatedir = @sharedstatedir@
+# localstatedir = @localstatedir@
+# libdir = @libdir@
+# infodir = @infodir@
+# mandir = @mandir@
+# includedir = @includedir@
+# oldincludedir = /usr/include
+# 
+# subdir = lib
+# 
+# DESTDIR =
+# 
+# top_builddir = ..
+# 
+# INSTALL = @INSTALL@
+# INSTALL_PROGRAM = @INSTALL_PROGRAM@
+# INSTALL_SCRIPT = @INSTALL_SCRIPT@
+# INSTALL_DATA = @INSTALL_DATA@
+# 
+# host_alias = @host_alias@
+# host_triplet = @host@
+# AS = @AS@
+# CC = @CC@
+# DLLTOOL = @DLLTOOL@
+# LIBTOOL = @LIBTOOL@
+# LN_S = @LN_S@
+# OBJDUMP = @OBJDUMP@
+# PACKAGE = @PACKAGE@
+PACKAGE = expat
+# RANLIB = @RANLIB@
+# VERSION = @VERSION@
+VERSION = 1.95.1
+#
+O = .obj
+OLB = .olb
+# 
+# LIBRARY = libexpat.la
+LIBRARY = expat$(OLB)
+SOURCES = xmlparse.c xmltok.c xmlrole.c
+# OBJECTS = $(SOURCES:.c=.o)
+OBJECTS = xmlparse$(O) xmltok$(O) xmlrole$(O)
+# LTOBJECTS = $(SOURCES:.c=.lo)
+# 
+TEMPLATES = xmltok_impl.c xmltok_ns.c
+APIHEADER = expat.h
+HEADERS = ascii.h iasciitab.h utf8tab.h xmltok.h asciitab.h latin1tab.h \
+          nametab.h xmldef.h xmlrole.h xmltok_impl.h
+# 
+# mkinstalldirs = $(SHELL) $(top_srcdir)/conftools/mkinstalldirs
+# CONFIG_HEADER = ../config.h
+CONFIG_HEADER = [-]config.h
+# CONFIG_CLEAN_FILES = 
+# 
+# INCLUDES = -I$(srcdir) -I..
+INCLUDES = /INCLUDE=([],[-])
+# DEFS = @DEFS@ -DPACKAGE='"$(PACKAGE)"' -DVERSION='"$(PACKAGE)_$(VERSION)"'
+DEFS = /DEFINE=(PACKAGE="""$(PACKAGE)""",VERSION="""$(PACKAGE)_$(VERSION)""")
+# CPPFLAGS = @CPPFLAGS@
+# LDFLAGS = @LDFLAGS@
+# LIBS = @LIBS@
+# CFLAGS = @CFLAGS@
+# 
+# LIBREVISION = @LIBREVISION@
+LIBREVISION = 0
+# LIBCURRENT  = @LIBCURRENT@
+LIBCURRENT  = 1
+# LIBAGE      = @LIBAGE@
+LIBAGE      = 0
+# 
+COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
+# LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) 
+$(CFLAGS)
+# CCLD = $(CC)
+# LINK = $(LIBTOOL) --mode=link  $(CCLD) -version-info 
+$(LIBCURRENT):$(LIBREVISION):$(LIBAGE) $(CFLAGS) $(LDFLAGS) -o $@
+# DIST_COMMON =  Makefile.in
+# 
+# 
+# DISTFILES = $(DIST_COMMON) $(SOURCES) $(TEMPLATES) $(APIHEADER) $(HEADERS) 
+# 
+# TAR = gtar
+# GZIP_ENV = --best
+# 
+.FIRST :
+       IF F$SEARCH("$(LIBRARY)") .EQS. "" THEN $(LIBR) /CREATE /OBJECT $(LIBRARY)
+
+all : $(LIBRARY)
+# 
+# .SUFFIXES : .c .lo .o
+.SUFFIXES : .c $(OLB) $(O)
+# .PHONY : all clean distclean maintainer-clean
+# 
+# .c$(O) :
+#      @echo '$(COMPILE) -c $<'; \
+#      $(COMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+#      @-cp .deps/$(*F).pp .deps/$(*F).P; \
+#      tr ' ' '\012' < .deps/$(*F).pp \
+#        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+#          >> .deps/$(*F).P; \
+#      rm .deps/$(*F).pp
+.c$(O) :
+       $(COMPILE) $(MMS$SOURCE)
+# 
+# .c.lo :
+#      @echo '$(LTCOMPILE) -c $<'; \
+#      test -d .deps || mkdir .deps ; \
+#      $(LTCOMPILE) -Wp,-MD,.deps/$(*F).pp -c $<
+#      @-sed -e 's/^\([^:]*\)\.o[      ]*:/\1.lo \1.o :/' \
+#        < .deps/$(*F).pp > .deps/$(*F).P; \
+#      tr ' ' '\012' < .deps/$(*F).pp \
+#        | sed -e 's/^\\$$//' -e '/^$$/ d' -e '/:$$/ d' -e 's/$$/ :/' \
+#          >> .deps/$(*F).P; \
+#      rm -f .deps/$(*F).pp
+.c$(OLB) :
+       $(COMPILE) $(MMS$SOURCE)
+       $(LIBR) /REPLACE $(MMS$TARGET) $(MMS$SOURCE_NAME)
+$(O)$(OLB) :
+       $(LIBR) /REPLACE $(MMS$TARGET) $(MMS$SOURCE_NAME)
+# 
+# Makefile : $(srcdir)/Makefile.in  $(top_builddir)/config.status
+#      cd $(top_builddir) \
+#        && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+# 
+# $(top_builddir)/config.status : $(top_builddir)/configure
+#      cd $(top_builddir) && $(MAKE) config.status
+# 
+# $(top_builddir)/config.h : $(top_builddir)/config.hin
+#      cd $(top_builddir) && $(MAKE) config.h
+# 
+# clean :
+#      rm -f $(LIBRARY) *.o *.lo *~
+#      rm -rf .libs _libs .deps
+clean :
+       DELETE $(LIBRARY);*,*$(O);*
+# 
+# distclean : clean
+#      rm -f Makefile
+# 
+# maintainer-clean : distclean
+# 
+# install : $(LIBRARY) $(APIHEADER)
+#      $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir)
+#      $(LIBTOOL)  --mode=install $(INSTALL) $(LIBRARY) $(DESTDIR)$(libdir)/$(LIBRARY)
+#      $(INSTALL_DATA) $(APIHEADER) $(DESTDIR)$(includedir)
+# 
+# uninstall :
+#      $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(LIBRARY);
+#      rm -f $(DESTDIR)$(libdir)/$(APIHEADER)
+# 
+# $(LIBRARY) : $(LTOBJECTS)
+#      $(LINK) -rpath $(libdir) $(LDFLAGS) $(LTOBJECTS)
+$(LIBRARY) : $(LIBRARY)( $(OBJECTS) )
+       $(LIBR) /COMPRESS $(MMS$TARGET)
+# 
+# xmlparse.o \
+# xmlparse.lo : xmlparse.c expat.h xmlrole.h xmltok.h $(top_builddir)/config.h
+xmlparse$(O) : xmlparse.c expat.h xmlrole.h xmltok.h [-]config.h
+# 
+# xmlrole.o \
+# xmlrole.lo : xmlrole.c ascii.h xmlrole.h $(top_builddir)/config.h
+xmlrole$(O) : xmlrole.c ascii.h xmlrole.h [-]config.h
+# 
+# xmltok.o \
+# xmltok.lo : xmltok.c xmltok_impl.c xmltok_ns.c \
+#           ascii.h asciitab.h iasciitab.h latin1tab.h nametab.h utf8tab.h \
+#           xmltok.h xmltok_impl.h $(top_builddir)/config.h
+xmltok$(O) : xmltok.c xmltok_impl.c xmltok_ns.c \
+          ascii.h asciitab.h iasciitab.h latin1tab.h nametab.h utf8tab.h \
+          xmltok.h xmltok_impl.h [-]config.h
+
diff -udrN expat-1_95_1-orig/LIB/EXPAT.H expat-1_95_1/LIB/EXPAT.H
--- expat-1_95_1-orig/LIB/EXPAT.H       Sun Oct 22 19:47:34 2000
+++ expat-1_95_1/LIB/EXPAT.H    Sun Nov 26 04:08:26 2000
@@ -6,6 +6,15 @@
 #ifndef XmlParse_INCLUDED
 #define XmlParse_INCLUDED 1
 
+#ifdef __VMS
+/*      0        1         2         3      0        1         2         3
+        1234567890123456789012345678901     1234567890123456789012345678901 */
+#define XML_SetProcessingInstructionHandler XML_SetProcessingInstrHandler   
+#define XML_SetUnparsedEntityDeclHandler    XML_SetUnparsedEntDeclHandler   
+#define XML_SetStartNamespaceDeclHandler    XML_SetStartNamespcDeclHandler  
+#define XML_SetExternalEntityRefHandlerArg  XML_SetExternalEntRefHandlerArg 
+#endif
+
 #include <stdlib.h>
 
 #ifndef XMLPARSEAPI
diff -udrN expat-1_95_1-orig/LIB/XMLPARSE.C expat-1_95_1/LIB/XMLPARSE.C
--- expat-1_95_1-orig/LIB/XMLPARSE.C    Sun Oct 22 19:47:34 2000
+++ expat-1_95_1/LIB/XMLPARSE.C Sun Nov 26 04:05:04 2000
@@ -6,6 +6,10 @@
 static char RCSId[]
   = "$Header: /cvsroot/expat/expat/lib/xmlparse.c,v 1.11 2000/10/22 19:20:23 coopercc 
Exp $";
 
+#ifdef __VMS
+#include <string.h> /* memset(), memcpy() */
+#endif
+
 #ifdef COMPILED_FROM_DSP
 #  include "winconfig.h"
 #  define XMLPARSEAPI __declspec(dllexport)
diff -udrN expat-1_95_1-orig/LIB/XMLROLE.H expat-1_95_1/LIB/XMLROLE.H
--- expat-1_95_1-orig/LIB/XMLROLE.H     Sun Oct 22 19:47:34 2000
+++ expat-1_95_1/LIB/XMLROLE.H  Sun Nov 26 04:08:26 2000
@@ -6,6 +6,12 @@
 #ifndef XmlRole_INCLUDED
 #define XmlRole_INCLUDED 1
 
+#ifdef __VMS
+/*      0        1         2         3      0        1         2         3
+        1234567890123456789012345678901     1234567890123456789012345678901 */
+#define XmlPrologStateInitExternalEntity    XmlPrologStateInitExternalEnt   
+#endif
+
 #include "xmltok.h"
 
 #ifdef __cplusplus
[End expat diff]

[Start XML::Parser diff]
--- xml-parser-2_30-orig/EXPAT/EXPAT.XS Thu Oct  5 16:35:44 2000
+++ xml-parser-2_30/EXPAT/EXPAT.XS      Sun Nov 26 04:20:13 2000
@@ -1023,7 +1023,7 @@
 
        if (SvTRUE(ERRSV)) {
          char *hold;
-         int   len;
+         unsigned int   len;
 
          POPs;
          hold = SvPV(ERRSV, len);
[End XML::Parser diff]

Isn't that last bit nice? :-))

Hope it helps,
  Martin
-- 
One OS to rule them all       | Martin Vorlaender  |  VMS & WNT programmer
One OS to find them           | work: [EMAIL PROTECTED]
One OS to bring them all      |    http://www.pdv-systeme.de/users/martinv/
And in the Darkness bind them.| home: [EMAIL PROTECTED] 

Reply via email to