------------------------------------------------------------------------ [Date Prev ][Date Next ] [Thread Prev ][Thread Next ] [Date Index ][Thread Index ][Top&Search <../>][Original ] ------------------------------------------------------------------------ RE: XML::Parser on VMS ------------------------------------------------------------------------ * From: "Martin Vorlaender" > * To: > * CC: "'Nico Verwer'" > * Date: Thu, 11 Jan 2001 08:42:05 +0100 * Message-ID: > ------------------------------------------------------------------------ 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 doesn't define. */ +#undef off_t + +/* Define to `unsigned' if 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 header file. */ +#undef HAVE_FCNTL_H + +/* Define if you have the 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 #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 /* 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: mv@pdv-systeme.de One OS to bring them all | http://www.pdv-systeme.de/users/martinv/ And in the Darkness bind them.| home: martin@radiogaga.harz.de ------------------------------------------------------------------------ Follow-Ups from: "Craig A. Berry" References to: "Martin Vorlaender" ------------------------------------------------------------------------ [Date Prev ][Date Next ] [Thread Prev ][Thread Next ] [Date Index ][Thread Index ][Top&Search <../>][Original ] ------------------------------------------------------------------------