declarations; these are needed only on an obscure platform (Windows NT
on PowerPC using GCC), and were never in previous releases of Expat.
They caused way too many spurious warnings on several platforms where
they aren't actually needed but should be ignored silently.
Removing these cannot break working code.
the use of modified default calling conventions in client code.
To deal with this issue and generally clean up the mass of macros
being used to support bits of the machinery, two new macros are being
added:
- XMLCALL, which expands to whatever is needed to nail down the
calling convention for all calls across the library boundary. This
must match the convention used for the system's malloc()
implementation.
- XMLIMPORT, defined to be whatever magic is needed to mark an entry
point as imported from a dynamically loaded module (.dll, .so, .sl,
whatever).
These macros are used to define the XMLPARSEAPI macro already being
used to define the API entry points. In addition, XMLCALL is used to
define the types of callback functions, and all example code uses this
explicitly in both the distributed applications and the documentation.
Implemented with two API additions:
1) For element declaration handler support:
XML_FreeContentModel
2) Exposing Expat's memory allocation functions:
XML_MemMalloc
XML_MemRealloc
XML_MemFree
* Changed macro for static linking from _STATIC to XML_STATIC
and modified expat.h accordingly
* Added ReadMe file to Win32 subdirectory documenting Windows builds
* Changed static build settings to create libraries with names different
from the Dll stub library libexpat(w).lib
behavior that all strings returned from Expat are affected by the XML_UNICODE
and XML_UNICODE_WCHAR_T feature-test macros, and ensure that an application
that needs to determine what type of character data is returned can do so
with reasonable ease.
API, allowing the implementation to define the structure and use less
casting in internal macros.
Change XML_UseForeignDTD() to return an enum XML_Error value, to allow
specific conditions to be reported more clearly.
which don't like spaces between the '#' and the preprocessor command.
* expat.h, xmlparse.c, xmlrole.c, xmltok.c:
- remove all spaces between the '#' and the cpp command.
* Makefile.in:
- from cygwin: add -no-undefined to the library link line
* conftools/get-version.sh: (new file)
- script to extract the version number from expat.h
* configure.in:
(some from the cygwin patch)
- update the prereq to 2.52 instead of just 2.50
- update the AC_INIT line to 2.52 standards: include the package
name, version (with a lot of gunk to get this), and where to send
bugs)
- update the output file generation to 2.52 standards
* make-release.sh:
- update to use the new get-version.sh script
* lib/expat.h:
- from cygwin: add a little define for CYGWIN
original, and extract the numbers within the configure script.
* configure.in: extract the numbers from lib/expat.h
* Makefile.in: simplify the construction of DISTDIR
* lib/Makefile.in: no need to define the VERSION preprocessor symbol
* lib/expat.dsp: do not define VERSION (changed, but untested!)
* lib/xmlparse.c: revamp the XML_ExpatVersion() function
* lib/expat.h(.in): just ship the baby, rather than generating it
were out of date, and we've previously seen expat.h out of sync).
*) Use new script "buildconf.sh" to create the set of generated files
(aclocal.m4, config.h.in, configure). This is intended to be used by
developers (rerun when configure.in changes) and just before a release
(releases include these outputs).
Developers now need the "autoconf" and "libtool" packages.
*) config.h.in is now built by autoheader and includes bits from acconfig.h
rather than manual construction/maintenance. (renamed from config.hin)
*) added conftools/PrintPath from the ASF; it is a portable "which"
*) added "extraclean" target to top-level Makefile to get rid of all
generated files (return to pure CVS state; before buildconf.sh)
*) updates various bits for config.hin -> config.h.in rename
*) no longer need to delete the ".deps" subdir since we don't create it
anymore (dependencies are explicit rather than auto-generated).
structure that can be examined at runtime.
XML_ExpatVersion(): Construct the return value from the new version
information constants.
XML_MAJOR_VERSION, XML_MINOR_VERSION,
XML_MICRO_VERSION: New constants; these specify the version of the
library in a form that can be queried by client applications
at compile time. This is useful in determining if functions
should be considered available (like those above).