]> granicus.if.org Git - libexpat/commitdiff
*** empty log message ***
authorSteven Solie <ssolie@users.sourceforge.net>
Sat, 24 Dec 2005 06:39:56 +0000 (06:39 +0000)
committerSteven Solie <ssolie@users.sourceforge.net>
Sat, 24 Dec 2005 06:39:56 +0000 (06:39 +0000)
expat/amiga/Makefile
expat/amiga/README.txt
expat/amiga/expat.xml [new file with mode: 0644]
expat/amiga/expat_lib.c [new file with mode: 0755]
expat/amiga/expat_vectors.c [new file with mode: 0644]
expat/amiga/launch.c [new file with mode: 0755]
expat/amiga/stdlib.c [new file with mode: 0755]
expat/xmlwf/xmlfile.c
expat/xmlwf/xmlwf.c

index 4801e60988aa8113637f164e98d9a9cd887aec04..97b57237145c6505ccd4d5e82211981860554cf8 100644 (file)
 # Makefile for AmigaOS
 #
 
-.PHONY: help all check clean install uninstall
+.PHONY: help all staticlib sharedlib check clean install
 
-tooldir = SDK:C
-includedir = SDK:Local/clib2/include
-libdir = SDK:Local/clib2/lib
+vpath %.c ../lib ../examples ../xmlwf ../tests
+vpath %.h ../lib ../tests
+
+
+#
+# Set these for SDK installation.
+#
+tooldir = SDK:Local/C
+staticlibdir = SDK:Local/clib2/lib
+staticincludedir = SDK:Local/clib2/include
+sharedlibdir = LIBS:
+sharedincludedir = SDK:Local/common/include
+
+
+ifeq ($(MAKECMDGOALS), staticlib)
+ DESTDIR = lib
+else
+ DESTDIR = libs
+endif
+
+STATICLIB = $(DESTDIR)/libexpat.a
+SHAREDLIB = $(DESTDIR)/expat.library
+
+XMLWF = $(DESTDIR)/xmlwf
+ELEMENTS = $(DESTDIR)/elements
+OUTLINE = $(DESTDIR)/outline
+RUNTESTS = $(DESTDIR)/runtests
+BENCHMARK = $(DESTDIR)/benchmark
 
-LIBRARY = libexpat.a
 
 help:
-       @echo "Expat XML Parser"
-       @echo ""
-       @echo "Requirements:"
-       @echo "- AmigaOS 4.0"
-       @echo "- SDK 51.5"
-       @echo "- clib2 1.188"
+       @echo "Requires:"
+       @echo " AmigaOS 4.0"
+       @echo " SDK 51.15"
+       @echo " clib2 1.198"
        @echo ""
        @echo "Targets:"
-       @echo "all - build expat lib, all tools, test suite and run tests"
-       @echo "check - run test suite"
-       @echo "clean - clean all product files"
-       @echo "install - install expat lib and headers in SDK"
-       @echo "uninstall - uninstall expat lib and headers"
+       @echo " all     - make expat libraries, xmlwf, examples and run test suite"
+       @echo " install - install expat libraries and tools into SDK"
+
+all:
+       $(MAKE) staticlib
+       $(MAKE) sharedlib
 
