[Expat-checkins] CVS: expat/lib expat.h.in,1.9,1.10 xmlparse.c,1.18,1.19

Fred L. Drake fdrake@users.sourceforge.net
Fri, 27 Jul 2001 09:30:59 -0700


Update of /cvsroot/expat/expat/lib
In directory usw-pr-cvs1:/tmp/cvs-serv15495

Modified Files:
	expat.h.in xmlparse.c 
Log Message:

Make sure that XMLPARSEAPI specifies the calling convention when building
under MSVC -- this is needed when using the pre-compiled DLL with projects
built using a different calling convention.

XMLPARSEAPI now takes the return type as a parameter and inserts annotations
on both sides of the type to make sure the compiler is happy.  A new
macro, XMLCALLBACK, is used to perform similar annotation of the callback
function types, which do not need the dllimport/dllexport annotations but
do still need the __cdecl annotation.

This closes SF bug #413653.


Index: expat.h.in
===================================================================
RCS file: /cvsroot/expat/expat/lib/expat.h.in,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** expat.h.in	2001/07/25 17:22:48	1.9
--- expat.h.in	2001/07/27 16:30:56	1.10
***************
*** 11,17 ****
  #ifndef XMLPARSEAPI
  #  if defined(__declspec) && !defined(__BEOS__)
! #    define XMLPARSEAPI __declspec(dllimport)
  #  else
! #    define XMLPARSEAPI /* nothing */
  #  endif
  #endif  /* not defined XMLPARSEAPI */
--- 11,19 ----
  #ifndef XMLPARSEAPI
  #  if defined(__declspec) && !defined(__BEOS__)
! #    define XMLPARSEAPI(type) __declspec(dllimport) type __cdecl
! #    define XMLCALLBACK(type) type __cdecl
  #  else
! #    define XMLPARSEAPI(type) type
! #    define XMLCALLBACK(type) type
  #  endif
  #endif  /* not defined XMLPARSEAPI */
***************
*** 77,85 ****
  */
  
! typedef void (*XML_ElementDeclHandler) (void *userData,
! 					const XML_Char *name,
! 					XML_Content *model);
  
! XMLPARSEAPI void
  XML_SetElementDeclHandler(XML_Parser parser,
  			  XML_ElementDeclHandler eldecl);
--- 79,87 ----
  */
  
! typedef XMLCALLBACK(void) (*XML_ElementDeclHandler) (void *userData,
!                                                      const XML_Char *name,
!                                                      XML_Content *model);
  
! XMLPARSEAPI(void)
  XML_SetElementDeclHandler(XML_Parser parser,
  			  XML_ElementDeclHandler eldecl);
***************
*** 95,106 ****
   */
  
! typedef void (*XML_AttlistDeclHandler) (void		*userData,
! 					const XML_Char	*elname,
! 					const XML_Char	*attname,
! 					const XML_Char	*att_type,
! 					const XML_Char	*dflt,
! 					int		isrequired);
  
! XMLPARSEAPI void
  XML_SetAttlistDeclHandler(XML_Parser parser,
  			  XML_AttlistDeclHandler attdecl);
--- 97,108 ----
   */
  
! typedef XMLCALLBACK(void) (*XML_AttlistDeclHandler) (void	    *userData,
!                                                      const XML_Char *elname,
!                                                      const XML_Char *attname,
!                                                      const XML_Char *att_type,
!                                                      const XML_Char *dflt,
!                                                      int	    isrequired);
  
! XMLPARSEAPI(void)
  XML_SetAttlistDeclHandler(XML_Parser parser,
  			  XML_AttlistDeclHandler attdecl);
***************
*** 115,124 ****
    */
  
! typedef void (*XML_XmlDeclHandler) (void		*userData,
! 				    const XML_Char	*version,
! 				    const XML_Char	*encoding,
! 				    int			standalone);
  
! XMLPARSEAPI void
  XML_SetXmlDeclHandler(XML_Parser parser,
  		      XML_XmlDeclHandler xmldecl);
--- 117,126 ----
    */
  
! typedef XMLCALLBACK(void) (*XML_XmlDeclHandler) (void		*userData,
!                                                  const XML_Char	*version,
!                                                  const XML_Char	*encoding,
!                                                  int		 standalone);
  
