diff options
author | ssolie <ssolie> | 2005-12-24 06:38:10 +0000 |
---|---|---|
committer | ssolie <ssolie> | 2005-12-24 06:38:10 +0000 |
commit | 20b744b085eeebc9e87dc0262deb0d68b0a0a4d7 (patch) | |
tree | 296f3dcf7412f67612e22d53fd0eda58dda562d9 /amiga | |
parent | be082a25f3a7042bfe2a40f899f35822bf031840 (diff) | |
download | libexpat-20b744b085eeebc9e87dc0262deb0d68b0a0a4d7.tar.gz |
*** empty log message ***
Diffstat (limited to 'amiga')
-rw-r--r-- | amiga/Makefile | 223 | ||||
-rw-r--r-- | amiga/README.txt | 65 | ||||
-rw-r--r-- | amiga/expat.xml | 264 | ||||
-rwxr-xr-x | amiga/expat_lib.c | 233 | ||||
-rw-r--r-- | amiga/expat_vectors.c | 505 | ||||
-rwxr-xr-x | amiga/launch.c | 66 | ||||
-rwxr-xr-x | amiga/stdlib.c | 109 |
7 files changed, 1362 insertions, 103 deletions
diff --git a/amiga/Makefile b/amiga/Makefile index 4801e60..97b5723 100644 --- a/amiga/Makefile +++ b/amiga/Makefile @@ -2,117 +2,182 @@ # 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 $@ diff --git a/amiga/README.txt b/amiga/README.txt index 4df538e..945af5c 100644 --- a/amiga/README.txt +++ b/amiga/README.txt @@ -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/amiga/expat.xml b/amiga/expat.xml new file mode 100644 index 0000000..d6aeae2 --- /dev/null +++ b/amiga/expat.xml @@ -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/amiga/expat_lib.c b/amiga/expat_lib.c new file mode 100755 index 0000000..a218662 --- /dev/null +++ b/amiga/expat_lib.c @@ -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/amiga/expat_vectors.c b/amiga/expat_vectors.c new file mode 100644 index 0000000..1116313 --- /dev/null +++ b/amiga/expat_vectors.c @@ -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/amiga/launch.c b/amiga/launch.c new file mode 100755 index 0000000..11bbf1c --- /dev/null +++ b/amiga/launch.c @@ -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/amiga/stdlib.c b/amiga/stdlib.c new file mode 100755 index 0000000..4a7ca71 --- /dev/null +++ b/amiga/stdlib.c @@ -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); +} |