-all: $(LIBRARY) xmlwf elements outline check benchmark
+staticlib: $(STATICLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check
+       @echo done
 
-check: runtests
-       runtests
+sharedlib: $(SHAREDLIB) $(XMLWF) $(ELEMENTS) $(OUTLINE) $(RUNTESTS) $(BENCHMARK) check
+       @echo done
+
+check:
+       $(RUNTESTS)
 
 clean:
-       -delete /lib/#?.o quiet
-       -delete /xmlwf/#?.o quiet
-       -delete /examples/#?.o quiet
-       -delete /tests/#?.o quiet
-       -delete $(LIBRARY) xmlwf runtests elements outline benchmark quiet
-
-install: xmlwf $(LIBRARY)
-       copy xmlwf $(tooldir) quiet
-       copy /lib/expat.h /lib/expat_external.h $(includedir) quiet
-       copy $(LIBRARY) $(libdir) quiet
-
-uninstall:
-       -delete $(tooldir)/xmlwf quiet
-       -delete $(includedir)/expat.h $(includedir)/expat_external.h quiet
-       -delete $(libdir)/$(LIBRARY) quiet
+       -delete lib/#?.o quiet
+       -delete libs/#?.o quiet
+
+install:
+       copy lib/xmlwf $(tooldir) quiet
+       copy /lib/expat.h /lib/expat_external.h $(staticincludedir) quiet
+       copy lib/libexpat.a $(staticlibdir) quiet
+       copy libs/expat.library $(sharedlibdir) quiet
+       copy include $(sharedincludedir) quiet all
+
 
 CC = gcc
 LIBTOOL = ar
 STRIP = strip
-LIBDIR = /lib
 
-INCLUDES = -I../lib
 LDFLAGS =
+LIBS =
 CFLAGS = -DNDEBUG -O2
 LTFLAGS = -crs
 STRIPFLAGS = -R.comment
+LAUNCH =
 
-COMPILE = $(CC) $(CFLAGS) $(INCLUDES)
+ifeq ($(MAKECMDGOALS), staticlib)
+ LIBS += $(STATICLIB)
+ INCLUDES = -I../lib
+endif
 
-LINK_LIB = $(LIBTOOL) $(LTFLAGS)
+ifeq ($(MAKECMDGOALS), sharedlib)
+ CFLAGS += -DAMIGA_SHARED_LIB -D__USE_INLINE__
+ INCLUDES = -I. -Iinclude -Iinclude/libraries
+ LAUNCH = $(DESTDIR)/launch.o
+endif
 
-LINK_EXE = $(COMPILE) $(LDFLAGS) -o $@
 
-LIB_OBJS = $(LIBDIR)/xmlparse.o $(LIBDIR)/xmltok.o $(LIBDIR)/xmlrole.o
-LIB_LINK_OBJS = $(subst $(LIBDIR),..$(LIBDIR),$(LIB_OBJS))
-$(LIBRARY): $(LIB_OBJS)
-       $(LINK_LIB) $@ $(LIB_LINK_OBJS)
+COMPILE = $(CC) $(CFLAGS) $(INCLUDES) -c
 
-$(LIBDIR)/xmlparse.o: $(LIBDIR)/xmlparse.c $(LIBDIR)/expat.h \
-       $(LIBDIR)/xmlrole.h $(LIBDIR)/xmltok.h $(LIBDIR)/expat_external.h \
-       $(LIBDIR)/internal.h $(LIBDIR)/amigaconfig.h
+LINK = $(CC) $(LDFLAGS) -o $@
 
-$(LIBDIR)/xmlrole.o: $(LIBDIR)/xmlrole.c $(LIBDIR)/ascii.h \
-       $(LIBDIR)/xmlrole.h $(LIBDIR)/expat_external.h $(LIBDIR)/internal.h \
-       $(LIBDIR)/amigaconfig.h
 
-$(LIBDIR)/xmltok.o: $(LIBDIR)/xmltok.c $(LIBDIR)/xmltok_impl.c \
-       $(LIBDIR)/xmltok_ns.c $(LIBDIR)/ascii.h $(LIBDIR)/asciitab.h \
-       $(LIBDIR)/iasciitab.h $(LIBDIR)/latin1tab.h $(LIBDIR)/nametab.h \
-       $(LIBDIR)/utf8tab.h $(LIBDIR)/xmltok.h $(LIBDIR)/xmltok_impl.h \
-       $(LIBDIR)/expat_external.h $(LIBDIR)/internal.h $(LIBDIR)/amigaconfig.h
+$(STATICLIB): $(DESTDIR)/xmlparse.o $(DESTDIR)/xmltok.o $(DESTDIR)/xmlrole.o
+       $(LIBTOOL) $(LTFLAGS) $@ $^
 
-XMLWF_OBJS = /xmlwf/xmlwf.o /xmlwf/xmlfile.o /xmlwf/codepage.o /xmlwf/readfilemap.o
-XMLWF_LINK_OBJS = $(subst /xmlwf/,../xmlwf/,$(XMLWF_OBJS))
-/xmlwf/xmlwf.o: /xmlwf/xmlwf.c
-/xmlwf/xmlfile.o: /xmlwf/xmlfile.c
-/xmlwf/codepage.o: /xmlwf/codepage.c
-/xmlwf/readfilemap.o: /xmlwf/readfilemap.c
-xmlwf: $(XMLWF_OBJS) $(LIBRARY)
-       $(LINK_EXE) $(XMLWF_LINK_OBJS) $(LIBRARY) -lm
-       $(STRIP) $(STRIPFLAGS) $@
+$(DESTDIR)/xmlparse.o: xmlparse.c expat.h xmlrole.h xmltok.h \
+       expat_external.h internal.h amigaconfig.h
+       $(COMPILE) $< -o $@
+
+$(DESTDIR)/xmlrole.o: xmlrole.c ascii.h xmlrole.h expat_external.h \
+       internal.h amigaconfig.h
+       $(COMPILE) $< -o $@
+
+$(DESTDIR)/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 \
+       expat_external.h internal.h amigaconfig.h
+       $(COMPILE) $< -o $@
+
+
+$(SHAREDLIB): $(DESTDIR)/expat_lib.o $(DESTDIR)/expat_vectors.o $(DESTDIR)/stdlib.o lib/libexpat.a
+       $(LINK) -nostartfiles -nostdlib -o $@ $^
+
+$(DESTDIR)/expat_lib.o: expat_lib.c
+       $(COMPILE) $< -o $@
 
-/examples/elements.o: /examples/elements.c
-elements: /examples/elements.o $(LIBRARY)
-       $(LINK_EXE) ../examples/elements.o $(LIBRARY) -lm
+$(DESTDIR)/expat_vectors.o: expat_vectors.c
+       $(COMPILE) $< -o $@
+
+$(DESTDIR)/stdlib.o: stdlib.c
+       $(COMPILE) $< -o $@
+
+$(LAUNCH): launch.c
+       $(COMPILE) $< -o $@
+
+
+$(XMLWF): $(DESTDIR)/xmlwf.o $(DESTDIR)/xmlfile.o $(DESTDIR)/codepage.o $(DESTDIR)/readfilemap.o $(LAUNCH)
+       $(LINK) $^ $(LIBS)
        $(STRIP) $(STRIPFLAGS) $@
 
-/examples/outline.o: /examples/outline.c
-outline: /examples/outline.o $(LIBRARY)
-       $(LINK_EXE) ../examples/outline.o $(LIBRARY) -lm
+$(DESTDIR)/xmlwf.o: xmlwf.c
+       $(COMPILE) $< -o $@
+
+$(DESTDIR)/xmlfile.o: xmlfile.c
+       $(COMPILE) $< -o $@
+
+$(DESTDIR)/codepage.o: codepage.c
+       $(COMPILE) $< -o $@
+
+$(DESTDIR)/readfilemap.o: readfilemap.c
+       $(COMPILE) $< -o $@
+
+
+$(ELEMENTS): $(DESTDIR)/elements.o $(LAUNCH)
+       $(LINK) $^ $(LIBS)
        $(STRIP) $(STRIPFLAGS) $@
 
-/tests/benchmark/benchmark.o: /tests/benchmark/benchmark.c
-benchmark: /tests/benchmark/benchmark.o $(LIBRARY)
-       $(LINK_EXE) ../tests/benchmark/benchmark.o $(LIBRARY) -lm
+$(DESTDIR)/elements.o: elements.c
+       $(COMPILE) $< -o $@
+
+
+$(OUTLINE): $(DESTDIR)/outline.o $(LAUNCH)
+       $(LINK) $^ $(LIBS)
        $(STRIP) $(STRIPFLAGS) $@
 
-/tests/chardata.o: /tests/chardata.c /tests/chardata.h
-/tests/minicheck.o: /tests/minicheck.c /tests/minicheck.h
-/tests/runtests.o: /tests/runtests.c /tests/chardata.h
-runtests: /tests/runtests.o /tests/chardata.o /tests/minicheck.o $(LIBRARY)
-       $(LINK_EXE) ../tests/runtests.o ../tests/chardata.o ../tests/minicheck.o $(LIBRARY) -lm
+$(DESTDIR)/outline.o: outline.c
+       $(COMPILE) $< -o $@
+
+
+$(RUNTESTS): $(DESTDIR)/runtests.o $(DESTDIR)/chardata.o $(DESTDIR)/minicheck.o $(LAUNCH)
+       $(LINK) $^ $(LIBS)
+
+$(DESTDIR)/chardata.o: chardata.c chardata.h
+       $(COMPILE) $< -o $@
+
+$(DESTDIR)/minicheck.o: minicheck.c minicheck.h
+       $(COMPILE) $< -o $@
+
+$(DESTDIR)/runtests.o: runtests.c chardata.h
+       $(COMPILE) $< -o $@
+
+
+$(BENCHMARK): $(DESTDIR)/benchmark.o $(LAUNCH)
+       $(LINK) $^ $(LIBS) -lm
 
-%.o: %.c
-       $(COMPILE) -o ..$@ -c ..$<
+$(DESTDIR)/benchmark.o: benchmark/benchmark.c
+       $(COMPILE) $< -o $@
index 4df538e6b6da613f3a2efb3a871dfd09062b904b..945af5c6b65d66d63bdd3a3fc2f73d8bcd3742d2 100644 (file)
@@ -1,36 +1,53 @@
-Short:    Expat XML parsing library
-Author:   James Clark
-Uploader: ssolie@telus.net (Steven Solie)
-Type:     dev/misc
-Version:  1.95.8
-Requires: AmigaOS 4.0, SDK 51.5, clib2 1.188
+SUMMARY
+=======
+This is a port of expat for AmigaOS 4.0 which includes the
+SDK, some XML tools and the libraries.
 
-This is a port of expat for AmigaOS 4.0 PPC.
+Both static and shared library versions are supported.
 
-Currently clib2 is supported although it should be possible to use
-the library with newlib (e.g. add the -newlib option to GCC).
+The static library version is limited to clib2 although it should
+be possible to use newlib with the appopriate compile options.
 
+The shared library version is based on the work of Fredrik Wikstrom
+and is currently limited to PPC only.
 
-Building:
----------
-To build expat library, xmlwf tool, examples and run the test suite,
-simply type 'make all'.
 
-To install expat into the AmigaOS SDK type 'make install'.
+HISTORY
+=======
+3.1  - removed obsolete sfd file
+     - added library description xml file
+     - refactored Makefile
+     - removed extraneous VARARGS68K keywords
+     - reworked default memory handling functions in shared lib
+     - updated amigaconfig.h
 
-To uninstall expat, type 'make uninstall'.
+3.0  - initial release
+     - based on expat 1.95.8
 
-To run the test suite, type 'make check'.
 
+BUILDING
+========
+To build expat.library, xmlwf tool, examples and run the test suite,
+simply type 'make all' in the amiga subdirectory.
 
-Configuration:
---------------
-You may want to edit the lib/amigaconfig.h file to remove DTD and/or
-XML namespace support if they are not required by your application
-for a slightly smaller and faster implementation.
+The test suite will compile and run for both the static and shared
+library versions.
 
 
-To Do:
-------
+INSTALLATION
+============
+To install both static and shared versions of expat into the
+AmigaOS SDK type 'make install' in the amiga subdirectory.
+
+
+CONFIGURATION
+=============
+You may want to edit the lib/amigaconfig.h file to remove
+DTD and/or XML namespace support if they are not required by your
+specific application for a smaller and faster implementation.
+
+
+TO DO
+=====
 - wide character support (UTF-16)
-- create a shared library option
+- provide 68k backwards compatibility
diff --git a/expat/amiga/expat.xml b/expat/amiga/expat.xml
new file mode 100644 (file)
index 0000000..d6aeae2
--- /dev/null
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE library SYSTEM "library.dtd">
+<!-- autogenerated by fdtrans v51.16 -->
+<library name="expat" basename="ExpatBase" basetype="Library" openname="expat.library">
+       <include>libraries/expat.h</include>
+       <interface name="main" version="1.0" struct="ExpatIFace" prefix="_Expat_" asmprefix="IExpat" global="IExpat">
+               <method name="Obtain" result="uint32"/>
+               <method name="Release" result="uint32"/>
+               <method name="Expunge" result="void" status="unimplemented"/>
+               <method name="Clone" result="struct Interface *" status="unimplemented"/>
+               <method name="XML_ParserCreate" result="XML_Parser">
+                       <arg name="encodingName" type="const XML_Char *"/>
+               </method>
+               <method name="XML_ParserCreateNS" result="XML_Parser">
+                       <arg name="encodingName" type="const XML_Char *"/>
+                       <arg name="nsSep" type="XML_Char"/>
+               </method>
+               <method name="XML_ParserCreate_MM" result="XML_Parser">
+                       <arg name="encoding" type="const XML_Char *"/>
+                       <arg name="memsuite" type="const XML_Memory_Handling_Suite *"/>
+                       <arg name="namespaceSeparator" type="const XML_Char *"/>
+               </method>
+               <method name="XML_ExternalEntityParserCreate" result="XML_Parser">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="context" type="const XML_Char *"/>
+                       <arg name="encoding" type="const XML_Char *"/>
+               </method>
+               <method name="XML_ParserFree" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_Parse" result="enum XML_Status">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="s" type="const char *"/>
+                       <arg name="len" type="int"/>
+                       <arg name="isFinal" type="int"/>
+               </method>
+               <method name="XML_ParseBuffer" result="enum XML_Status">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="len" type="int"/>
+                       <arg name="isFinal" type="int"/>
+               </method>
+               <method name="XML_GetBuffer" result="void *">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="len" type="int"/>
+               </method>
+               <method name="XML_SetStartElementHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="start" type="XML_StartElementHandler"/>
+               </method>
+               <method name="XML_SetEndElementHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="end" type="XML_EndElementHandler"/>
+               </method>
+               <method name="XML_SetElementHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="start" type="XML_StartElementHandler"/>
+                       <arg name="end" type="XML_EndElementHandler"/>
+               </method>
+               <method name="XML_SetCharacterDataHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_CharacterDataHandler"/>
+               </method>
+               <method name="XML_SetProcessingInstructionHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_ProcessingInstructionHandler"/>
+               </method>
+               <method name="XML_SetCommentHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_CommentHandler"/>
+               </method>
+               <method name="XML_SetStartCdataSectionHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="start" type="XML_StartCdataSectionHandler"/>
+               </method>
+               <method name="XML_SetEndCdataSectionHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="end" type="XML_EndCdataSectionHandler"/>
+               </method>
+               <method name="XML_SetCdataSectionHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="start" type="XML_StartCdataSectionHandler"/>
+                       <arg name="end" type="XML_EndCdataSectionHandler"/>
+               </method>
+               <method name="XML_SetDefaultHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_DefaultHandler"/>
+               </method>
+               <method name="XML_SetDefaultHandlerExpand" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_DefaultHandler"/>
+               </method>
+               <method name="XML_SetExternalEntityRefHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_ExternalEntityRefHandler"/>
+               </method>
+               <method name="XML_SetExternalEntityRefHandlerArg" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="arg" type="void *"/>
+               </method>
+               <method name="XML_SetUnknownEncodingHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_UnknownEncodingHandler"/>
+                       <arg name="data" type="void *"/>
+               </method>
+               <method name="XML_SetStartNamespaceDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="start" type="XML_StartNamespaceDeclHandler"/>
+               </method>
+               <method name="XML_SetEndNamespaceDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="end" type="XML_EndNamespaceDeclHandler"/>
+               </method>
+               <method name="XML_SetNamespaceDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="start" type="XML_StartNamespaceDeclHandler"/>
+                       <arg name="end" type="XML_EndNamespaceDeclHandler"/>
+               </method>
+               <method name="XML_SetXmlDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_XmlDeclHandler"/>
+               </method>
+               <method name="XML_SetStartDoctypeDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="start" type="XML_StartDoctypeDeclHandler"/>
+               </method>
+               <method name="XML_SetEndDoctypeDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="end" type="XML_EndDoctypeDeclHandler"/>
+               </method>
+               <method name="XML_SetDoctypeDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="start" type="XML_StartDoctypeDeclHandler"/>
+                       <arg name="end" type="XML_EndDoctypeDeclHandler"/>
+               </method>
+               <method name="XML_SetElementDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="eldecl" type="XML_ElementDeclHandler"/>
+               </method>
+               <method name="XML_SetAttlistDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="attdecl" type="XML_AttlistDeclHandler"/>
+               </method>
+               <method name="XML_SetEntityDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_EntityDeclHandler"/>
+               </method>
+               <method name="XML_SetUnparsedEntityDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_UnparsedEntityDeclHandler"/>
+               </method>
+               <method name="XML_SetNotationDeclHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_NotationDeclHandler"/>
+               </method>
+               <method name="XML_SetNotStandaloneHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_NotStandaloneHandler"/>
+               </method>
+               <method name="XML_GetErrorCode" result="enum XML_Error">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_ErrorString" result="const XML_LChar *">
+                       <arg name="code" type="enum XML_Error"/>
+               </method>
+               <method name="XML_GetCurrentByteIndex" result="long">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_GetCurrentLineNumber" result="int">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_GetCurrentColumnNumber" result="int">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_GetCurrentByteCount" result="int">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_GetInputContext" result="const char *">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="offset" type="int *"/>
+                       <arg name="size" type="int *"/>
+               </method>
+               <method name="XML_SetUserData" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="userData" type="void *"/>
+               </method>
+               <method name="XML_DefaultCurrent" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_UseParserAsHandlerArg" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_SetBase" result="enum XML_Status">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="base" type="const XML_Char *"/>
+               </method>
+               <method name="XML_GetBase" result="const XML_Char *">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_GetSpecifiedAttributeCount" result="int">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_GetIdAttributeIndex" result="int">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_SetEncoding" result="enum XML_Status">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="encoding" type="const XML_Char *"/>
+               </method>
+               <method name="XML_SetParamEntityParsing" result="int">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="parsing" type="enum XML_ParamEntityParsing"/>
+               </method>
+               <method name="XML_SetReturnNSTriplet" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="do_nst" type="int"/>
+               </method>
+               <method name="XML_ExpatVersion" result="const XML_LChar *">
+               </method>
+               <method name="XML_ExpatVersionInfo" result="XML_Expat_Version">
+               </method>
+               <method name="XML_ParserReset" result="XML_Bool">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="encoding" type="const XML_Char *"/>
+               </method>
+               <method name="XML_SetSkippedEntityHandler" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="handler" type="XML_SkippedEntityHandler"/>
+               </method>
+               <method name="XML_UseForeignDTD" result="enum XML_Error">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="useDTD" type="XML_Bool"/>
+               </method>
+               <method name="XML_GetFeatureList" result="const XML_Feature *">
+               </method>
+               <method name="XML_StopParser" result="enum XML_Status">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="resumable" type="XML_Bool"/>
+               </method>
+               <method name="XML_ResumeParser" result="enum XML_Status">
+                       <arg name="parser" type="XML_Parser"/>
+               </method>
+               <method name="XML_GetParsingStatus" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="status" type="XML_ParsingStatus *"/>
+               </method>
+               <method name="XML_FreeContentModel" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="model" type="XML_Content *"/>
+               </method>
+               <method name="XML_MemMalloc" result="void *">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="size" type="size_t"/>
+               </method>
+               <method name="XML_MemRealloc" result="void *">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="ptr" type="void *"/>
+                       <arg name="size" type="size_t"/>
+               </method>
+               <method name="XML_MemFree" result="void">
+                       <arg name="parser" type="XML_Parser"/>
+                       <arg name="ptr" type="void *"/>
+               </method>
+       </interface>
+</library>
diff --git a/expat/amiga/expat_lib.c b/expat/amiga/expat_lib.c
new file mode 100755 (executable)
index 0000000..a218662
--- /dev/null
@@ -0,0 +1,233 @@
+/*
+** Copyright (c) 2001-2005 Expat maintainers.
+**
+** Permission is hereby granted, free of charge, to any person obtaining
+** a copy of this software and associated documentation files (the
+** "Software"), to deal in the Software without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Software, and to
+** permit persons to whom the Software is furnished to do so, subject to
+** the following conditions:
+** 
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Software.
+** 
+** THE SOFTWARE 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 THE SOFTWARE.
+*/
+
+#include <dos/dos.h>
+#include <proto/exec.h>
+
+#define LIBNAME                "expat.library"
+#define LIBPRI         0
+#define VERSION                3
+#define REVISION       1
+#define VSTRING                "expat.library 3.1 (6.11.2005)"  /* dd.mm.yyyy */
+
+
+static const char* __attribute__((used)) verstag = "\0$VER: " VSTRING;
+
+
+struct ExpatBase {
+       struct Library libNode;
+       uint16 pad;
+       BPTR SegList;
+};
+
+
+struct ExpatBase * libInit(struct ExpatBase *libBase, BPTR seglist, struct ExecIFace *ISys);
+uint32 libObtain (struct LibraryManagerInterface *Self);
+uint32 libRelease (struct LibraryManagerInterface *Self);
+struct ExpatBase *libOpen (struct LibraryManagerInterface *Self, uint32 version);
+BPTR libClose (struct LibraryManagerInterface *Self);
+BPTR libExpunge (struct LibraryManagerInterface *Self);
+
+
+static APTR lib_manager_vectors[] = {
+       libObtain,
+       libRelease,
+       NULL,
+       NULL,
+       libOpen,
+       libClose,
+       libExpunge,
+       NULL,
+       (APTR)-1,
+};
+
+
+static struct TagItem lib_managerTags[] = {
+       { MIT_Name, (uint32)"__library" },
+       { MIT_VectorTable, (uint32)lib_manager_vectors },
+       { MIT_Version, 1 },
+       { TAG_END, 0 }
+};
+
+
+extern void *main_vectors[];
+
+static struct TagItem lib_mainTags[] = {
+       { MIT_Name, (uint32)"main" },
+       { MIT_VectorTable, (uint32)main_vectors },
+       { MIT_Version, 1 },
+       { TAG_END, 0 }
+};
+
+
+static APTR libInterfaces[] = {
+       lib_managerTags,
+       lib_mainTags,
+       NULL
+};
+
+
+static struct TagItem libCreateTags[] = {
+       { CLT_DataSize, sizeof(struct ExpatBase) },
+       { CLT_InitFunc, (uint32)libInit },
+       { CLT_Interfaces, (uint32)libInterfaces },
+       { TAG_END, 0 }
+};
+
+
+static struct Resident __attribute__((used)) lib_res = {
+       RTC_MATCHWORD,  // rt_MatchWord
+       &lib_res,               // rt_MatchTag
+       &lib_res+1,             // rt_EndSkip
+       RTF_NATIVE | RTF_AUTOINIT,      // rt_Flags
+       VERSION,                // rt_Version
+       NT_LIBRARY,             // rt_Type
+       LIBPRI,                 // rt_Pri
+       LIBNAME,                // rt_Name
+       VSTRING,                // rt_IdString
+       libCreateTags   // rt_Init
+};
+
+
+struct Library *DOSLib = 0;
+struct Library *UtilityBase = 0;
+
+struct ExecIFace *IExec = 0;
+struct DOSIFace *IDOS = 0;
+struct UtilityIFace *IUtility = 0;
+
+
+void _start()
+{
+}
+
+
+struct ExpatBase *libInit(struct ExpatBase *libBase, BPTR seglist, struct ExecIFace *ISys)
+{
+       libBase->libNode.lib_Node.ln_Type = NT_LIBRARY;
+       libBase->libNode.lib_Node.ln_Pri = LIBPRI;
+       libBase->libNode.lib_Node.ln_Name = LIBNAME;
+       libBase->libNode.lib_Flags = LIBF_SUMUSED|LIBF_CHANGED;
+       libBase->libNode.lib_Version = VERSION;
+       libBase->libNode.lib_Revision = REVISION;
+       libBase->libNode.lib_IdString = VSTRING;
+       libBase->SegList = seglist;
+
+       IExec = ISys;
+
+       DOSLib = OpenLibrary("dos.library", 51);
+       if ( DOSLib != 0 )  {
+               IDOS = (struct DOSIFace *)GetInterface(DOSLib, "main", 1, NULL);
+               if ( IDOS != 0 )  {
+                       UtilityBase = OpenLibrary("utility.library", 51);
+                       if ( UtilityBase != 0 )  {
+                               IUtility = (struct UtilityIFace*)GetInterface(UtilityBase, "main", 1, NULL);
+                               if ( IUtility != 0 )  {
+                                       return libBase;
+                               }
+
+                               CloseLibrary(UtilityBase);
+                       }
+
+                       DropInterface((struct Interface *)IDOS);
+               }
+
+               CloseLibrary(DOSLib);
+       }
+
+       return NULL;
+}
+
+
+uint32 libObtain( struct LibraryManagerInterface *Self )
+{
+       ++Self->Data.RefCount;
+       return Self->Data.RefCount;
+}
+
+
+uint32 libRelease( struct LibraryManagerInterface *Self )
+{
+       --Self->Data.RefCount;
+       return Self->Data.RefCount;
+}
+
+
+struct ExpatBase *libOpen( struct LibraryManagerInterface *Self, uint32 version )
+{
+       struct ExpatBase *libBase;
+
+       libBase = (struct ExpatBase *)Self->Data.LibBase;
+
+       ++libBase->libNode.lib_OpenCnt;
+       libBase->libNode.lib_Flags &= ~LIBF_DELEXP;
+
+       return libBase;
+}
+
+
+BPTR libClose( struct LibraryManagerInterface *Self )
+{
+       struct ExpatBase *libBase;
+
+       libBase = (struct ExpatBase *)Self->Data.LibBase;
+
+       --libBase->libNode.lib_OpenCnt;
+       if ( libBase->libNode.lib_OpenCnt ) {
+               return 0;
+       }
+
+       if ( libBase->libNode.lib_Flags & LIBF_DELEXP ) {
+               return (BPTR)Self->LibExpunge();
+       }
+       else {
+               return 0;
+       }
+}
+
+
+BPTR libExpunge( struct LibraryManagerInterface *Self )
+{
+       struct ExpatBase *libBase;
+       BPTR result = 0;
+
+       libBase = (struct ExpatBase *)Self->Data.LibBase;
+
+       if (libBase->libNode.lib_OpenCnt == 0) {
+               Remove(&libBase->libNode.lib_Node);
+
+               result = libBase->SegList;
+
+               DropInterface((struct Interface *)IUtility);
+               CloseLibrary(UtilityBase);
+               DropInterface((struct Interface *)IDOS);
+               CloseLibrary(DOSLib);
+
+               DeleteLibrary(&libBase->libNode);
+       }
+       else {
+               libBase->libNode.lib_Flags |= LIBF_DELEXP;
+       }
+
+       return result;
+}
diff --git a/expat/amiga/expat_vectors.c b/expat/amiga/expat_vectors.c
new file mode 100644 (file)
index 0000000..1116313
--- /dev/null
@@ -0,0 +1,505 @@
+/*
+** Copyright (c) 2001-2005 Expat maintainers.
+**
+** Permission is hereby granted, free of charge, to any person obtaining
+** a copy of this software and associated documentation files (the
+** "Software"), to deal in the Software without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Software, and to
+** permit persons to whom the Software is furnished to do so, subject to
+** the following conditions:
+** 
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Software.
+** 
+** THE SOFTWARE 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 THE SOFTWARE.
+*/
+
+#include <exec/types.h>
+#include <exec/exec.h>
+#include <exec/interfaces.h>
+#include <interfaces/expat.h>
+
+extern uint32                _Expat_Obtain(struct ExpatIFace *);
+extern uint32                _Expat_Release(struct ExpatIFace *);
+extern XML_Parser            _Expat_XML_ParserCreate(struct ExpatIFace *, const XML_Char * encodingName);
+extern XML_Parser            _Expat_XML_ParserCreateNS(struct ExpatIFace *, const XML_Char * encodingName, XML_Char nsSep);
+extern XML_Parser            _Expat_XML_ParserCreate_MM(struct ExpatIFace *, const XML_Char * encoding, const XML_Memory_Handling_Suite * memsuite, const XML_Char * namespaceSeparator);
+extern XML_Parser            _Expat_XML_ExternalEntityParserCreate(struct ExpatIFace *, XML_Parser parser, const XML_Char * context, const XML_Char * encoding);
+extern void                  _Expat_XML_ParserFree(struct ExpatIFace *, XML_Parser parser);
+extern enum XML_Status       _Expat_XML_Parse(struct ExpatIFace *, XML_Parser parser, const char * s, int len, int isFinal);
+extern enum XML_Status       _Expat_XML_ParseBuffer(struct ExpatIFace *, XML_Parser parser, int len, int isFinal);
+extern void *                _Expat_XML_GetBuffer(struct ExpatIFace *, XML_Parser parser, int len);
+extern void                  _Expat_XML_SetStartElementHandler(struct ExpatIFace *, XML_Parser parser, XML_StartElementHandler start);
+extern void                  _Expat_XML_SetEndElementHandler(struct ExpatIFace *, XML_Parser parser, XML_EndElementHandler end);
+extern void                  _Expat_XML_SetElementHandler(struct ExpatIFace *, XML_Parser parser, XML_StartElementHandler start, XML_EndElementHandler end);
+extern void                  _Expat_XML_SetCharacterDataHandler(struct ExpatIFace *, XML_Parser parser, XML_CharacterDataHandler handler);
+extern void                  _Expat_XML_SetProcessingInstructionHandler(struct ExpatIFace *, XML_Parser parser, XML_ProcessingInstructionHandler handler);
+extern void                  _Expat_XML_SetCommentHandler(struct ExpatIFace *, XML_Parser parser, XML_CommentHandler handler);
+extern void                  _Expat_XML_SetStartCdataSectionHandler(struct ExpatIFace *, XML_Parser parser, XML_StartCdataSectionHandler start);
+extern void                  _Expat_XML_SetEndCdataSectionHandler(struct ExpatIFace *, XML_Parser parser, XML_EndCdataSectionHandler end);
+extern void                  _Expat_XML_SetCdataSectionHandler(struct ExpatIFace *, XML_Parser parser, XML_StartCdataSectionHandler start, XML_EndCdataSectionHandler end);
+extern void                  _Expat_XML_SetDefaultHandler(struct ExpatIFace *, XML_Parser parser, XML_DefaultHandler handler);
+extern void                  _Expat_XML_SetDefaultHandlerExpand(struct ExpatIFace *, XML_Parser parser, XML_DefaultHandler handler);
+extern void                  _Expat_XML_SetExternalEntityRefHandler(struct ExpatIFace *, XML_Parser parser, XML_ExternalEntityRefHandler handler);
+extern void                  _Expat_XML_SetExternalEntityRefHandlerArg(struct ExpatIFace *, XML_Parser parser, void * arg);
+extern void                  _Expat_XML_SetUnknownEncodingHandler(struct ExpatIFace *, XML_Parser parser, XML_UnknownEncodingHandler handler, void * data);
+extern void                  _Expat_XML_SetStartNamespaceDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_StartNamespaceDeclHandler start);
+extern void                  _Expat_XML_SetEndNamespaceDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_EndNamespaceDeclHandler end);
+extern void                  _Expat_XML_SetNamespaceDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_StartNamespaceDeclHandler start, XML_EndNamespaceDeclHandler end);
+extern void                  _Expat_XML_SetXmlDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_XmlDeclHandler handler);
+extern void                  _Expat_XML_SetStartDoctypeDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_StartDoctypeDeclHandler start);
+extern void                  _Expat_XML_SetEndDoctypeDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_EndDoctypeDeclHandler end);
+extern void                  _Expat_XML_SetDoctypeDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_StartDoctypeDeclHandler start, XML_EndDoctypeDeclHandler end);
+extern void                  _Expat_XML_SetElementDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_ElementDeclHandler eldecl);
+extern void                  _Expat_XML_SetAttlistDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_AttlistDeclHandler attdecl);
+extern void                  _Expat_XML_SetEntityDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_EntityDeclHandler handler);
+extern void                  _Expat_XML_SetUnparsedEntityDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_UnparsedEntityDeclHandler handler);
+extern void                  _Expat_XML_SetNotationDeclHandler(struct ExpatIFace *, XML_Parser parser, XML_NotationDeclHandler handler);
+extern void                  _Expat_XML_SetNotStandaloneHandler(struct ExpatIFace *, XML_Parser parser, XML_NotStandaloneHandler handler);
+extern enum XML_Error        _Expat_XML_GetErrorCode(struct ExpatIFace *, XML_Parser parser);
+extern const XML_LChar *     _Expat_XML_ErrorString(struct ExpatIFace *, enum XML_Error code);
+extern long                  _Expat_XML_GetCurrentByteIndex(struct ExpatIFace *, XML_Parser parser);
+extern int                   _Expat_XML_GetCurrentLineNumber(struct ExpatIFace *, XML_Parser parser);
+extern int                   _Expat_XML_GetCurrentColumnNumber(struct ExpatIFace *, XML_Parser parser);
+extern int                   _Expat_XML_GetCurrentByteCount(struct ExpatIFace *, XML_Parser parser);
+extern const char *          _Expat_XML_GetInputContext(struct ExpatIFace *, XML_Parser parser, int * offset, int * size);
+extern void                  _Expat_XML_SetUserData(struct ExpatIFace *, XML_Parser parser, void * userData);
+extern void                  _Expat_XML_DefaultCurrent(struct ExpatIFace *, XML_Parser parser);
+extern void                  _Expat_XML_UseParserAsHandlerArg(struct ExpatIFace *, XML_Parser parser);
+extern enum XML_Status       _Expat_XML_SetBase(struct ExpatIFace *, XML_Parser parser, const XML_Char * base);
+extern const XML_Char *      _Expat_XML_GetBase(struct ExpatIFace *, XML_Parser parser);
+extern int                   _Expat_XML_GetSpecifiedAttributeCount(struct ExpatIFace *, XML_Parser parser);
+extern int                   _Expat_XML_GetIdAttributeIndex(struct ExpatIFace *, XML_Parser parser);
+extern enum XML_Status       _Expat_XML_SetEncoding(struct ExpatIFace *, XML_Parser parser, const XML_Char * encoding);
+extern int                   _Expat_XML_SetParamEntityParsing(struct ExpatIFace *, XML_Parser parser, enum XML_ParamEntityParsing parsing);
+extern void                  _Expat_XML_SetReturnNSTriplet(struct ExpatIFace *, XML_Parser parser, int do_nst);
+extern const XML_LChar *     _Expat_XML_ExpatVersion(struct ExpatIFace *);
+extern XML_Expat_Version     _Expat_XML_ExpatVersionInfo(struct ExpatIFace *);
+extern XML_Bool              _Expat_XML_ParserReset(struct ExpatIFace *, XML_Parser parser, const XML_Char * encoding);
+extern void                  _Expat_XML_SetSkippedEntityHandler(struct ExpatIFace *, XML_Parser parser, XML_SkippedEntityHandler handler);
+extern enum XML_Error        _Expat_XML_UseForeignDTD(struct ExpatIFace *, XML_Parser parser, XML_Bool useDTD);
+extern const XML_Feature *   _Expat_XML_GetFeatureList(struct ExpatIFace *);
+extern enum XML_Status       _Expat_XML_StopParser(struct ExpatIFace *, XML_Parser parser, XML_Bool resumable);
+extern enum XML_Status       _Expat_XML_ResumeParser(struct ExpatIFace *, XML_Parser parser);
+extern void                  _Expat_XML_GetParsingStatus(struct ExpatIFace *, XML_Parser parser, XML_ParsingStatus * status);
+extern void                  _Expat_XML_FreeContentModel(struct ExpatIFace *, XML_Parser parser, XML_Content * model);
+extern void *                _Expat_XML_MemMalloc(struct ExpatIFace *, XML_Parser parser, size_t size);
+extern void *                _Expat_XML_MemRealloc(struct ExpatIFace *, XML_Parser parser, void * ptr, size_t size);
+extern void                  _Expat_XML_MemFree(struct ExpatIFace *, XML_Parser parser, void * ptr);
+
+
+CONST APTR main_vectors[] =
+{
+    _Expat_Obtain,
+    _Expat_Release,
+    NULL,
+    NULL,
+    _Expat_XML_ParserCreate,
+    _Expat_XML_ParserCreateNS,
+    _Expat_XML_ParserCreate_MM,
+    _Expat_XML_ExternalEntityParserCreate,
+    _Expat_XML_ParserFree,
+    _Expat_XML_Parse,
+    _Expat_XML_ParseBuffer,
+    _Expat_XML_GetBuffer,
+    _Expat_XML_SetStartElementHandler,
+    _Expat_XML_SetEndElementHandler,
+    _Expat_XML_SetElementHandler,
+    _Expat_XML_SetCharacterDataHandler,
+    _Expat_XML_SetProcessingInstructionHandler,
+    _Expat_XML_SetCommentHandler,
+    _Expat_XML_SetStartCdataSectionHandler,
+    _Expat_XML_SetEndCdataSectionHandler,
+    _Expat_XML_SetCdataSectionHandler,
+    _Expat_XML_SetDefaultHandler,
+    _Expat_XML_SetDefaultHandlerExpand,
+    _Expat_XML_SetExternalEntityRefHandler,
+    _Expat_XML_SetExternalEntityRefHandlerArg,
+    _Expat_XML_SetUnknownEncodingHandler,
+    _Expat_XML_SetStartNamespaceDeclHandler,
+    _Expat_XML_SetEndNamespaceDeclHandler,
+    _Expat_XML_SetNamespaceDeclHandler,
+    _Expat_XML_SetXmlDeclHandler,
+    _Expat_XML_SetStartDoctypeDeclHandler,
+    _Expat_XML_SetEndDoctypeDeclHandler,
+    _Expat_XML_SetDoctypeDeclHandler,
+    _Expat_XML_SetElementDeclHandler,
+    _Expat_XML_SetAttlistDeclHandler,
+    _Expat_XML_SetEntityDeclHandler,
+    _Expat_XML_SetUnparsedEntityDeclHandler,
+    _Expat_XML_SetNotationDeclHandler,
+    _Expat_XML_SetNotStandaloneHandler,
+    _Expat_XML_GetErrorCode,
+    _Expat_XML_ErrorString,
+    _Expat_XML_GetCurrentByteIndex,
+    _Expat_XML_GetCurrentLineNumber,
+    _Expat_XML_GetCurrentColumnNumber,
+    _Expat_XML_GetCurrentByteCount,
+    _Expat_XML_GetInputContext,
+    _Expat_XML_SetUserData,
+    _Expat_XML_DefaultCurrent,
+    _Expat_XML_UseParserAsHandlerArg,
+    _Expat_XML_SetBase,
+    _Expat_XML_GetBase,
+    _Expat_XML_GetSpecifiedAttributeCount,
+    _Expat_XML_GetIdAttributeIndex,
+    _Expat_XML_SetEncoding,
+    _Expat_XML_SetParamEntityParsing,
+    _Expat_XML_SetReturnNSTriplet,
+    _Expat_XML_ExpatVersion,
+    _Expat_XML_ExpatVersionInfo,
+    _Expat_XML_ParserReset,
+    _Expat_XML_SetSkippedEntityHandler,
+    _Expat_XML_UseForeignDTD,
+    _Expat_XML_GetFeatureList,
+    _Expat_XML_StopParser,
+    _Expat_XML_ResumeParser,
+    _Expat_XML_GetParsingStatus,
+    _Expat_XML_FreeContentModel,
+    _Expat_XML_MemMalloc,
+    _Expat_XML_MemRealloc,
+    _Expat_XML_MemFree,
+    (APTR)-1
+};
+
+uint32 _Expat_Obtain(struct ExpatIFace *Self)
+{
+       return ++Self->Data.RefCount;
+}
+
+uint32 _Expat_Release(struct ExpatIFace *Self)
+{
+       return --Self->Data.RefCount;
+}
+
+XML_Parser _Expat_XML_ParserCreate(struct ExpatIFace * Self, const XML_Char *encoding)
+{
+       return XML_ParserCreate(encoding);
+}
+
+XML_Parser _Expat_XML_ParserCreateNS(struct ExpatIFace * Self, const XML_Char *encoding, XML_Char nsSep)
+{
+       return XML_ParserCreateNS(encoding, nsSep);
+}
+
+XML_Parser _Expat_XML_ParserCreate_MM(struct ExpatIFace * Self, const XML_Char *encoding, const XML_Memory_Handling_Suite *memsuite, const XML_Char *namespaceSeparator)
+{
+       return XML_ParserCreate_MM(encoding, memsuite, namespaceSeparator);
+}
+
+XML_Parser _Expat_XML_ExternalEntityParserCreate(struct ExpatIFace * Self, XML_Parser parser, const XML_Char *context, const XML_Char *encoding)
+{
+       return XML_ExternalEntityParserCreate(parser, context, encoding);
+}
+
+void _Expat_XML_ParserFree(struct ExpatIFace *Self, XML_Parser parser)
+{
+       XML_ParserFree(parser);
+}
+
+enum XML_Status _Expat_XML_Parse(struct ExpatIFace * Self, XML_Parser parser, const char * s, int len, int isFinal)
+{
+       return XML_Parse(parser, s, len, isFinal);
+}
+
+enum XML_Status _Expat_XML_ParseBuffer(struct ExpatIFace * Self, XML_Parser parser, int len, int isFinal)
+{
+       return XML_ParseBuffer(parser, len, isFinal);
+}
+
+void * _Expat_XML_GetBuffer(struct ExpatIFace * Self, XML_Parser parser, int len)
+{
+       return XML_GetBuffer(parser, len);
+}
+
+void _Expat_XML_SetStartElementHandler(struct ExpatIFace * Self, XML_Parser parser, XML_StartElementHandler start)
+{
+       XML_SetStartElementHandler(parser, start);
+}
+
+void _Expat_XML_SetEndElementHandler(struct ExpatIFace * Self, XML_Parser parser, XML_EndElementHandler end)
+{
+       XML_SetEndElementHandler(parser, end);
+}
+
+void _Expat_XML_SetElementHandler(struct ExpatIFace * Self, XML_Parser parser, XML_StartElementHandler start, XML_EndElementHandler end)
+{
+       XML_SetElementHandler(parser, start, end);
+}
+
+void _Expat_XML_SetCharacterDataHandler(struct ExpatIFace * Self, XML_Parser parser, XML_CharacterDataHandler handler)
+{
+       XML_SetCharacterDataHandler(parser, handler);
+}
+
+void _Expat_XML_SetProcessingInstructionHandler(struct ExpatIFace * Self, XML_Parser parser, XML_ProcessingInstructionHandler handler)
+{
+       XML_SetProcessingInstructionHandler(parser, handler);
+}
+
+void _Expat_XML_SetCommentHandler(struct ExpatIFace * Self, XML_Parser parser, XML_CommentHandler handler)
+{
+       XML_SetCommentHandler(parser, handler);
+}
+
+void _Expat_XML_SetStartCdataSectionHandler(struct ExpatIFace * Self, XML_Parser parser, XML_StartCdataSectionHandler start)
+{
+       XML_SetStartCdataSectionHandler(parser, start);
+}
+
+void _Expat_XML_SetEndCdataSectionHandler(struct ExpatIFace * Self, XML_Parser parser, XML_EndCdataSectionHandler end)
+{
+       XML_SetEndCdataSectionHandler(parser, end);
+}
+
+void _Expat_XML_SetCdataSectionHandler(struct ExpatIFace * Self, XML_Parser parser, XML_StartCdataSectionHandler start, XML_EndCdataSectionHandler end)
+{
+       XML_SetCdataSectionHandler(parser, start, end);
+}
+
+void _Expat_XML_SetDefaultHandler(struct ExpatIFace * Self, XML_Parser parser, XML_DefaultHandler handler)
+{
+       XML_SetDefaultHandler(parser, handler);
+}
+
+void _Expat_XML_SetDefaultHandlerExpand(struct ExpatIFace * Self, XML_Parser parser, XML_DefaultHandler handler)
+{
+       XML_SetDefaultHandlerExpand(parser, handler);
+}
+
+void _Expat_XML_SetExternalEntityRefHandler(struct ExpatIFace * Self, XML_Parser parser, XML_ExternalEntityRefHandler handler)
+{
+       XML_SetExternalEntityRefHandler(parser, handler);
+}
+
+void _Expat_XML_SetExternalEntityRefHandlerArg(struct ExpatIFace * Self, XML_Parser parser, void * arg)
+{
+       XML_SetExternalEntityRefHandlerArg(parser, arg);
+}
+
+void _Expat_XML_SetUnknownEncodingHandler(struct ExpatIFace * Self, XML_Parser parser, XML_UnknownEncodingHandler handler, void * data)
+{
+       XML_SetUnknownEncodingHandler(parser, handler, data);
+}
+
+void _Expat_XML_SetStartNamespaceDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_StartNamespaceDeclHandler start)
+{
+       XML_SetStartNamespaceDeclHandler(parser, start);
+}
+
+void _Expat_XML_SetEndNamespaceDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_EndNamespaceDeclHandler end)
+{
+       XML_SetEndNamespaceDeclHandler(parser, end);
+}
+
+void _Expat_XML_SetNamespaceDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_StartNamespaceDeclHandler start, XML_EndNamespaceDeclHandler end)
+{
+       XML_SetNamespaceDeclHandler(parser, start, end);
+}
+
+void _Expat_XML_SetXmlDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_XmlDeclHandler handler)
+{
+       XML_SetXmlDeclHandler(parser, handler);
+}
+
+void _Expat_XML_SetStartDoctypeDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_StartDoctypeDeclHandler start)
+{
+       XML_SetStartDoctypeDeclHandler(parser, start);
+}
+
+void _Expat_XML_SetEndDoctypeDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_EndDoctypeDeclHandler end)
+{
+       XML_SetEndDoctypeDeclHandler(parser, end);
+}
+
+void _Expat_XML_SetDoctypeDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_StartDoctypeDeclHandler start, XML_EndDoctypeDeclHandler end)
+{
+       XML_SetDoctypeDeclHandler(parser, start, end);
+}
+
+void _Expat_XML_SetElementDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_ElementDeclHandler eldecl)
+{
+       XML_SetElementDeclHandler(parser, eldecl);
+}
+
+void _Expat_XML_SetAttlistDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_AttlistDeclHandler attdecl)
+{
+       XML_SetAttlistDeclHandler(parser, attdecl);
+}
+
+void _Expat_XML_SetEntityDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_EntityDeclHandler handler)
+{
+       XML_SetEntityDeclHandler(parser, handler);
+}
+
+void _Expat_XML_SetUnparsedEntityDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_UnparsedEntityDeclHandler handler)
+{
+       XML_SetUnparsedEntityDeclHandler(parser, handler);
+}
+
+void _Expat_XML_SetNotationDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_NotationDeclHandler handler)
+{
+       XML_SetNotationDeclHandler(parser, handler);
+}
+
+void _Expat_XML_SetNotStandaloneHandler(struct ExpatIFace * Self, XML_Parser parser, XML_NotStandaloneHandler handler)
+{
+       XML_SetNotStandaloneHandler(parser, handler);
+}
+
+enum XML_Error _Expat_XML_GetErrorCode(struct ExpatIFace * Self, XML_Parser parser)
+{
+       return XML_GetErrorCode(parser);
+}
+
+const XML_LChar * _Expat_XML_ErrorString(struct ExpatIFace * Self, enum XML_Error code)
+{
+       return XML_ErrorString(code);
+}
+
+long _Expat_XML_GetCurrentByteIndex(struct ExpatIFace * Self, XML_Parser parser)
+{
+       return XML_GetCurrentByteIndex(parser);
+}
+
+int _Expat_XML_GetCurrentLineNumber(struct ExpatIFace * Self, XML_Parser parser)
+{
+       return XML_GetCurrentLineNumber(parser);
+}
+
+int _Expat_XML_GetCurrentColumnNumber(struct ExpatIFace * Self, XML_Parser parser)
+{
+       return XML_GetCurrentColumnNumber(parser);
+}
+
+int _Expat_XML_GetCurrentByteCount(struct ExpatIFace * Self, XML_Parser parser)
+{
+       return XML_GetCurrentByteCount(parser);
+}
+
+const char * _Expat_XML_GetInputContext(struct ExpatIFace * Self, XML_Parser parser, int * offset, int * size)
+{
+       return XML_GetInputContext(parser, offset, size);
+}
+
+void _Expat_XML_SetUserData(struct ExpatIFace * Self, XML_Parser parser, void * userData)
+{
+       XML_SetUserData(parser, userData);
+}
+
+void _Expat_XML_DefaultCurrent(struct ExpatIFace * Self, XML_Parser parser)
+{
+       XML_DefaultCurrent(parser);
+}
+
+void _Expat_XML_UseParserAsHandlerArg(struct ExpatIFace * Self, XML_Parser parser)
+{
+       XML_UseParserAsHandlerArg(parser);
+}
+
+enum XML_Status _Expat_XML_SetBase(struct ExpatIFace * Self, XML_Parser parser, const XML_Char *p)
+{
+       return XML_SetBase(parser, p);
+}
+
+const XML_Char * _Expat_XML_GetBase(struct ExpatIFace * Self, XML_Parser parser)
+{
+       return XML_GetBase(parser);
+}
+
+int _Expat_XML_GetSpecifiedAttributeCount(struct ExpatIFace * Self, XML_Parser parser)
+{
+       return XML_GetSpecifiedAttributeCount(parser);
+}
+
+int _Expat_XML_GetIdAttributeIndex(struct ExpatIFace * Self, XML_Parser parser)
+{
+       return XML_GetIdAttributeIndex(parser);
+}
+
+enum XML_Status _Expat_XML_SetEncoding(struct ExpatIFace * Self, XML_Parser parser, const XML_Char *encoding)
+{
+       return XML_SetEncoding(parser, encoding);
+}
+
+int _Expat_XML_SetParamEntityParsing(struct ExpatIFace * Self, XML_Parser parser, enum XML_ParamEntityParsing parsing)
+{
+       return XML_SetParamEntityParsing(parser, parsing);
+}
+
+void _Expat_XML_SetReturnNSTriplet(struct ExpatIFace * Self, XML_Parser parser, int do_nst)
+{
+       XML_SetReturnNSTriplet(parser, do_nst);
+}
+
+const XML_LChar * _Expat_XML_ExpatVersion(struct ExpatIFace * Self)
+{
+       return XML_ExpatVersion();
+}
+
+XML_Expat_Version _Expat_XML_ExpatVersionInfo(struct ExpatIFace * Self)
+{
+       return XML_ExpatVersionInfo();
+}
+
+XML_Bool _Expat_XML_ParserReset(struct ExpatIFace * Self, XML_Parser parser, const XML_Char *encoding)
+{
+       return XML_ParserReset(parser, encoding);
+}
+
+void _Expat_XML_SetSkippedEntityHandler(struct ExpatIFace * Self, XML_Parser parser, XML_SkippedEntityHandler handler)
+{
+       XML_SetSkippedEntityHandler(parser, handler);
+}
+
+enum XML_Error _Expat_XML_UseForeignDTD(struct ExpatIFace * Self, XML_Parser parser, XML_Bool useDTD)
+{
+       return XML_UseForeignDTD(parser, useDTD);
+}
+
+const XML_Feature * _Expat_XML_GetFeatureList(struct ExpatIFace * Self)
+{
+       return XML_GetFeatureList();
+}
+
+enum XML_Status _Expat_XML_StopParser(struct ExpatIFace * Self, XML_Parser parser, XML_Bool resumable)
+{
+       return XML_StopParser(parser, resumable);
+}
+
+enum XML_Status _Expat_XML_ResumeParser(struct ExpatIFace * Self, XML_Parser parser)
+{
+       return XML_ResumeParser(parser);
+}
+
+void _Expat_XML_GetParsingStatus(struct ExpatIFace * Self, XML_Parser parser, XML_ParsingStatus * status)
+{
+       XML_GetParsingStatus(parser, status);
+}
+
+void _Expat_XML_FreeContentModel(struct ExpatIFace * Self, XML_Parser parser, XML_Content * model)
+{
+       XML_FreeContentModel(parser, model);
+}
+
+void * _Expat_XML_MemMalloc(struct ExpatIFace * Self, XML_Parser parser, size_t size)
+{
+       return XML_MemMalloc(parser, size);
+}
+
+void * _Expat_XML_MemRealloc(struct ExpatIFace * Self, XML_Parser parser, void * ptr, size_t size)
+{
+       XML_MemRealloc(parser, ptr, size);
+}
+
+void _Expat_XML_MemFree(struct ExpatIFace * Self, XML_Parser parser, void * ptr)
+{
+       XML_MemFree(parser, ptr);
+}
diff --git a/expat/amiga/launch.c b/expat/amiga/launch.c
new file mode 100755 (executable)
index 0000000..11bbf1c
--- /dev/null
@@ -0,0 +1,66 @@
+/*
+** Copyright (c) 2001-2005 Expat maintainers.
+**
+** Permission is hereby granted, free of charge, to any person obtaining
+** a copy of this software and associated documentation files (the
+** "Software"), to deal in the Software without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Software, and to
+** permit persons to whom the Software is furnished to do so, subject to
+** the following conditions:
+** 
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Software.
+** 
+** THE SOFTWARE 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 THE SOFTWARE.
+*/
+
+#include <stdlib.h>
+#include <proto/exec.h>
+
+struct Library* ExpatBase = 0;
+struct ExpatIFace* IExpat = 0;
+
+
+int amiga_main(int argc, char** argv);
+void cleanup();
+
+
+int main(int argc, char** argv)
+{
+       int result = -1;
+
+       atexit(cleanup);
+
+       ExpatBase = OpenLibrary("expat.library", 2);
+       if ( ExpatBase != 0 )  {
+               IExpat = (struct ExpatIFace*)GetInterface(ExpatBase, "main", 1, NULL);
+               if ( IExpat != 0 )  {
+                       result = amiga_main(argc, argv);
+               }
+       }
+
+       cleanup();
+
+       return result;
+}
+
+
+void cleanup()
+{
+       if ( IExpat != 0 )  {
+               DropInterface((struct Interface*)IExpat);
+               IExpat = 0;
+       }
+
+       if ( ExpatBase != 0 )  {
+               CloseLibrary(ExpatBase);
+               ExpatBase = 0;
+       }
+}
diff --git a/expat/amiga/stdlib.c b/expat/amiga/stdlib.c
new file mode 100755 (executable)
index 0000000..4a7ca71
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+** Copyright (c) 2001-2005 Expat maintainers.
+**
+** Permission is hereby granted, free of charge, to any person obtaining
+** a copy of this software and associated documentation files (the
+** "Software"), to deal in the Software without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Software, and to
+** permit persons to whom the Software is furnished to do so, subject to
+** the following conditions:
+** 
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Software.
+** 
+** THE SOFTWARE 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 THE SOFTWARE.
+*/
+
+#include <stdlib.h>
+#include <exec/memory.h>
+#include <proto/exec.h>
+#include <proto/utility.h>
+
+void * malloc (size_t len)
+{
+       uint32 size = sizeof(uint32) + len;
+
+       uint32 *mem = AllocMem(size, MEMF_ANY);
+       if ( mem != 0 )  {
+               *mem = size;
+               ++mem;
+       }
+
+       return mem;
+}
+
+
+void * realloc (void * mem, size_t len2)
+{
+       if ( mem == 0 )  {
+               return malloc(len2);
+       }
+
+       if ( len2 == 0 )  {
+               free(mem);
+               return 0;
+       }
+
+       void * new_mem = malloc(len2);
+       if ( new_mem == 0 )  {
+               return 0;
+       }
+
+       uint32 mem_size = *(((uint32*)mem) - 1);
+       CopyMem(mem, new_mem, mem_size);
+       free(mem);
+
+       return new_mem;
+}
+
+
+void free (void * mem)
+{
+       if ( mem != 0 )  {
+               uint32 size = *(((uint32*)mem) - 1);
+               FreeMem(mem, size);
+       }
+}
+
+
+int memcmp (const void * a, const void * b, size_t len)
+{
+       size_t i;
+       int diff;
+
+       for ( i = 0; i < len; ++i )  {
+               diff = *((uint8 *)a++) - *((uint8 *)b++);
+               if ( diff )  {
+                       return diff;
+               }
+       }
+
+       return 0;
+}
+
+
+void * memcpy (void * t, const void * a, size_t len)
+{
+       CopyMem((APTR)a, t, len);
+       return t;
+}
+
+
+void * memmove (void * t1, const void * t2, size_t len)
+{
+       MoveMem((APTR)t2, t1, len);
+       return t1;
+}
+
+
+void * memset (void * t, int c, size_t len)
+{
+       return SetMem(t, c, len);
+}
index 32c6488d78f9827e9c4daa6962aba3687ee9d4fa..edcf1a5ba167d8766646a3d402013ced13d804fb 100755 (executable)
 #include <io.h>
 #endif
 
+#ifdef AMIGA_SHARED_LIB
+#include <proto/expat.h>
+#endif
+
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
index eae180e746e72f88c9ac1476b8f51321e02e687e..151f54ce4f85d43963782be75f3a8a178727231f 100755 (executable)
 #include <crtdbg.h>
 #endif
 
+#ifdef AMIGA_SHARED_LIB
+#include <proto/expat.h>
+#endif
+
 /* This ensures proper sorting. */
 
 #define NSSEP T('\001')
@@ -634,8 +638,13 @@ usage(const XML_Char *prog, int rc)
   exit(rc);
 }
 
+#ifdef AMIGA_SHARED_LIB
+int
+amiga_main(int argc, char *argv[])
+#else
 int
 tmain(int argc, XML_Char **argv)
+#endif
 {
   int i, j;
   const XML_Char *outputDir = NULL;