! XMLPARSEAPI(void)
  XML_SetXmlDeclHandler(XML_Parser parser,
  		      XML_XmlDeclHandler xmldecl);
***************
*** 134,138 ****
  external protocol or null if there is none specified. */
  
! XMLPARSEAPI XML_Parser
  XML_ParserCreate(const XML_Char *encoding);
  
--- 136,140 ----
  external protocol or null if there is none specified. */
  
! XMLPARSEAPI(XML_Parser)
  XML_ParserCreate(const XML_Char *encoding);
  
***************
*** 147,151 ****
  the name and prefix will be passed through without expansion. */
  
! XMLPARSEAPI XML_Parser
  XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator);
  
--- 149,153 ----
  the name and prefix will be passed through without expansion. */
  
! XMLPARSEAPI(XML_Parser)
  XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator);
  
***************
*** 161,165 ****
  */
  
! XMLPARSEAPI XML_Parser
  XML_ParserCreate_MM(const XML_Char *encoding,
  		    const XML_Memory_Handling_Suite *memsuite,
--- 163,167 ----
  */
  
! XMLPARSEAPI(XML_Parser)
  XML_ParserCreate_MM(const XML_Char *encoding,
  		    const XML_Memory_Handling_Suite *memsuite,
***************
*** 169,195 ****
     names and values are 0 terminated. */
  
! typedef void (*XML_StartElementHandler)(void *userData,
! 					const XML_Char *name,
! 					const XML_Char **atts);
  
! typedef void (*XML_EndElementHandler)(void *userData,
! 				      const XML_Char *name);
  
  
  /* s is not 0 terminated. */
! typedef void (*XML_CharacterDataHandler)(void *userData,
! 					 const XML_Char *s,
! 					 int len);
  
  /* target and data are 0 terminated */
! typedef void (*XML_ProcessingInstructionHandler)(void *userData,
! 						 const XML_Char *target,
! 						 const XML_Char *data);
  
  /* data is 0 terminated */
! typedef void (*XML_CommentHandler)(void *userData, const XML_Char *data);
  
! typedef void (*XML_StartCdataSectionHandler)(void *userData);
! typedef void (*XML_EndCdataSectionHandler)(void *userData);
  
  /* This is called for any characters in the XML document for
--- 171,197 ----
     names and values are 0 terminated. */
  
! typedef XMLCALLBACK(void) (*XML_StartElementHandler)(void *userData,
!                                                      const XML_Char *name,
!                                                      const XML_Char **atts);
  
! typedef XMLCALLBACK(void) (*XML_EndElementHandler)(void *userData,
!                                                    const XML_Char *name);
  
  
  /* s is not 0 terminated. */
! typedef XMLCALLBACK(void) (*XML_CharacterDataHandler)(void *userData,
!                                                       const XML_Char *s,
!                                                       int len);
  
  /* target and data are 0 terminated */
! typedef XMLCALLBACK(void) (*XML_ProcessingInstructionHandler)(void *userData,
!                                                               const XML_Char *target,
!                                                               const XML_Char *data);
  
  /* data is 0 terminated */
! typedef XMLCALLBACK(void) (*XML_CommentHandler)(void *userData, const XML_Char *data);
  
! typedef XMLCALLBACK(void) (*XML_StartCdataSectionHandler)(void *userData);
! typedef XMLCALLBACK(void) (*XML_EndCdataSectionHandler)(void *userData);
  
  /* This is called for any characters in the XML document for
***************
*** 206,226 ****
  multiple calls. */
  
! typedef void (*XML_DefaultHandler)(void *userData,
! 				   const XML_Char *s,
! 				   int len);
  
  /* This is called for the start of the DOCTYPE declaration, before
     any DTD or internal subset is parsed. */
  
! typedef void (*XML_StartDoctypeDeclHandler)(void *userData,
! 					    const XML_Char *doctypeName,
! 					    const XML_Char *sysid,
! 					    const XML_Char *pubid,
! 					    int has_internal_subset
! 					    );
  
  /* This is called for the start of the DOCTYPE declaration when the
  closing > is encountered, but after processing any external subset. */
! typedef void (*XML_EndDoctypeDeclHandler)(void *userData);
  
  /* This is called for entity declarations. The is_parameter_entity
--- 208,227 ----
  multiple calls. */
  
! typedef XMLCALLBACK(void) (*XML_DefaultHandler)(void *userData,
!                                                 const XML_Char *s,
!                                                 int len);
  
  /* This is called for the start of the DOCTYPE declaration, before
     any DTD or internal subset is parsed. */
  
! typedef XMLCALLBACK(void) (*XML_StartDoctypeDeclHandler)(void *userData,
!                                                          const XML_Char *doctypeName,
!                                                          const XML_Char *sysid,
!                                                          const XML_Char *pubid,
!                                                          int has_internal_subset);
  
  /* This is called for the start of the DOCTYPE declaration when the
  closing > is encountered, but after processing any external subset. */
! typedef XMLCALLBACK(void) (*XML_EndDoctypeDeclHandler)(void *userData);
  
  /* This is called for entity declarations. The is_parameter_entity
***************
*** 240,254 ****
  */
  
! typedef void (*XML_EntityDeclHandler) (void *userData,
! 				       const XML_Char *entityName,
! 				       int is_parameter_entity,
! 				       const XML_Char *value,
! 				       int value_length,
! 				       const XML_Char *base,
! 				       const XML_Char *systemId,
! 				       const XML_Char *publicId,
! 				       const XML_Char *notationName);
  				       
! XMLPARSEAPI void
  XML_SetEntityDeclHandler(XML_Parser parser,
  			 XML_EntityDeclHandler handler);
--- 241,255 ----
  */
  
! typedef XMLCALLBACK(void) (*XML_EntityDeclHandler) (void *userData,
!                                                     const XML_Char *entityName,
!                                                     int is_parameter_entity,
!                                                     const XML_Char *value,
!                                                     int value_length,
!                                                     const XML_Char *base,
!                                                     const XML_Char *systemId,
!                                                     const XML_Char *publicId,
!                                                     const XML_Char *notationName);
  				       
! XMLPARSEAPI(void)
  XML_SetEntityDeclHandler(XML_Parser parser,
  			 XML_EntityDeclHandler handler);
***************
*** 262,271 ****
  The other arguments may be. */
  
! typedef void (*XML_UnparsedEntityDeclHandler)(void *userData,
! 					      const XML_Char *entityName,
! 					      const XML_Char *base,
! 					      const XML_Char *systemId,
! 					      const XML_Char *publicId,
! 					      const XML_Char *notationName);
  
  /* This is called for a declaration of notation.
--- 263,272 ----
  The other arguments may be. */
  
! typedef XMLCALLBACK(void) (*XML_UnparsedEntityDeclHandler)(void *userData,
!                                                            const XML_Char *entityName,
!                                                            const XML_Char *base,
!                                                            const XML_Char *systemId,
!                                                            const XML_Char *publicId,
!                                                            const XML_Char *notationName);
  
  /* This is called for a declaration of notation.
***************
*** 273,281 ****
  The notationName will never be null.  The other arguments can be. */
  
! typedef void (*XML_NotationDeclHandler)(void *userData,
! 					const XML_Char *notationName,
! 					const XML_Char *base,
! 					const XML_Char *systemId,
! 					const XML_Char *publicId);
  
  /* When namespace processing is enabled, these are called once for
--- 274,282 ----
  The notationName will never be null.  The other arguments can be. */
  
! typedef XMLCALLBACK(void) (*XML_NotationDeclHandler)(void *userData,
!                                                      const XML_Char *notationName,
!                                                      const XML_Char *base,
!                                                      const XML_Char *systemId,
!                                                      const XML_Char *publicId);
  
  /* When namespace processing is enabled, these are called once for
***************
*** 285,294 ****
  For an xmlns="" attribute, uri will be null. */
  
! typedef void (*XML_StartNamespaceDeclHandler)(void *userData,
! 					      const XML_Char *prefix,
! 					      const XML_Char *uri);
  
! typedef void (*XML_EndNamespaceDeclHandler)(void *userData,
! 					    const XML_Char *prefix);
  
  /* This is called if the document is not standalone (it has an
--- 286,295 ----
  For an xmlns="" attribute, uri will be null. */
  
! typedef XMLCALLBACK(void) (*XML_StartNamespaceDeclHandler)(void *userData,
!                                                            const XML_Char *prefix,
!                                                            const XML_Char *uri);
  
! typedef XMLCALLBACK(void) (*XML_EndNamespaceDeclHandler)(void *userData,
!                                                          const XML_Char *prefix);
  
  /* This is called if the document is not standalone (it has an
***************
*** 298,302 ****
  XML_ERROR_NOT_STANDALONE error. */
  
! typedef int (*XML_NotStandaloneHandler)(void *userData);
  
  /* This is called for a reference to an external parsed general entity.
--- 299,303 ----
  XML_ERROR_NOT_STANDALONE error. */
  
! typedef XMLCALLBACK(int) (*XML_NotStandaloneHandler)(void *userData);
  
  /* This is called for a reference to an external parsed general entity.
***************
*** 325,333 ****
  userData. */
  
! typedef int (*XML_ExternalEntityRefHandler)(XML_Parser parser,
! 					    const XML_Char *context,
! 					    const XML_Char *base,
! 					    const XML_Char *systemId,
! 					    const XML_Char *publicId);
  
  /* This structure is filled in by the XML_UnknownEncodingHandler
--- 326,334 ----
  userData. */
  
! typedef XMLCALLBACK(int) (*XML_ExternalEntityRefHandler)(XML_Parser parser,
!                                                          const XML_Char *context,
!                                                          const XML_Char *base,
!                                                          const XML_Char *systemId,
!                                                          const XML_Char *publicId);
  
  /* This structure is filled in by the XML_UnknownEncodingHandler
***************
*** 365,372 ****
  2. No character may require more than 4 bytes to encode.
  
! 3. All characters encoded must have Unicode scalar values <= 0xFFFF,
! (ie characters that would be encoded by surrogates in UTF-16
! are  not allowed).  Note that this restriction doesn't apply to
! the built-in support for UTF-8 and UTF-16.
  
  4. No Unicode character may be encoded by more than one distinct sequence
--- 366,373 ----
  2. No character may require more than 4 bytes to encode.
  
! 3. All characters encoded must have Unicode scalar values <= 0xFFFF, (i.e.,
! characters that would be encoded by surrogates in UTF-16 are  not
! allowed).  Note that this restriction doesn't apply to the built-in
! support for UTF-8 and UTF-16.
  
  4. No Unicode character may be encoded by more than one distinct sequence
***************
*** 391,430 ****
  then the parser will return an XML_UNKNOWN_ENCODING error. */
  
! typedef int (*XML_UnknownEncodingHandler)(void *encodingHandlerData,
! 					  const XML_Char *name,
! 					  XML_Encoding *info);
  
! XMLPARSEAPI void
  XML_SetElementHandler(XML_Parser parser,
  		      XML_StartElementHandler start,
  		      XML_EndElementHandler end);
  
! XMLPARSEAPI void
  XML_SetStartElementHandler(XML_Parser, XML_StartElementHandler);
  
! XMLPARSEAPI void
  XML_SetEndElementHandler(XML_Parser, XML_EndElementHandler);
  
! XMLPARSEAPI void
  XML_SetCharacterDataHandler(XML_Parser parser,
  			    XML_CharacterDataHandler handler);
  
! XMLPARSEAPI void
  XML_SetProcessingInstructionHandler(XML_Parser parser,
  				    XML_ProcessingInstructionHandler handler);
! XMLPARSEAPI void
  XML_SetCommentHandler(XML_Parser parser,
                        XML_CommentHandler handler);
  
! XMLPARSEAPI void
  XML_SetCdataSectionHandler(XML_Parser parser,
  			   XML_StartCdataSectionHandler start,
  			   XML_EndCdataSectionHandler end);
  
! XMLPARSEAPI void
  XML_SetStartCdataSectionHandler(XML_Parser parser,
                                  XML_StartCdataSectionHandler start);
  
! XMLPARSEAPI void
  XML_SetEndCdataSectionHandler(XML_Parser parser,
                                XML_EndCdataSectionHandler end);
--- 392,431 ----
  then the parser will return an XML_UNKNOWN_ENCODING error. */
  
! typedef XMLCALLBACK(int) (*XML_UnknownEncodingHandler)(void *encodingHandlerData,
!                                                        const XML_Char *name,
!                                                        XML_Encoding *info);
  
! XMLPARSEAPI(void)
  XML_SetElementHandler(XML_Parser parser,
  		      XML_StartElementHandler start,
  		      XML_EndElementHandler end);
  
! XMLPARSEAPI(void)
  XML_SetStartElementHandler(XML_Parser, XML_StartElementHandler);
  
! XMLPARSEAPI(void)
  XML_SetEndElementHandler(XML_Parser, XML_EndElementHandler);
  
! XMLPARSEAPI(void)
  XML_SetCharacterDataHandler(XML_Parser parser,
  			    XML_CharacterDataHandler handler);
  
! XMLPARSEAPI(void)
  XML_SetProcessingInstructionHandler(XML_Parser parser,
  				    XML_ProcessingInstructionHandler handler);
! XMLPARSEAPI(void)
  XML_SetCommentHandler(XML_Parser parser,
                        XML_CommentHandler handler);
  
! XMLPARSEAPI(void)
  XML_SetCdataSectionHandler(XML_Parser parser,
  			   XML_StartCdataSectionHandler start,
  			   XML_EndCdataSectionHandler end);
  
! XMLPARSEAPI(void)
  XML_SetStartCdataSectionHandler(XML_Parser parser,
                                  XML_StartCdataSectionHandler start);
  
! XMLPARSEAPI(void)
  XML_SetEndCdataSectionHandler(XML_Parser parser,
                                XML_EndCdataSectionHandler end);
***************
*** 434,438 ****
  handler. */
  
! XMLPARSEAPI void
  XML_SetDefaultHandler(XML_Parser parser,
  		      XML_DefaultHandler handler);
--- 435,439 ----
  handler. */
  
! XMLPARSEAPI(void)
  XML_SetDefaultHandler(XML_Parser parser,
  		      XML_DefaultHandler handler);
***************
*** 442,488 ****
  default handler. */
  
! XMLPARSEAPI void
  XML_SetDefaultHandlerExpand(XML_Parser parser,
  		            XML_DefaultHandler handler);
  
! XMLPARSEAPI void
  XML_SetDoctypeDeclHandler(XML_Parser parser,
  			  XML_StartDoctypeDeclHandler start,
  			  XML_EndDoctypeDeclHandler end);
  
! XMLPARSEAPI void
  XML_SetStartDoctypeDeclHandler(XML_Parser parser,
  			       XML_StartDoctypeDeclHandler start);
  
! XMLPARSEAPI void
  XML_SetEndDoctypeDeclHandler(XML_Parser parser,
  			     XML_EndDoctypeDeclHandler end);
  
! XMLPARSEAPI void
  XML_SetUnparsedEntityDeclHandler(XML_Parser parser,
  				 XML_UnparsedEntityDeclHandler handler);
  
! XMLPARSEAPI void
  XML_SetNotationDeclHandler(XML_Parser parser,
  			   XML_NotationDeclHandler handler);
  
! XMLPARSEAPI void
  XML_SetNamespaceDeclHandler(XML_Parser parser,
  			    XML_StartNamespaceDeclHandler start,
  			    XML_EndNamespaceDeclHandler end);
  
! XMLPARSEAPI void
  XML_SetStartNamespaceDeclHandler(XML_Parser parser,
  				 XML_StartNamespaceDeclHandler start);
  
! XMLPARSEAPI void
  XML_SetEndNamespaceDeclHandler(XML_Parser parser,
  			       XML_EndNamespaceDeclHandler end);
  
! XMLPARSEAPI void
  XML_SetNotStandaloneHandler(XML_Parser parser,
  			    XML_NotStandaloneHandler handler);
  
! XMLPARSEAPI void
  XML_SetExternalEntityRefHandler(XML_Parser parser,
  				XML_ExternalEntityRefHandler handler);
--- 443,489 ----
  default handler. */
  
! XMLPARSEAPI(void)
  XML_SetDefaultHandlerExpand(XML_Parser parser,
  		            XML_DefaultHandler handler);
  
! XMLPARSEAPI(void)
  XML_SetDoctypeDeclHandler(XML_Parser parser,
  			  XML_StartDoctypeDeclHandler start,
  			  XML_EndDoctypeDeclHandler end);
  
! XMLPARSEAPI(void)
  XML_SetStartDoctypeDeclHandler(XML_Parser parser,
  			       XML_StartDoctypeDeclHandler start);
  
! XMLPARSEAPI(void)
  XML_SetEndDoctypeDeclHandler(XML_Parser parser,
  			     XML_EndDoctypeDeclHandler end);
  
! XMLPARSEAPI(void)
  XML_SetUnparsedEntityDeclHandler(XML_Parser parser,
  				 XML_UnparsedEntityDeclHandler handler);
  
! XMLPARSEAPI(void)
  XML_SetNotationDeclHandler(XML_Parser parser,
  			   XML_NotationDeclHandler handler);
  
! XMLPARSEAPI(void)
  XML_SetNamespaceDeclHandler(XML_Parser parser,
  			    XML_StartNamespaceDeclHandler start,
  			    XML_EndNamespaceDeclHandler end);
  
! XMLPARSEAPI(void)
  XML_SetStartNamespaceDeclHandler(XML_Parser parser,
  				 XML_StartNamespaceDeclHandler start);
  
! XMLPARSEAPI(void)
  XML_SetEndNamespaceDeclHandler(XML_Parser parser,
  			       XML_EndNamespaceDeclHandler end);
  
! XMLPARSEAPI(void)
  XML_SetNotStandaloneHandler(XML_Parser parser,
  			    XML_NotStandaloneHandler handler);
  
! XMLPARSEAPI(void)
  XML_SetExternalEntityRefHandler(XML_Parser parser,
  				XML_ExternalEntityRefHandler handler);
***************
*** 491,498 ****
  as the first argument to the external entity ref handler instead
  of the parser object. */
! XMLPARSEAPI void
  XML_SetExternalEntityRefHandlerArg(XML_Parser, void *arg);
  
! XMLPARSEAPI void
  XML_SetUnknownEncodingHandler(XML_Parser parser,
  			      XML_UnknownEncodingHandler handler,
--- 492,499 ----
  as the first argument to the external entity ref handler instead
  of the parser object. */
! XMLPARSEAPI(void)
  XML_SetExternalEntityRefHandlerArg(XML_Parser, void *arg);
  
! XMLPARSEAPI(void)
  XML_SetUnknownEncodingHandler(XML_Parser parser,
  			      XML_UnknownEncodingHandler handler,
***************
*** 502,506 ****
  processing instruction or character data.  It causes the corresponding
  markup to be passed to the default handler. */
! XMLPARSEAPI void
  XML_DefaultCurrent(XML_Parser parser);
  
--- 503,507 ----
  processing instruction or character data.  It causes the corresponding
  markup to be passed to the default handler. */
! XMLPARSEAPI(void)
  XML_DefaultCurrent(XML_Parser parser);
  
***************
*** 516,524 ****
  */
  
! XMLPARSEAPI void
  XML_SetReturnNSTriplet(XML_Parser parser, int do_nst);
  
  /* This value is passed as the userData argument to callbacks. */
! XMLPARSEAPI void
  XML_SetUserData(XML_Parser parser, void *userData);
  
--- 517,525 ----
  */
  
! XMLPARSEAPI(void)
  XML_SetReturnNSTriplet(XML_Parser parser, int do_nst);
  
  /* This value is passed as the userData argument to callbacks. */
! XMLPARSEAPI(void)
  XML_SetUserData(XML_Parser parser, void *userData);
  
***************
*** 530,534 ****
  or XML_ParseBuffer. */
  
! XMLPARSEAPI int
  XML_SetEncoding(XML_Parser parser, const XML_Char *encoding);
  
--- 531,535 ----
  or XML_ParseBuffer. */
  
! XMLPARSEAPI(int)
  XML_SetEncoding(XML_Parser parser, const XML_Char *encoding);
  
***************
*** 537,541 ****
  The userData will still be accessible using XML_GetUserData. */
  
! void XMLPARSEAPI 
  XML_UseParserAsHandlerArg(XML_Parser parser);
  
--- 538,542 ----
  The userData will still be accessible using XML_GetUserData. */
  
! XMLPARSEAPI(void)
  XML_UseParserAsHandlerArg(XML_Parser parser);
  
***************
*** 547,554 ****
  Returns zero if out of memory, non-zero otherwise. */
  
! XMLPARSEAPI int
  XML_SetBase(XML_Parser parser, const XML_Char *base);
  
! XMLPARSEAPI const XML_Char *
  XML_GetBase(XML_Parser parser);
  
--- 548,555 ----
  Returns zero if out of memory, non-zero otherwise. */
  
! XMLPARSEAPI(int)
  XML_SetBase(XML_Parser parser, const XML_Char *base);
  
! XMLPARSEAPI(const XML_Char *)
  XML_GetBase(XML_Parser parser);
  
***************
*** 559,563 ****
  XML_StartElementHandler. */
  
! XMLPARSEAPI int
  XML_GetSpecifiedAttributeCount(XML_Parser parser);
  
--- 560,564 ----
  XML_StartElementHandler. */
  
! XMLPARSEAPI(int)
  XML_GetSpecifiedAttributeCount(XML_Parser parser);
  
***************
*** 567,571 ****
  into the atts array passed to the XML_StartElementHandler. */
  
! XMLPARSEAPI int
  XML_GetIdAttributeIndex(XML_Parser parser);
  
--- 568,572 ----
  into the atts array passed to the XML_StartElementHandler. */
  
! XMLPARSEAPI(int)
  XML_GetIdAttributeIndex(XML_Parser parser);
  
***************
*** 573,583 ****
  The last call to XML_Parse must have isFinal true;
  len may be zero for this call (or any other). */
! XMLPARSEAPI int
  XML_Parse(XML_Parser parser, const char *s, int len, int isFinal);
  
! XMLPARSEAPI void *
  XML_GetBuffer(XML_Parser parser, int len);
  
! XMLPARSEAPI int
  XML_ParseBuffer(XML_Parser parser, int len, int isFinal);
  
--- 574,584 ----
  The last call to XML_Parse must have isFinal true;
  len may be zero for this call (or any other). */
! XMLPARSEAPI(int)
  XML_Parse(XML_Parser parser, const char *s, int len, int isFinal);
  
! XMLPARSEAPI(void *)
  XML_GetBuffer(XML_Parser parser, int len);
  
! XMLPARSEAPI(int)
  XML_ParseBuffer(XML_Parser parser, int len, int isFinal);
  
***************
*** 597,601 ****
  from the parser argument.  Returns 0 if out of memory.  Otherwise
  returns a new XML_Parser object. */
! XMLPARSEAPI XML_Parser
  XML_ExternalEntityParserCreate(XML_Parser parser,
  			       const XML_Char *context,
--- 598,602 ----
  from the parser argument.  Returns 0 if out of memory.  Otherwise
  returns a new XML_Parser object. */
! XMLPARSEAPI(XML_Parser)
  XML_ExternalEntityParserCreate(XML_Parser parser,
  			       const XML_Char *context,
***************
*** 627,631 ****
  entities is requested; otherwise it will return non-zero. */
  
! XMLPARSEAPI int
  XML_SetParamEntityParsing(XML_Parser parser,
  			  enum XML_ParamEntityParsing parsing);
--- 628,632 ----
  entities is requested; otherwise it will return non-zero. */
  
! XMLPARSEAPI(int)
  XML_SetParamEntityParsing(XML_Parser parser,
  			  enum XML_ParamEntityParsing parsing);
***************
*** 661,665 ****
  returns information about the error. */
  
! XMLPARSEAPI enum XML_Error 
  XML_GetErrorCode(XML_Parser parser);
  
--- 662,666 ----
  returns information about the error. */
  
! XMLPARSEAPI(enum XML_Error)
  XML_GetErrorCode(XML_Parser parser);
  
***************
*** 672,683 ****
  of the sequence of characters that generated the event. */
  
! int XMLPARSEAPI XML_GetCurrentLineNumber(XML_Parser parser);
! int XMLPARSEAPI XML_GetCurrentColumnNumber(XML_Parser parser);
! long XMLPARSEAPI XML_GetCurrentByteIndex(XML_Parser parser);
  
  /* Return the number of bytes in the current event.
  Returns 0 if the event is in an internal entity. */
  
! XMLPARSEAPI int
  XML_GetCurrentByteCount(XML_Parser parser);
  
--- 673,684 ----
  of the sequence of characters that generated the event. */
  
! XMLPARSEAPI(int) XML_GetCurrentLineNumber(XML_Parser parser);
! XMLPARSEAPI(int) XML_GetCurrentColumnNumber(XML_Parser parser);
! XMLPARSEAPI(long) XML_GetCurrentByteIndex(XML_Parser parser);
  
  /* Return the number of bytes in the current event.
  Returns 0 if the event is in an internal entity. */
  
! XMLPARSEAPI(int)
  XML_GetCurrentByteCount(XML_Parser parser);
  
***************
*** 692,696 ****
     the handler that makes the call. */
  
! XMLPARSEAPI const char *
  XML_GetInputContext(XML_Parser parser,
  		    int *offset,
--- 693,697 ----
     the handler that makes the call. */
  
! XMLPARSEAPI(const char *)
  XML_GetInputContext(XML_Parser parser,
  		    int *offset,
***************
*** 703,715 ****
  
  /* Frees memory used by the parser. */
! XMLPARSEAPI void
  XML_ParserFree(XML_Parser parser);
  
  /* Returns a string describing the error. */
! XMLPARSEAPI const XML_LChar *
  XML_ErrorString(int code);
  
  /* Return a string containing the version number of this expat */
! XMLPARSEAPI const XML_LChar *
  XML_ExpatVersion(void);
  
--- 704,716 ----
  
  /* Frees memory used by the parser. */
! XMLPARSEAPI(void)
  XML_ParserFree(XML_Parser parser);
  
  /* Returns a string describing the error. */
! XMLPARSEAPI(const XML_LChar *)
  XML_ErrorString(int code);
  
  /* Return a string containing the version number of this expat */
! XMLPARSEAPI(const XML_LChar *)
  XML_ExpatVersion(void);
  
***************
*** 723,727 ****
     number information for this version of expat */
  
! XMLPARSEAPI XML_Expat_Version
  XML_ExpatVersionInfo(void);
  
--- 724,728 ----
     number information for this version of expat */
  
! XMLPARSEAPI(XML_Expat_Version)
  XML_ExpatVersionInfo(void);
  

Index: xmlparse.c
===================================================================
RCS file: /cvsroot/expat/expat/lib/xmlparse.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** xmlparse.c	2001/07/25 17:20:45	1.18
--- xmlparse.c	2001/07/27 16:30:56	1.19
***************
*** 6,17 ****
  #ifdef COMPILED_FROM_DSP
  #  include "winconfig.h"
! #  define XMLPARSEAPI __declspec(dllexport)
  #  include "expat.h"
  #  undef XMLPARSEAPI
  #else
  #include <config.h>
  
  #ifdef __declspec
! #  define XMLPARSEAPI __declspec(dllexport)
  #endif
  
--- 6,20 ----
  #ifdef COMPILED_FROM_DSP
  #  include "winconfig.h"
! #  define XMLPARSEAPI(type) __declspec(dllexport) type __cdecl
! #  define XMLCALLBACK(type) type __cdecl
  #  include "expat.h"
  #  undef XMLPARSEAPI
+ #  undef XMLCALLBACK
  #else
  #include <config.h>
  
  #ifdef __declspec
! #  define XMLPARSEAPI(type) __declspec(dllexport) type __cdecl
! #  define XMLCALLBACK(type) type __cdecl
  #endif
  
***************
*** 20,23 ****
--- 23,27 ----
  #ifdef __declspec
  #  undef XMLPARSEAPI
+ #  undef XMLCALLBACK
  #endif
  #endif /* ndef COMPILED_FROM_DSP */