[Expat-checkins] expat/amiga stdlib.c, NONE, 1.1 expat_vectors.c, NONE, 1.1 expat.xml, NONE, 1.1 expat_lib.c, NONE, 1.1 launch.c, NONE, 1.1
Steven Solie
ssolie at users.sourceforge.net
Sat Dec 24 07:40:00 CET 2005
Update of /cvsroot/expat/expat/amiga
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2497
Added Files:
stdlib.c expat_vectors.c expat.xml expat_lib.c launch.c
Log Message:
--- NEW FILE: stdlib.c ---
/*
** 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);
}
--- NEW FILE: expat_vectors.c ---
/*
** 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);
}
--- NEW FILE: expat.xml ---
<?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>
--- NEW FILE: expat_lib.c ---
/*
** 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;
}
--- NEW FILE: launch.c ---
/*
** 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;
}
}
More information about the Expat-checkins
mailing list