Bump version to 2.11.

Update copyrights and web site addresses.

New logo image following msweet.org template.
pull/193/head
Michael Sweet 7 years ago
parent 29375e0721
commit 89a9742c0e
  1. 22
      .gitignore
  2. 11
      Makefile.in
  3. 12
      config.h.in
  4. 42
      configure
  5. 8
      configure.ac
  6. BIN
      doc/0.gif
  7. BIN
      doc/1.gif
  8. BIN
      doc/2.gif
  9. BIN
      doc/3.gif
  10. BIN
      doc/4.gif
  11. BIN
      doc/5.gif
  12. BIN
      doc/6.gif
  13. BIN
      doc/7.gif
  14. BIN
      doc/8.gif
  15. BIN
      doc/9.gif
  16. BIN
      doc/A.gif
  17. BIN
      doc/B.gif
  18. BIN
      doc/C.gif
  19. BIN
      doc/D.gif
  20. BIN
      doc/E.gif
  21. BIN
      doc/F.gif
  22. 5
      doc/advanced.html
  23. 11
      doc/basics.html
  24. BIN
      doc/chapters.xcf.gz
  25. BIN
      doc/hires/0.gif
  26. BIN
      doc/hires/1.gif
  27. BIN
      doc/hires/2.gif
  28. BIN
      doc/hires/3.gif
  29. BIN
      doc/hires/4.gif
  30. BIN
      doc/hires/5.gif
  31. BIN
      doc/hires/6.gif
  32. BIN
      doc/hires/7.gif
  33. BIN
      doc/hires/8.gif
  34. BIN
      doc/hires/9.gif
  35. BIN
      doc/hires/A.gif
  36. BIN
      doc/hires/B.gif
  37. BIN
      doc/hires/C.gif
  38. BIN
      doc/hires/D.gif
  39. BIN
      doc/hires/E.gif
  40. BIN
      doc/hires/F.gif
  41. BIN
      doc/hires/logo.gif
  42. BIN
      doc/hires/mxml.png
  43. 5
      doc/install.html
  44. 20
      doc/intro.html
  45. 7
      doc/license.html
  46. BIN
      doc/logo.gif
  47. BIN
      doc/logo.xcf.gz
  48. 8
      doc/makedocs.sh
  49. 3
      doc/mxml.book
  50. 525
      doc/mxml.html
  51. BIN
      doc/mxml.opacity
  52. BIN
      doc/mxml.pdf
  53. BIN
      doc/mxml.png
  54. 9
      doc/mxmldoc.html
  55. 5
      doc/reference.heading
  56. 7
      doc/reference.html
  57. 594
      doc/relnotes.html
  58. 9
      doc/schema.html
  59. 11
      doc/title.html
  60. 15
      mvalidate.c
  61. 13
      mxml-attr.c
  62. 14
      mxml-entity.c
  63. 13
      mxml-file.c
  64. 13
      mxml-get.c
  65. 13
      mxml-index.c
  66. 13
      mxml-node.c
  67. 13
      mxml-private.c
  68. 13
      mxml-private.h
  69. 14
      mxml-search.c
  70. 13
      mxml-set.c
  71. 13
      mxml-string.c
  72. 15
      mxml.h
  73. 16
      mxml.list.in
  74. 13
      mxmldoc.c
  75. 13
      testmxml.c

22
.gitignore vendored

@ -0,0 +1,22 @@
*.o
Makefile
autom4te.cache
config.h
config.log
config.status
doc/mxml.d
doc/mxml.man
libmxml.1.dylib
libmxml.a
libmxml.dylib
libmxml.so
libmxml.so.1
mxml.list
mxml.pc
mxmldoc
mxmldoc-static
org.minixml.atom
org.minixml.docset
org.minixml.xar
temp1.xmlfd
testmxml

@ -1,9 +1,7 @@
#
# "$Id$"
#
# Makefile for Mini-XML, a small XML-like file parsing library.
#
# Copyright 2003-2014 by Michael R Sweet.
# Copyright 2003-2017 by Michael R Sweet.
#
# These coded instructions, statements, and computer programs are the
# property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
# which should have been included with this file. If this file is
# missing or damaged, see the license at:
#
# http://www.msweet.org/projects.php/Mini-XML
# https://michaelrsweet.github.io/mxml
#
#
@ -427,8 +425,3 @@ doc/mxml.man: mxmldoc-static mxml.xml
#
$(OBJS): Makefile config.h
#
# End of "$Id$".
#

@ -1,9 +1,7 @@
/*
* "$Id$"
* Configuration file for Mini-XML, a small XML file parsing library.
*
* Configuration file for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -89,7 +87,3 @@ extern int _mxml_snprintf(char *, size_t, const char *, ...);
extern int _mxml_vsnprintf(char *, size_t, const char *, va_list);
# define vsnprintf _mxml_vsnprintf
# endif /* !HAVE_VSNPRINTF */
/*
* End of "$Id$".
*/

42
configure vendored

@ -1,8 +1,8 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for Mini-XML 2.10.
# Generated by GNU Autoconf 2.69 for Mini-XML 2.11.
#
# Report bugs to <http://www.msweet.org/bugs.php/Mini-XML>.
# Report bugs to <https://github.com/michaelrsweet/mxml/issues>.
#
#
# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
@ -267,7 +267,7 @@ fi
$as_echo "$0: be upgraded to zsh 4.3.4 or later."
else
$as_echo "$0: Please tell bug-autoconf@gnu.org and
$0: http://www.msweet.org/bugs.php/Mini-XML about your
$0: https://github.com/michaelrsweet/mxml/issues about your
$0: system, including any error possibly output before this
$0: message. Then install a modern shell, or manually run
$0: the script under such a shell if you do have one."
@ -580,10 +580,10 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='Mini-XML'
PACKAGE_TARNAME='mxml'
PACKAGE_VERSION='2.10'
PACKAGE_STRING='Mini-XML 2.10'
PACKAGE_BUGREPORT='http://www.msweet.org/bugs.php/Mini-XML'
PACKAGE_URL='http://www.msweet.org/projects.php/Mini-XML'
PACKAGE_VERSION='2.11'
PACKAGE_STRING='Mini-XML 2.11'
PACKAGE_BUGREPORT='https://github.com/michaelrsweet/mxml/issues'
PACKAGE_URL='https://michaelrsweet.github.io/mxml'
# Factoring default headers for most tests.
ac_includes_default="\
@ -1258,7 +1258,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures Mini-XML 2.10 to adapt to many kinds of systems.
\`configure' configures Mini-XML 2.11 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1319,7 +1319,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of Mini-XML 2.10:";;
short | recursive ) echo "Configuration of Mini-XML 2.11:";;
esac
cat <<\_ACEOF
@ -1354,8 +1354,8 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
Report bugs to <http://www.msweet.org/bugs.php/Mini-XML>.
Mini-XML home page: <http://www.msweet.org/projects.php/Mini-XML>.
Report bugs to <https://github.com/michaelrsweet/mxml/issues>.
Mini-XML home page: <https://michaelrsweet.github.io/mxml>.
_ACEOF
ac_status=$?
fi
@ -1418,7 +1418,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
Mini-XML configure 2.10
Mini-XML configure 2.11
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -1728,9 +1728,9 @@ $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
( $as_echo "## ------------------------------------------------------ ##
## Report this to http://www.msweet.org/bugs.php/Mini-XML ##
## ------------------------------------------------------ ##"
( $as_echo "## ----------------------------------------------------------- ##
## Report this to https://github.com/michaelrsweet/mxml/issues ##
## ----------------------------------------------------------- ##"
) | sed "s/^/$as_me: WARNING: /" >&2
;;
esac
@ -1825,7 +1825,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by Mini-XML $as_me 2.10, which was
It was created by Mini-XML $as_me 2.11, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -2177,7 +2177,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
ac_config_headers="$ac_config_headers config.h"
VERSION="2.10"
VERSION="2.11"
cat >>confdefs.h <<_ACEOF
#define MXML_VERSION "Mini-XML v$VERSION"
@ -4974,7 +4974,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by Mini-XML $as_me 2.10, which was
This file was extended by Mini-XML $as_me 2.11, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -5030,14 +5030,14 @@ $config_files
Configuration headers:
$config_headers
Report bugs to <http://www.msweet.org/bugs.php/Mini-XML>.
Mini-XML home page: <http://www.msweet.org/projects.php/Mini-XML>."
Report bugs to <https://github.com/michaelrsweet/mxml/issues>.
Mini-XML home page: <https://michaelrsweet.github.io/mxml>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
Mini-XML config.status 2.10
Mini-XML config.status 2.11
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"

@ -1,9 +1,7 @@
dnl
dnl "$Id$"
dnl
dnl Configuration script for Mini-XML, a small XML-like file parsing library.
dnl
dnl Copyright 2003-2016 by Michael R Sweet.
dnl Copyright 2003-2017 by Michael R Sweet.
dnl
dnl These coded instructions, statements, and computer programs are the
dnl property of Michael R Sweet and are protected by Federal copyright
@ -11,11 +9,11 @@ dnl law. Distribution and use rights are outlined in the file "COPYING"
dnl which should have been included with this file. If this file is
dnl missing or damaged, see the license at:
dnl
dnl http://www.msweet.org/projects.php/Mini-XML
dnl https://michaelrsweet.github.io/mxml
dnl
dnl Package name and version...
AC_INIT([Mini-XML], [2.10], [http://www.msweet.org/bugs.php/Mini-XML], [mxml], [http://www.msweet.org/projects.php/Mini-XML])
AC_INIT([Mini-XML], [2.11], [https://github.com/michaelrsweet/mxml/issues], [mxml], [https://michaelrsweet.github.io/mxml])
dnl Set the name of the config header file...
AC_CONFIG_HEADER(config.h)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 641 B

@ -1,9 +1,8 @@
<html>
<body>
<h1 align='right'><a name='ADVANCED'><img src="3.gif" align="right"
hspace="10" width="100" height="100" alt="3"></a>More Mini-XML
Programming Techniques</h1>
<h1 align='right'><a name='ADVANCED'>Chapter 3 - More Mini-XML
Programming Techniques</a></h1>
<p>This chapter shows additional ways to use the Mini-XML
library in your programs.</p>

@ -1,9 +1,8 @@
<html>
<body>
<h1 align='right'><a name='BASICS'><img src="2.gif" align="right"
hspace="10" width="100" height="100" alt="2"></a>Getting Started
with Mini-XML</h1>
<h1 align='right'><a name='BASICS'>Chapter 2 - Getting Started
with Mini-XML</a></h1>
<p>This chapter describes how to write programs that use Mini-XML to
access data in an XML file. Mini-XML provides the following
@ -333,7 +332,7 @@ the <tt>MXML_TEXT_CALLBACK</tt> constant which specifies that all
data nodes in the document contain whitespace-separated text
values. Other standard callbacks include
<tt>MXML_IGNORE_CALLBACK</tt>, <tt>MXML_INTEGER_CALLBACK</tt>,
<tt>MXML_OPAQUE_CALLBACK</tt>, and
<tt>MXML_OPAQUE_CALLBACK</tt>, and
<tt>MXML_REAL_CALLBACK</tt>.</p>
<p>The <a href='#mxmlLoadString'><tt>mxmlLoadString</tt></a>
@ -459,7 +458,7 @@ can be used to iterate through the XML node tree:</p>
<pre>
mxml_node_t *node;
node = mxmlWalkPrev(current, tree,
MXML_DESCEND);
@ -473,7 +472,7 @@ function:</p>
<pre>
mxml_node_t *node;
node = mxmlFindElement(tree, tree, "name",
"attr", "value",
MXML_DESCEND);

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

@ -1,9 +1,8 @@
<html>
<body>
<h1 align='right'><a name='INSTALL'><img src="1.gif" align="right"
hspace="10" width="100" height="100" alt="1"></a>Building,
Installing, and Packaging Mini-XML</h1>
<h1 align='right'><a name='INSTALL'>Chapter 1 - Building,
Installing, and Packaging Mini-XML</a></h1>
<p>This chapter describes how to build, install, and package
Mini-XML on your system from the source archive. You will need an

@ -1,16 +1,15 @@
<html>
<head>
<title>Mini-XML Programmers Manual, Version 2.10</title>
<meta name="copyright" content="Copyright 2003-2016">
<title>Mini-XML Programmers Manual, Version 2.11</title>
<meta name="copyright" content="Copyright 2003-2017">
<meta name="author" content="Michael R Sweet">
<meta name="keywords" content="XML, C, C++, library">
</head>
<body>
<h1 align="right"><a name="INTRO"><img src="0.gif" align="right"
hspace="10" width="100" height="100" alt="0"></a>Introduction</h1>
<h1 align="right"><a name="INTRO">Introduction</a></h1>
<p>This programmers manual describes Mini-XML version 2.10, a small
<p>This programmers manual describes Mini-XML version 2.11, a small
XML parsing library that you can use to read and write XML data
files in your C and C++ applications.</p>
@ -53,7 +52,7 @@ following projects/software applications:</p>
</ul>
<p>Please file a bug on msweet.org if you would like your project added or
<p>Please file a bug on Github if you would like your project added or
removed from this list, or if you have any comments/quotes you would like me to
publish about your experiences with Mini-XML.</p>
@ -87,14 +86,11 @@ appendices:</p>
provides the terms and conditions for using and distributing
Mini-XML.</li>
<li>Appendix B, "<a href="#RELNOTES">Release Notes</a>",
lists the changes in each release of Mini-XML.</li>
<li>Appendix C, "<a href="#REFERENCE">Library
<li>Appendix B, "<a href="#REFERENCE">Library
Reference</a>", contains a complete reference for
Mini-XML, generated by <tt>mxmldoc</tt>.</li>
<li>Appendix D, "<a href="#SCHEMA">XML Schema</a>", shows
<li>Appendix C, "<a href="#SCHEMA">XML Schema</a>", shows
the XML schema used for the XML files produced by
<tt>mxmldoc</tt>.</li>
@ -187,7 +183,7 @@ manual:</p>
<!-- NEED 6 -->
<h2>Legal Stuff</h2>
<p>The Mini-XML library is copyright 2003-2016 by Michael R Sweet. License terms
<p>The Mini-XML library is copyright 2003-2017 by Michael R Sweet. License terms
are described in <a href="#LICENSE">Appendix A - Mini-XML License</a>.</p>
</body>

@ -1,9 +1,8 @@
<html>
<body>
<h1 align='right'><a name='LICENSE'><img src="A.gif" align="right"
hspace="10" width="100" height="100" alt="A"></a>Mini-XML
License</h1>
<h1 align='right'><a name='LICENSE'>Appendix A - Mini-XML
License</a></h1>
<p>The Mini-XML library and included programs are provided under
the terms of the GNU Library General Public License version 2
@ -566,7 +565,7 @@ Lesser General Public License for more details.
<p>You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA
</ul>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

@ -1,7 +1,5 @@
#!/bin/sh
#
# "$Id$"
#
# Script to make documentation...
#
# Copyright 2003-2010 by Michael R Sweet.
@ -12,7 +10,7 @@
# which should have been included with this file. If this file is
# missing or damaged, see the license at:
#
# http://www.minixml.org/
# https://michaelrsweet.github.io/mxml
#
htmldoc --verbose --path "hires;." --batch mxml.book -f mxml.pdf
@ -22,7 +20,3 @@ htmldoc --verbose --batch mxml.book --no-title -f mxml.html
rm -rf mxml.d
mkdir mxml.d
htmldoc --verbose --batch mxml.book --no-title -t html -d mxml.d
#
# End of "$Id$".
#

@ -1,4 +1,4 @@
#HTMLDOC 1.8.27.1
#HTMLDOC 1.8.30
-t pdf14 -f "mxml.pdf" --book --toclevels 3 --no-numbered --toctitle "Table of Contents" --title --titleimage "title.html" --linkstyle plain --size 4.25x6.875in --left 0.750in --right 0.50in --top 0.50in --bottom 0.50in --header .t. --header1 ... --footer h.1 --nup 1 --tocheader .t. --tocfooter ..i --duplex --portrait --color --no-pscommands --no-xrxcomments --compression=9 --jpeg=95 --fontsize 9.0 --fontspacing 1.2 --headingfont Helvetica --bodyfont Helvetica --headfootsize 8.0 --headfootfont Helvetica-Oblique --charset iso-8859-1 --links --embedfonts --pagemode outline --pagelayout single --firstpage c1 --pageeffect none --pageduration 10 --effectduration 1.0 --no-encryption --permissions all --owner-password "" --user-password "" --browserwidth 300 --no-strict --no-overflow
intro.html
install.html
@ -6,6 +6,5 @@ basics.html
advanced.html
mxmldoc.html
license.html
relnotes.html
reference.html
schema.html

@ -1,9 +1,9 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
<TITLE>Mini-XML Programmers Manual, Version 2.10</TITLE>
<TITLE>Mini-XML Programmers Manual, Version 2.11</TITLE>
<META NAME="author" CONTENT="Michael R Sweet">
<META NAME="copyright" CONTENT="Copyright 2003-2016">
<META NAME="copyright" CONTENT="Copyright 2003-2017">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=iso-iso-8859-1">
<STYLE TYPE="text/css"><!--
BODY { font-family: sans-serif }
@ -30,7 +30,8 @@ A { text-decoration: none }
<LI><A HREF="#1_4">Other References</A></LI>
<LI><A HREF="#1_5">Legal Stuff</A></LI>
</UL>
<B><A HREF="#INSTALL">Building, Installing, and Packaging Mini-XML</A></B>
<B><A HREF="#INSTALL">Chapter 1 - Building, Installing, and Packaging
Mini-XML</A></B>
<UL>
<LI><A HREF="#2_1">Compiling Mini-XML</A>
<UL>
@ -41,7 +42,7 @@ A { text-decoration: none }
<LI><A HREF="#2_2">Installing Mini-XML</A></LI>
<LI><A HREF="#2_3">Creating Mini-XML Packages</A></LI>
</UL>
<B><A HREF="#BASICS">Getting Started with Mini-XML</A></B>
<B><A HREF="#BASICS">Chapter 2 - Getting Started with Mini-XML</A></B>
<UL>
<LI><A HREF="#3_1">The Basics</A></LI>
<LI><A HREF="#3_2">Nodes</A>
@ -69,7 +70,8 @@ A { text-decoration: none }
<LI><A HREF="#3_7">Finding and Iterating Nodes</A></LI>
<LI><A HREF="#3_8">Finding Specific Nodes</A></LI>
</UL>
<B><A HREF="#ADVANCED">More Mini-XML Programming Techniques</A></B>
<B><A HREF="#ADVANCED">Chapter 3 - More Mini-XML Programming Techniques</A>
</B>
<UL>
<LI><A HREF="#LOAD_CALLBACKS">Load Callbacks</A></LI>
<LI><A HREF="#SAVE_CALLBACKS">Save Callbacks</A></LI>
@ -79,7 +81,7 @@ A { text-decoration: none }
<LI><A HREF="#4_6">Indexing</A></LI>
<LI><A HREF="#4_7">SAX (Stream) Loading of Documents</A></LI>
</UL>
<B><A HREF="#MXMLDOC">Using the mxmldoc Utility</A></B>
<B><A HREF="#MXMLDOC">Chapter 4 - Using the mxmldoc Utility</A></B>
<UL>
<LI><A HREF="#5_1">The Basics</A>
<UL>
@ -90,72 +92,70 @@ A { text-decoration: none }
<LI><A HREF="#5_2">Commenting Your Code</A></LI>
<LI><A HREF="#5_3">Titles, Sections, and Introductions</A></LI>
</UL>
<B><A HREF="#LICENSE">Mini-XML License</A></B>
<B><A HREF="#LICENSE">Appendix A - Mini-XML License</A></B>
<BR>
<BR><B><A HREF="#RELNOTES">Release Notes</A></B>
<UL></UL>
<B><A HREF="#REFERENCE">Library Reference</A></B>
<BR><B><A HREF="#REFERENCE">Appendix B - Library Reference</A></B>
<UL>
<LI><A HREF="#8_1">Contents</A></LI>
<LI><A HREF="#7_1">Contents</A></LI>
<LI><A HREF="#FUNCTIONS">Functions</A>
<UL>
<LI><A HREF="#mxmlAdd">mxmlAdd</A></LI>
<LI><A HREF="#mxmlDelete">mxmlDelete</A></LI>
<LI><A HREF="#8_2_3">mxmlElementDeleteAttr</A></LI>
<LI><A HREF="#7_2_3">mxmlElementDeleteAttr</A></LI>
<LI><A HREF="#mxmlElementGetAttr">mxmlElementGetAttr</A></LI>
<LI><A HREF="#mxmlElementSetAttr">mxmlElementSetAttr</A></LI>
<LI><A HREF="#8_2_6">mxmlElementSetAttrf</A></LI>
<LI><A HREF="#7_2_6">mxmlElementSetAttrf</A></LI>
<LI><A HREF="#mxmlEntityAddCallback">mxmlEntityAddCallback</A></LI>
<LI><A HREF="#mxmlEntityGetName">mxmlEntityGetName</A></LI>
<LI><A HREF="#mxmlEntityGetValue">mxmlEntityGetValue</A></LI>
<LI><A HREF="#mxmlEntityRemoveCallback">mxmlEntityRemoveCallback</A></LI>
<LI><A HREF="#mxmlFindElement">mxmlFindElement</A></LI>
<LI><A HREF="#8_2_12">mxmlFindPath</A></LI>
<LI><A HREF="#8_2_13">mxmlGetCDATA</A></LI>
<LI><A HREF="#8_2_14">mxmlGetCustom</A></LI>
<LI><A HREF="#8_2_15">mxmlGetElement</A></LI>
<LI><A HREF="#8_2_16">mxmlGetFirstChild</A></LI>
<LI><A HREF="#8_2_17">mxmlGetInteger</A></LI>
<LI><A HREF="#8_2_18">mxmlGetLastChild</A></LI>
<LI><A HREF="#7_2_12">mxmlFindPath</A></LI>
<LI><A HREF="#7_2_13">mxmlGetCDATA</A></LI>
<LI><A HREF="#7_2_14">mxmlGetCustom</A></LI>
<LI><A HREF="#7_2_15">mxmlGetElement</A></LI>
<LI><A HREF="#7_2_16">mxmlGetFirstChild</A></LI>
<LI><A HREF="#7_2_17">mxmlGetInteger</A></LI>
<LI><A HREF="#7_2_18">mxmlGetLastChild</A></LI>
<LI><A HREF="#mxmlGetNextSibling">mxmlGetNextSibling</A></LI>
<LI><A HREF="#8_2_20">mxmlGetOpaque</A></LI>
<LI><A HREF="#8_2_21">mxmlGetParent</A></LI>
<LI><A HREF="#8_2_22">mxmlGetPrevSibling</A></LI>
<LI><A HREF="#8_2_23">mxmlGetReal</A></LI>
<LI><A HREF="#8_2_24">mxmlGetRefCount</A></LI>
<LI><A HREF="#8_2_25">mxmlGetText</A></LI>
<LI><A HREF="#8_2_26">mxmlGetType</A></LI>
<LI><A HREF="#8_2_27">mxmlGetUserData</A></LI>
<LI><A HREF="#7_2_20">mxmlGetOpaque</A></LI>
<LI><A HREF="#7_2_21">mxmlGetParent</A></LI>
<LI><A HREF="#7_2_22">mxmlGetPrevSibling</A></LI>
<LI><A HREF="#7_2_23">mxmlGetReal</A></LI>
<LI><A HREF="#7_2_24">mxmlGetRefCount</A></LI>
<LI><A HREF="#7_2_25">mxmlGetText</A></LI>
<LI><A HREF="#7_2_26">mxmlGetType</A></LI>
<LI><A HREF="#7_2_27">mxmlGetUserData</A></LI>
<LI><A HREF="#mxmlIndexDelete">mxmlIndexDelete</A></LI>
<LI><A HREF="#mxmlIndexEnum">mxmlIndexEnum</A></LI>
<LI><A HREF="#mxmlIndexFind">mxmlIndexFind</A></LI>
<LI><A HREF="#8_2_31">mxmlIndexGetCount</A></LI>
<LI><A HREF="#7_2_31">mxmlIndexGetCount</A></LI>
<LI><A HREF="#mxmlIndexNew">mxmlIndexNew</A></LI>
<LI><A HREF="#mxmlIndexReset">mxmlIndexReset</A></LI>
<LI><A HREF="#mxmlLoadFd">mxmlLoadFd</A></LI>
<LI><A HREF="#mxmlLoadFile">mxmlLoadFile</A></LI>
<LI><A HREF="#mxmlLoadString">mxmlLoadString</A></LI>
<LI><A HREF="#8_2_37">mxmlNewCDATA</A></LI>
<LI><A HREF="#8_2_38">mxmlNewCustom</A></LI>
<LI><A HREF="#7_2_37">mxmlNewCDATA</A></LI>
<LI><A HREF="#7_2_38">mxmlNewCustom</A></LI>
<LI><A HREF="#mxmlNewElement">mxmlNewElement</A></LI>
<LI><A HREF="#mxmlNewInteger">mxmlNewInteger</A></LI>
<LI><A HREF="#mxmlNewOpaque">mxmlNewOpaque</A></LI>
<LI><A HREF="#mxmlNewReal">mxmlNewReal</A></LI>
<LI><A HREF="#mxmlNewText">mxmlNewText</A></LI>
<LI><A HREF="#mxmlNewTextf">mxmlNewTextf</A></LI>
<LI><A HREF="#8_2_45">mxmlNewXML</A></LI>
<LI><A HREF="#8_2_46">mxmlRelease</A></LI>
<LI><A HREF="#7_2_45">mxmlNewXML</A></LI>
<LI><A HREF="#7_2_46">mxmlRelease</A></LI>
<LI><A HREF="#mxmlRemove">mxmlRemove</A></LI>
<LI><A HREF="#8_2_48">mxmlRetain</A></LI>
<LI><A HREF="#8_2_49">mxmlSAXLoadFd</A></LI>
<LI><A HREF="#8_2_50">mxmlSAXLoadFile</A></LI>
<LI><A HREF="#8_2_51">mxmlSAXLoadString</A></LI>
<LI><A HREF="#7_2_48">mxmlRetain</A></LI>
<LI><A HREF="#7_2_49">mxmlSAXLoadFd</A></LI>
<LI><A HREF="#7_2_50">mxmlSAXLoadFile</A></LI>
<LI><A HREF="#7_2_51">mxmlSAXLoadString</A></LI>
<LI><A HREF="#mxmlSaveAllocString">mxmlSaveAllocString</A></LI>
<LI><A HREF="#mxmlSaveFd">mxmlSaveFd</A></LI>
<LI><A HREF="#mxmlSaveFile">mxmlSaveFile</A></LI>
<LI><A HREF="#mxmlSaveString">mxmlSaveString</A></LI>
<LI><A HREF="#8_2_56">mxmlSetCDATA</A></LI>
<LI><A HREF="#8_2_57">mxmlSetCustom</A></LI>
<LI><A HREF="#7_2_56">mxmlSetCDATA</A></LI>
<LI><A HREF="#7_2_57">mxmlSetCustom</A></LI>
<LI><A HREF="#mxmlSetCustomHandlers">mxmlSetCustomHandlers</A></LI>
<LI><A HREF="#mxmlSetElement">mxmlSetElement</A></LI>
<LI><A HREF="#mxmlSetErrorCallback">mxmlSetErrorCallback</A></LI>
@ -164,8 +164,8 @@ A { text-decoration: none }
<LI><A HREF="#mxmlSetReal">mxmlSetReal</A></LI>
<LI><A HREF="#mxmlSetText">mxmlSetText</A></LI>
<LI><A HREF="#mxmlSetTextf">mxmlSetTextf</A></LI>
<LI><A HREF="#8_2_66">mxmlSetUserData</A></LI>
<LI><A HREF="#8_2_67">mxmlSetWrapMargin</A></LI>
<LI><A HREF="#7_2_66">mxmlSetUserData</A></LI>
<LI><A HREF="#7_2_67">mxmlSetWrapMargin</A></LI>
<LI><A HREF="#mxmlWalkNext">mxmlWalkNext</A></LI>
<LI><A HREF="#mxmlWalkPrev">mxmlWalkPrev</A></LI>
</UL>
@ -193,12 +193,11 @@ A { text-decoration: none }
</UL>
</LI>
</UL>
<B><A HREF="#SCHEMA">XML Schema</A></B>
<B><A HREF="#SCHEMA">Appendix C - XML Schema</A></B>
<UL></UL>
<HR NOSHADE>
<H1 align="right"><A name="INTRO"><IMG align="right" alt="0" height="100"
hspace="10" src="0.gif" width="100"></A>Introduction</H1>
<P>This programmers manual describes Mini-XML version 2.10, a small XML
<H1 align="right"><A name="INTRO">Introduction</A></H1>
<P>This programmers manual describes Mini-XML version 2.11, a small XML
parsing library that you can use to read and write XML data files in
your C and C++ applications.</P>
<P>Mini-XML was initially developed for the <A href="http://gutenprint.sf.net/">
@ -226,8 +225,8 @@ libxml2</TT> library with something substantially smaller and
<LI><A href="https://www.cups.org/">CUPS</A></LI>
<LI><A href="http://zynaddsubfx.sourceforge.net">ZynAddSubFX</A></LI>
</UL>
<P>Please file a bug on msweet.org if you would like your project added
or removed from this list, or if you have any comments/quotes you would
<P>Please file a bug on Github if you would like your project added or
removed from this list, or if you have any comments/quotes you would
like me to publish about your experiences with Mini-XML.</P>
<!-- NEED 1in -->
@ -246,11 +245,9 @@ libxml2</TT> library with something substantially smaller and
software documentation.</LI>
<LI>Appendix A, &quot;<A href="#LICENSE">Mini-XML License</A>&quot;, provides the
terms and conditions for using and distributing Mini-XML.</LI>
<LI>Appendix B, &quot;<A href="#RELNOTES">Release Notes</A>&quot;, lists the
changes in each release of Mini-XML.</LI>
<LI>Appendix C, &quot;<A href="#REFERENCE">Library Reference</A>&quot;, contains a
<LI>Appendix B, &quot;<A href="#REFERENCE">Library Reference</A>&quot;, contains a
complete reference for Mini-XML, generated by <TT>mxmldoc</TT>.</LI>
<LI>Appendix D, &quot;<A href="#SCHEMA">XML Schema</A>&quot;, shows the XML schema
<LI>Appendix C, &quot;<A href="#SCHEMA">XML Schema</A>&quot;, shows the XML schema
used for the XML files produced by <TT>mxmldoc</TT>.</LI>
</UL>
@ -333,13 +330,12 @@ libxml2</TT> library with something substantially smaller and
<!-- NEED 6 -->
<H2><A NAME="1_5">Legal Stuff</A></H2>
<P>The Mini-XML library is copyright 2003-2016 by Michael R Sweet.
<P>The Mini-XML library is copyright 2003-2017 by Michael R Sweet.
License terms are described in <A href="#LICENSE">Appendix A - Mini-XML
License</A>.</P>
<HR NOSHADE>
<H1 align="right"><A name="INSTALL"><IMG align="right" alt="1" height="100"
hspace="10" src="1.gif" width="100"></A>Building, Installing, and
Packaging Mini-XML</H1>
<H1 align="right"><A name="INSTALL">Chapter 1 - Building, Installing,
and Packaging Mini-XML</A></H1>
<P>This chapter describes how to build, install, and package Mini-XML on
your system from the source archive. You will need an ANSI/ISO-C
compatible compiler to build Mini-XML - GCC works, as do most vendors'
@ -417,8 +413,8 @@ epm(1)</TT> program to create software packages in a variety of formats.
Red Hat Linux, DPKG for Debian Linux, PKG for Solaris, and so forth.
Use the corresponding commands to install the native packages.</P>
<HR NOSHADE>
<H1 align="right"><A name="BASICS"><IMG align="right" alt="2" height="100"
hspace="10" src="2.gif" width="100"></A>Getting Started with Mini-XML</H1>
<H1 align="right"><A name="BASICS">Chapter 2 - Getting Started with
Mini-XML</A></H1>
<P>This chapter describes how to write programs that use Mini-XML to
access data in an XML file. Mini-XML provides the following
functionality:</P>
@ -767,7 +763,7 @@ mxmlDelete</TT></A> function to recursively free the memory that is used
XML node tree:</P>
<PRE>
mxml_node_t *node;
node = mxmlWalkPrev(current, tree,
MXML_DESCEND);
@ -778,7 +774,7 @@ mxmlDelete</TT></A> function to recursively free the memory that is used
<TT>mxmlFindElement</TT></A> function:</P>
<PRE>
mxml_node_t *node;
node = mxmlFindElement(tree, tree, &quot;name&quot;,
&quot;attr&quot;, &quot;value&quot;,
MXML_DESCEND);
@ -896,9 +892,8 @@ mxmlDelete</TT></A> function to recursively free the memory that is used
the document tree or a wildcard (*) path representing 0 or more
intervening nodes.</P>
<HR NOSHADE>
<H1 align="right"><A name="ADVANCED"><IMG align="right" alt="3" height="100"
hspace="10" src="3.gif" width="100"></A>More Mini-XML Programming
Techniques</H1>
<H1 align="right"><A name="ADVANCED">Chapter 3 - More Mini-XML
Programming Techniques</A></H1>
<P>This chapter shows additional ways to use the Mini-XML library in
your programs.</P>
<H2><A name="LOAD_CALLBACKS">Load Callbacks</A></H2>
@ -1438,8 +1433,8 @@ mxmlRetain</TT></A> function. For example, the following SAX callback
}
</PRE>
<HR NOSHADE>
<H1 align="right"><A name="MXMLDOC"><IMG align="right" alt="4" height="100"
hspace="10" src="4.gif" width="100"></A>Using the mxmldoc Utility</H1>
<H1 align="right"><A name="MXMLDOC">Chapter 4 - Using the mxmldoc
Utility</A></H1>
<P>This chapter describes how to use <TT>mxmldoc(1)</TT> program to
automatically generate documentation from C and C++ source files.</P>
<H2><A NAME="5_1">The Basics</A></H2>
@ -1590,8 +1585,7 @@ hspace="10" src="4.gif" width="100"></A>Using the mxmldoc Utility</H1>
elements. For man page documentation, the file must consist of valid <TT>
nroff(1)</TT> text.</P>
<HR NOSHADE>
<H1 align="right"><A name="LICENSE"><IMG align="right" alt="A" height="100"
hspace="10" src="A.gif" width="100"></A>Mini-XML License</H1>
<H1 align="right"><A name="LICENSE">Appendix A - Mini-XML License</A></H1>
<P>The Mini-XML library and included programs are provided under the
terms of the GNU Library General Public License version 2 (LGPL2) with
the following exceptions:</P>
@ -2022,333 +2016,9 @@ hspace="10" src="A.gif" width="100"></A>Mini-XML License</H1>
</UL>
<P>That's all there is to it!</P>
<HR NOSHADE>
<H1 align="right"><A name="RELNOTES"><IMG align="right" alt="B" height="100"
hspace="10" src="B.gif" width="100"></A>Release Notes</H1>
<H2><A NAME="7_1">Changes in Mini-XML 2.10</A></H2>
<UL>
<LI>The version number in mxml.h was wrong (Bug #532)</LI>
<LI>The mxml.spec file was out of date (Bug #521)</LI>
<LI>Mini-XML no longer allows malformed element names (Bug #509)</LI>
<LI>mxmlLoad* and mxmlSAXLoad* did not properly create text nodes when
MXML_TEXT_CALLBACK was specified (Bug #531)</LI>
<LI>mxmlDelete used a recursive algorithm which could require large
amounts of stack space depending on the file (Bug #549, CVE-2016-4570)</LI>
<LI>mxmlWrite* used a recursive algorithm which could require large
amounts of stack space depending on the file (Bug #549, CVE-2016-4571)</LI>
</UL>
<H2><A NAME="7_2">Changes in Mini-XML 2.9</A></H2>
<UL>
<LI>mxmlLoad* did not correctly load value nodes with MXML_NO_CALLBACK
or MXML_TEXT_CALLBACK (Bug #502)</LI>
</UL>
<H2><A NAME="7_3">Changes in Mini-XML 2.8</A></H2>
<UL>
<LI>Now call docsetutil using xcrun on OS X (Bug #458)</LI>
<LI>mxmldoc did not escape special HTML characters inside @code foo@
comments.</LI>
<LI>Fixed a memory leak in mxmlElementDeleteAttr (Bug #452)</LI>
<LI>Added MXML_MAJOR/MINOR_VERSION definitions to mxml.h (Bug $461)</LI>
<LI>Fixed a bug reading UTF-16 characters from a file (Bug #454)</LI>
<LI>Fixed a memory leak when loading invalid XML (Bug #496)</LI>
<LI>Fixed an XML fragment loading problem (Bug #494)</LI>
</UL>
<H2><A NAME="7_4">Changes in Mini-XML 2.7</A></H2>
<UL>
<LI>Added 64-bit configurations to the VC++ project files (STR #129)</LI>
<LI>Fixed conformance of mxmldoc's HTML and CSS output.</LI>
<LI>Added data accessor (&quot;get&quot;) functions and made the mxml_node_t and
mxml_index_t structures private but still available in the Mini-XML
header to preserve source compatibility (STR #118)</LI>
<LI>Updated the source headers to reference the Mini-XML license and its
exceptions to the LGPL2 (STR #108)</LI>
<LI>Added a new mxmlFindPath() function to find the value node of a
named element (STR #110)</LI>
<LI>Building a static version of the library did not work on Windows
(STR #112)</LI>
<LI>The shared library did not include a destructor for the thread-
specific data key on UNIX-based operating systems (STR #103)</LI>
<LI>mxmlLoad* did not error out on XML with multiple root nodes (STR
#101)</LI>
<LI>Fixed an issue with the _mxml_vstrdupf function (STR #107)</LI>
<LI>mxmlSave* no longer write all siblings of the passed node, just that
node and its children (STR #109)</LI>
</UL>
<H2><A NAME="7_5">Changes in Mini-XML 2.6</A></H2>
<UL>
<LI>Documentation fixes (STR #91, STR #92)</LI>
<LI>The mxmldoc program did not handle typedef comments properly (STR
#72)</LI>
<LI>Added support for &quot;long long&quot; printf formats.</LI>
<LI>The XML parser now ignores BOMs in UTF-8 XML files (STR #89)</LI>
<LI>The mxmldoc program now supports generating Xcode documentation
sets.</LI>
<LI>mxmlSave*() did not output UTF-8 correctly on some platforms.</LI>
<LI>mxmlNewXML() now adds encoding=&quot;utf-8&quot; in the ?xml directive to
avoid problems with non-conformant XML parsers that assume something
other than UTF-8 as the default encoding.</LI>
<LI>Wrapping was not disabled when mxmlSetWrapMargin(0) was called, and
&quot;&lt;?xml ... ?&gt;&quot; was always followed by a newline (STR #76)</LI>
<LI>The mxml.pc.in file was broken (STR #79)</LI>
<LI>The mxmldoc program now handles &quot;typedef enum name {} name&quot;
correctly (STR #72)</LI>
</UL>
<H2><A NAME="7_6">Changes in Mini-XML 2.5</A></H2>
<UL>
<LI>The mxmldoc program now makes greater use of CSS and supports a
--css option to embed an alternate stylesheet.</LI>
<LI>The mxmldoc program now supports --header and --footer options to
insert documentation content before and after the generated content.</LI>
<LI>The mxmldoc program now supports a --framed option to generate
framed HTML output.</LI>
<LI>The mxmldoc program now creates a table of contents including any
headings in the --intro file when generating HTML output.</LI>
<LI>The man pages and man page output from mxmldoc did not use &quot;\-&quot; for
dashes (STR #68)</LI>
<LI>The debug version of the Mini-XML DLL could not be built (STR #65)</LI>
<LI>Processing instructions and directives did not work when not at the
top level of a document (STR #67)</LI>
<LI>Spaces around the &quot;=&quot; in attributes were not supported (STR #67)</LI>
</UL>
<H2><A NAME="7_7">Changes in Mini-XML 2.4</A></H2>
<UL>
<LI>Fixed shared library build problems on HP-UX and Mac OS X.</LI>
<LI>The mxmldoc program did not output argument descriptions for
functions properly.</LI>
<LI>All global settings (custom, error, and entity callbacks and the
wrap margin) are now managed separately for each thread.</LI>
<LI>Added mxmlElementDeleteAttr() function (STR #59)</LI>
<LI>mxmlElementSetAttrf() did not work (STR #57)</LI>
<LI>mxmlLoad*() incorrectly treated declarations as parent elements (STR
#56)</LI>
<LI>mxmlLoad*() incorrectly allowed attributes without values (STR #47)</LI>
<LI>Fixed Visual C++ build problems (STR #49)</LI>
<LI>mxmlLoad*() did not return NULL when an element contained an error
(STR #46)</LI>
<LI>Added support for the apos character entity (STR #54)</LI>
<LI>Fixed whitespace detection with Unicode characters (STR #48)</LI>
<LI>mxmlWalkNext() and mxmlWalkPrev() did not work correctly when called
with a node with no children as the top node (STR #53)</LI>
</UL>
<H2><A NAME="7_8">Changes in Mini-XML 2.3</A></H2>
<UL>
<LI>Added two exceptions to the LGPL to support static linking of
applications against Mini-XML</LI>
<LI>The mxmldoc utility can now generate man pages, too.</LI>
<LI>Added a mxmlNewXML() function</LI>
<LI>Added a mxmlElementSetAttrf() function (STR #43)</LI>
<LI>Added a snprintf() emulation function for the test program (STR #32)</LI>
<LI>Added the _CRT_SECURE_NO_DEPRECATE definition when building on VC++
2005 (STR #36)</LI>
<LI>mxmlLoad*() did not detect missing &gt; characters in elements (STR
#41)</LI>
<LI>mxmlLoad*() did not detect missing close tags at the end of an XML
document (STR #45)</LI>
<LI>Added user_data and ref_count members to mxml_node_t structure</LI>
<LI>Added mxmlReleaseNode() and mxmlRetainNode() APIs for
reference-counted nodes</LI>
<LI>Added mxmlSetWrapMargin() to control the wrapping of XML output</LI>
<LI>Added conditional check for EINTR error code for certain Windows
compilers that do not define it (STR #33)</LI>
<LI>The mxmldoc program now generates correct HTML 4.0 output -
previously it generated invalid XHTML</LI>
<LI>The mxmldoc program now supports &quot;@deprecated@, &quot;@private@&quot;, and
&quot;@since version@&quot; comments</LI>
<LI>Fixed function and enumeration type bugs in mxmldoc</LI>
<LI>Fixed the XML schema for mxmldoc</LI>
<LI>The mxmldoc program now supports --intro, --section, and --title
options</LI>
<LI>The mxmlLoad*() functions could leak a node on an error (STR #27)</LI>
<LI>The mxml_vsnprintf() function could get in an infinite loop on a
buffer overflow (STR #25)</LI>
<LI>Added new mxmlNewCDATA() and mxmlSetCDATA() functions to create and
set CDATA nodes, which are really just special element nodes</LI>
<LI>Added new MXML_IGNORE type and MXML_IGNORE_CB callback to ignore
non-element nodes, e.g. whitespace</LI>
<LI>mxmlLoad*() did not treat custom data as opaque, so whitespace
characters would be lost</LI>
</UL>
<H2><A NAME="7_9">Changes in Mini-XML 2.2.2</A></H2>
<UL>
<LI>mxmlLoad*() did not treat custom data as opaque, so whitespace
characters would be lost.</LI>
</UL>
<H2><A NAME="7_10">Changes in Mini-XML 2.2.1</A></H2>
<UL>
<LI>mxmlLoadFd(), mxmlLoadFile(), and mxmlLoadString() now correctly
return NULL on error (STR #21)</LI>
<LI>mxmlNewInteger(), mxmlNewOpaque(), mxmlNewReal(), mxmlNewText(), and
mxmlNewTextf() incorrectly required a parent node (STR #22)</LI>
<LI>Fixed an XML output bug in mxmldoc.</LI>
<LI>The &quot;make install&quot; target now uses the install command to set the
proper permissions on UNIX/Linux/OSX.</LI>
<LI>Fixed a MingW/Cygwin compilation problem (STR #18)</LI>
</UL>
<H2><A NAME="7_11">Changes in Mini-XML 2.2</A></H2>
<UL>
<LI>Added shared library support (STR #17)</LI>
<LI>mxmlLoad*() now returns an error when an XML stream contains illegal
control characters (STR #10)</LI>
<LI>mxmlLoad*() now returns an error when an element contains two
attributes with the same name in conformance with the XML spec (STR
#16)</LI>
<LI>Added support for CDATA (STR #14, STR #15)</LI>
<LI>Updated comment and processing instruction handling - no entity
support per XML specification.</LI>
<LI>Added checking for invalid comment termination (&quot;---&gt;&quot; is not
allowed)</LI>
</UL>
<H2><A NAME="7_12">Changes in Mini-XML 2.1</A></H2>
<UL>
<LI>Added support for custom data nodes (STR #6)</LI>
<LI>Now treat UTF-8 sequences which are longer than necessary as an
error (STR #4)</LI>
<LI>Fixed entity number support (STR #8)</LI>
<LI>Fixed mxmlLoadString() bug with UTF-8 (STR #7)</LI>
<LI>Fixed entity lookup bug (STR #5)</LI>
<LI>Added mxmlLoadFd() and mxmlSaveFd() functions.</LI>
<LI>Fixed multi-word UTF-16 handling.</LI>
</UL>
<H2><A NAME="7_13">Changes in Mini-XML 2.0</A></H2>
<UL>
<LI>New programmers manual.</LI>
<LI>Added Visual C++ project files for Microsoft Windows users.</LI>
<LI>Added optimizations to mxmldoc, mxmlSaveFile(), and mxmlIndexNew()
(STR #2)</LI>
<LI>mxmlEntityAddCallback() now returns an integer status (STR #2)</LI>
<LI>Added UTF-16 support (input only; all output is UTF-8)</LI>
<LI>Added index functions to build a searchable index of XML nodes.</LI>
<LI>Added character entity callback interface to support additional
character entities beyond those defined in the XHTML specification.</LI>
<LI>Added support for XHTML character entities.</LI>
<LI>The mxmldoc utility now produces XML output which conforms to an
updated XML schema, described in the file &quot;doc/mxmldoc.xsd&quot;.</LI>
<LI>Changed the whitespace callback interface to return strings instead
of a single character, allowing for greater control over the formatting
of XML files written using Mini-XML. THIS CHANGE WILL REQUIRE CHANGES
TO YOUR 1.x CODE IF YOU USE WHITESPACE CALLBACKS.</LI>
<LI>The mxmldoc utility now produces XML output which conforms to an
updated XML schema, described in the file &quot;doc/mxmldoc.xsd&quot;.</LI>
<LI>Changed the whitespace callback interface to return strings instead
of a single character, allowing for greater control over the formatting
of XML files written using Mini-XML. THIS CHANGE WILL REQUIRE CHANGES
TO YOUR 1.x CODE IF YOU USE WHITESPACE CALLBACKS.</LI>
<LI>The mxmldoc utility is now capable of documenting C++ classes,
functions, and structures, and correctly handles C++ comments.</LI>
<LI>Added new modular tests for mxmldoc.</LI>
<LI>Updated the mxmldoc output to be more compatible with embedding in
manuals produced with HTMLDOC.</LI>
<LI>The makefile incorrectly included a &quot;/&quot; separator between the
destination path and install path. This caused problems when building
and installing with MingW.</LI>
</UL>
<H2><A NAME="7_14">Changes in Mini-XML 1.3</A></H2>
<UL>
<LI>Fixes for mxmldoc.</LI>
<LI>Added support for reading standard HTML entity names.</LI>
<LI>mxmlLoadString/File() did not decode character entities in element
names, attribute names, or attribute values.</LI>
<LI>mxmlLoadString/File() would crash when loading non- conformant XML
data under an existing parent (top) node.</LI>
<LI>Fixed several bugs in the mxmldoc utility.</LI>
<LI>Added new error callback function to catch a variety of errors and
log them to someplace other than stderr.</LI>
<LI>The mxmlElementSetAttr() function now allows for NULL attribute
values.</LI>
<LI>The load and save functions now properly handle quoted element and
attribute name strings properly, e.g. for !DOCTYPE declarations.</LI>
</UL>
<H2><A NAME="7_15">Changes in Mini-XML 1.2</A></H2>
<UL>
<LI>Added new &quot;set&quot; methods to set the value of a node.</LI>
<LI>Added new formatted text methods mxmlNewTextf() and mxmlSetTextf()
to create/set a text node value using printf-style formats.</LI>
<LI>Added new standard callbacks for use with the mxmlLoad functions.</LI>
<LI>Updated the HTML documentation to include examples of the walk and
load function output.</LI>
<LI>Added --with/without-ansi configure option to control the strdup()
function check.</LI>
<LI>Added --with/without-snprintf configure option to control the
snprintf() and vsnprintf() function checks.</LI>
</UL>
<H2><A NAME="7_16">Changes in Mini-XML 1.1.2</A></H2>
<UL>
<LI>The mxml(3) man page wasn't updated for the string functions.</LI>
<LI>mxmlSaveString() returned the wrong number of characters.</LI>
<LI>mxml_add_char() updated the buffer pointer in the wrong place.</LI>
</UL>
<H2><A NAME="7_17">Changes in Mini-XML 1.1.1</A></H2>
<UL>
<LI>The private mxml_add_ch() function did not update the
start-of-buffer pointer which could cause a crash when using
mxmlSaveString().</LI>
<LI>The private mxml_write_ws() function called putc() instead of using
the proper callback which could cause a crash when using
mxmlSaveString().</LI>
<LI>Added a mxmlSaveAllocString() convenience function for saving an XML
node tree to an allocated string.</LI>
</UL>
<H2><A NAME="7_18">Changes in Mini-XML 1.1</A></H2>
<UL>
<LI>The mxmlLoadFile() function now uses dynamically allocated string
buffers for element names, attribute names, and attribute values.
Previously they were capped at 16383, 255, and 255 bytes, respectively.</LI>
<LI>Added a new mxmlLoadString() function for loading an XML node tree
from a string.</LI>
<LI>Added a new mxmlSaveString() function for saving an XML node tree to
a string.</LI>
<LI>Add emulation of strdup() if the local platform does not provide the
function.</LI>
</UL>
<H2><A NAME="7_19">Changes in Mini-XML 1.0</A></H2>
<UL>
<LI>The mxmldoc program now handles function arguments, structures,
unions, enumerations, classes, and typedefs properly.</LI>
<LI>Documentation provided via mxmldoc and more in-line comments in the
code.</LI>
<LI>Added man pages and packaging files.</LI>
</UL>
<H2><A NAME="7_20">Changes in Mini-XML 0.93</A></H2>
<UL>
<LI>New mxmldoc example program that is also used to create and update
code documentation using XML and produce HTML reference pages.</LI>
<LI>Added mxmlAdd() and mxmlRemove() functions to add and remove nodes
from a tree. This provides more flexibility over where the nodes are
inserted and allows nodes to be moved within the tree as needed.</LI>
<LI>mxmlLoadFile() now correctly handles comments.</LI>
<LI>mxmlLoadFile() now supports the required &quot;gt&quot;, &quot;quot&quot;, and &quot;nbsp&quot;
character entities.</LI>
<LI>mxmlSaveFile() now uses newlines as whitespace when valid to do so.</LI>
<LI>mxmlFindElement() now also takes attribute name and attribute value
string arguments to limit the search to specific elements with
attributes and/or values.</LI>
NULL pointers can be used as &quot;wildcards&quot;.
<LI>Added uninstall target to makefile, and auto-reconfig if Makefile.in
or configure.in are changed.</LI>
<LI>mxmlFindElement(), mxmlWalkNext(), and mxmlWalkPrev() now all
provide &quot;descend&quot; arguments to control whether they descend into child
nodes in the tree.</LI>
<LI>Fixed some whitespace issues in mxmlLoadFile().</LI>
<LI>Fixed Unicode output and whitespace issues in mxmlSaveFile().</LI>
<LI>mxmlSaveFile() now supports a whitespace callback to provide more
human-readable XML output under program control.</LI>
</UL>
<H2><A NAME="7_21">Changes in Mini-XML 0.92</A></H2>
<UL>
<LI>mxmlSaveFile() didn't return a value on success.</LI>
</UL>
<H2><A NAME="7_22">Changes in Mini-XML 0.91</A></H2>
<UL>
<LI>mxmlWalkNext() would go into an infinite loop.</LI>
</UL>
<H2><A NAME="7_23">Changes in Mini-XML 0.9</A></H2>
<UL>
<LI>Initial public release.</LI>
</UL>
<HR NOSHADE>
<DIV class="body">
<H1 align="right"><A name="REFERENCE"><IMG align="right" alt="C" height="100"
hspace="10" src="C.gif" width="100"></A>Library Reference</H1>
<H2 class="title"><A NAME="8_1">Contents</A></H2>
<H1 align="right"><A name="REFERENCE">Appendix B - Library Reference</A></H1>
<H2 class="title"><A NAME="7_1">Contents</A></H2>
<UL class="contents">
<LI><A href="#FUNCTIONS">Functions</A>
<UL class="code">
@ -2561,7 +2231,7 @@ mxml_save_cb_t</A></LI>
<H4 class="discussion">Discussion</H4>
<P class="discussion">If the specified node has a parent, this function
first removes the node from its parent using the mxmlRemove() function.</P>
<H3 class="function"><A NAME="8_2_3">
<H3 class="function"><A NAME="7_2_3">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.4&nbsp;<A name="mxmlElementDeleteAttr">mxmlElementDeleteAttr</A></A>
</H3>
@ -2616,7 +2286,7 @@ mxml_save_cb_t</A></LI>
of the attribute is replaced by the new string value. The string value
is copied into the element node. This function does nothing if the node
is not an element.</P>
<H3 class="function"><A NAME="8_2_6">
<H3 class="function"><A NAME="7_2_6">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlElementSetAttrf">mxmlElementSetAttrf</A></A></H3>
<P class="description">Set an attribute with a formatted value.</P>
@ -2737,7 +2407,7 @@ mxmlEntityRemoveCallback</A></H3>
and MXML_NO_DESCEND to find additional direct descendents of the node.
The top node argument constrains the search to a particular node's
children.</P>
<H3 class="function"><A NAME="8_2_12">
<H3 class="function"><A NAME="7_2_12">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlFindPath">mxmlFindPath</A></A></H3>
<P class="description">Find a node with the given path.</P>
@ -2762,7 +2432,7 @@ mxmlEntityRemoveCallback</A></H3>
<BR>
<BR> The first child node of the found node is returned if the given
node has children and the first child is a value node.</P>
<H3 class="function"><A NAME="8_2_13">
<H3 class="function"><A NAME="7_2_13">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetCDATA">mxmlGetCDATA</A></A></H3>
<P class="description">Get the value for a CDATA node.</P>
@ -2779,7 +2449,7 @@ mxmlEntityRemoveCallback</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion"><CODE>NULL</CODE> is returned if the node is not a
CDATA element.</P>
<H3 class="function"><A NAME="8_2_14">
<H3 class="function"><A NAME="7_2_14">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetCustom">mxmlGetCustom</A></A></H3>
<P class="description">Get the value for a custom node.</P>
@ -2796,7 +2466,7 @@ mxmlEntityRemoveCallback</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion"><CODE>NULL</CODE> is returned if the node (or its
first child) is not a custom value node.</P>
<H3 class="function"><A NAME="8_2_15">
<H3 class="function"><A NAME="7_2_15">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetElement">mxmlGetElement</A></A></H3>
<P class="description">Get the name for an element node.</P>
@ -2813,7 +2483,7 @@ mxmlEntityRemoveCallback</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion"><CODE>NULL</CODE> is returned if the node is not
an element node.</P>
<H3 class="function"><A NAME="8_2_16">
<H3 class="function"><A NAME="7_2_16">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetFirstChild">mxmlGetFirstChild</A></A></H3>
<P class="description">Get the first child of an element node.</P>
@ -2831,7 +2501,7 @@ mxmlEntityRemoveCallback</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion"><CODE>NULL</CODE> is returned if the node is not
an element node or if the node has no children.</P>
<H3 class="function"><A NAME="8_2_17">
<H3 class="function"><A NAME="7_2_17">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetInteger">mxmlGetInteger</A></A></H3>
<P class="description">Get the integer value from the specified node or
@ -2849,7 +2519,7 @@ mxmlEntityRemoveCallback</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion">0 is returned if the node (or its first child) is
not an integer value node.</P>
<H3 class="function"><A NAME="8_2_18">
<H3 class="function"><A NAME="7_2_18">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetLastChild">mxmlGetLastChild</A></A></H3>
<P class="description">Get the last child of an element node.</P>
@ -2882,7 +2552,7 @@ mxmlEntityRemoveCallback</A></H3>
<P class="description">Get the next node for the current parent.</P>
<P class="discussion"><CODE>NULL</CODE> is returned if this is the last
child for the current parent.</P>
<H3 class="function"><A NAME="8_2_20">
<H3 class="function"><A NAME="7_2_20">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetOpaque">mxmlGetOpaque</A></A></H3>
<P class="description">Get an opaque string value for a node or its
@ -2900,7 +2570,7 @@ mxmlEntityRemoveCallback</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion"><CODE>NULL</CODE> is returned if the node (or its
first child) is not an opaque value node.</P>
<H3 class="function"><A NAME="8_2_21">
<H3 class="function"><A NAME="7_2_21">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetParent">mxmlGetParent</A></A></H3>
<P class="description">Get the parent node.</P>
@ -2916,7 +2586,7 @@ mxmlEntityRemoveCallback</A></H3>
<P class="description">Parent node or NULL</P>
<H4 class="discussion">Discussion</H4>
<P class="discussion"><CODE>NULL</CODE> is returned for a root node.</P>
<H3 class="function"><A NAME="8_2_22">
<H3 class="function"><A NAME="7_2_22">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetPrevSibling">mxmlGetPrevSibling</A></A></H3>
<P class="description">Get the previous node for the current parent.</P>
@ -2934,7 +2604,7 @@ mxmlEntityRemoveCallback</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion"><CODE>NULL</CODE> is returned if this is the first
child for the current parent.</P>
<H3 class="function"><A NAME="8_2_23">
<H3 class="function"><A NAME="7_2_23">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetReal">mxmlGetReal</A></A></H3>
<P class="description">Get the real value for a node or its first child.</P>
@ -2951,7 +2621,7 @@ mxmlEntityRemoveCallback</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion">0.0 is returned if the node (or its first child)
is not a real value node.</P>
<H3 class="function"><A NAME="8_2_24">
<H3 class="function"><A NAME="7_2_24">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetRefCount">mxmlGetRefCount</A></A></H3>
<P class="description">Get the current reference (use) count for a node.</P>
@ -2970,7 +2640,7 @@ mxmlEntityRemoveCallback</A></H3>
the <A href="#mxmlRetain"><CODE>mxmlRetain</CODE></A> and <A href="#mxmlRelease">
<CODE>mxmlRelease</CODE></A> functions to increment and decrement a
node's reference count. .</P>
<H3 class="function"><A NAME="8_2_25">
<H3 class="function"><A NAME="7_2_25">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetText">mxmlGetText</A></A></H3>
<P class="description">Get the text value for a node or its first child.</P>
@ -2991,7 +2661,7 @@ mxmlEntityRemoveCallback</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion"><CODE>NULL</CODE> is returned if the node (or its
first child) is not a text node. The &quot;whitespace&quot; argument can be NULL.</P>
<H3 class="function"><A NAME="8_2_26">
<H3 class="function"><A NAME="7_2_26">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetType">mxmlGetType</A></A></H3>
<P class="description">Get the node type.</P>
@ -3008,7 +2678,7 @@ mxmlEntityRemoveCallback</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion"><CODE>MXML_IGNORE</CODE> is returned if &quot;node&quot; is <CODE>
NULL</CODE>.</P>
<H3 class="function"><A NAME="8_2_27">
<H3 class="function"><A NAME="7_2_27">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlGetUserData">mxmlGetUserData</A></A></H3>
<P class="description">Get the user data pointer for a node.</P>
@ -3070,7 +2740,7 @@ NULL</CODE>.</P>
this function for the first time with a particular set of &quot;element&quot; and
&quot;value&quot; strings. Passing NULL for both &quot;element&quot; and &quot;value&quot; is
equivalent to calling mxmlIndexEnum().</P>
<H3 class="function"><A NAME="8_2_31">
<H3 class="function"><A NAME="7_2_31">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlIndexGetCount">mxmlIndexGetCount</A></A></H3>
<P class="description">Get the number of nodes in an index.</P>
@ -3214,7 +2884,7 @@ NULL</CODE>.</P>
<BR> The constants MXML_INTEGER_CALLBACK, MXML_OPAQUE_CALLBACK,
MXML_REAL_CALLBACK, and MXML_TEXT_CALLBACK are defined for loading
child nodes of the specified type.</P>
<H3 class="function"><A NAME="8_2_37">
<H3 class="function"><A NAME="7_2_37">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewCDATA">mxmlNewCDATA</A></A></H3>
<P class="description">Create a new CDATA node.</P>
@ -3237,7 +2907,7 @@ NULL</CODE>.</P>
to specify that the new CDATA node has no parent. The data string must
be nul-terminated and is copied into the new node. CDATA nodes use the
MXML_ELEMENT type.</P>
<H3 class="function"><A NAME="8_2_38">
<H3 class="function"><A NAME="7_2_38">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.1&nbsp;<A name="mxmlNewCustom">mxmlNewCustom</A></A></H3>
<P class="description">Create a new custom data node.</P>
@ -3396,7 +3066,7 @@ NULL</CODE>.</P>
parameter is used to specify whether leading whitespace is present
before the node. The format string must be nul-terminated and is
formatted into the new node.</P>
<H3 class="function"><A NAME="8_2_45">
<H3 class="function"><A NAME="7_2_45">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlNewXML">mxmlNewXML</A></A></H3>
<P class="description">Create a new XML document tree.</P>
@ -3414,7 +3084,7 @@ NULL</CODE>.</P>
<P class="discussion">The &quot;version&quot; argument specifies the version
number to put in the ?xml element node. If NULL, version 1.0 is
assumed.</P>
<H3 class="function"><A NAME="8_2_46">
<H3 class="function"><A NAME="7_2_46">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRelease">mxmlRelease</A></A></H3>
<P class="description">Release a node.</P>
@ -3445,7 +3115,7 @@ NULL</CODE>.</P>
<P class="discussion">Does not free memory used by the node - use
mxmlDelete() for that. This function does nothing if the node has no
parent.</P>
<H3 class="function"><A NAME="8_2_48">
<H3 class="function"><A NAME="7_2_48">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlRetain">mxmlRetain</A></A></H3>
<P class="description">Retain a node.</P>
@ -3459,7 +3129,7 @@ NULL</CODE>.</P>
</DL>
<H4 class="returnvalue">Return Value</H4>
<P class="description">New reference count</P>
<H3 class="function"><A NAME="8_2_49">
<H3 class="function"><A NAME="7_2_49">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFd">mxmlSAXLoadFd</A></A></H3>
<P class="description">Load a file descriptor into an XML node tree
@ -3501,7 +3171,7 @@ NULL</CODE>.</P>
<BR> The SAX callback must call mxmlRetain() for any nodes that need to
be kept for later use. Otherwise, nodes are deleted when the parent
node is closed or after each data, comment, CDATA, or directive node.</P>
<H3 class="function"><A NAME="8_2_50">
<H3 class="function"><A NAME="7_2_50">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadFile">mxmlSAXLoadFile</A></A></H3>
<P class="description">Load a file into an XML node tree using a SAX
@ -3544,7 +3214,7 @@ NULL</CODE>.</P>
<BR> The SAX callback must call mxmlRetain() for any nodes that need to
be kept for later use. Otherwise, nodes are deleted when the parent
node is closed or after each data, comment, CDATA, or directive node.</P>
<H3 class="function"><A NAME="8_2_51">
<H3 class="function"><A NAME="7_2_51">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSAXLoadString">mxmlSAXLoadString</A></A></H3>
<P class="description">Load a string into an XML node tree using a SAX
@ -3694,7 +3364,7 @@ NULL</CODE>.</P>
MXML_NO_CALLBACK is specified, whitespace will only be added before
MXML_TEXT nodes with leading whitespace and before attribute names
inside opening element tags.</P>
<H3 class="function"><A NAME="8_2_56">
<H3 class="function"><A NAME="7_2_56">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetCDATA">mxmlSetCDATA</A></A></H3>
<P class="description">Set the element name of a CDATA node.</P>
@ -3714,7 +3384,7 @@ NULL</CODE>.</P>
<H4 class="discussion">Discussion</H4>
<P class="discussion">The node is not changed if it (or its first child)
is not a CDATA element node.</P>
<H3 class="function"><A NAME="8_2_57">
<H3 class="function"><A NAME="7_2_57">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.1&nbsp;<A name="mxmlSetCustom">mxmlSetCustom</A></A></H3>
<P class="description">Set the data and destructor of a custom data
@ -3889,7 +3559,7 @@ mxmlSetCustomHandlers</A></H3>
<H4 class="discussion">Discussion</H4>
<P class="discussion">The node is not changed if it (or its first child)
is not a text node.</P>
<H3 class="function"><A NAME="8_2_66">
<H3 class="function"><A NAME="7_2_66">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.7&nbsp;<A name="mxmlSetUserData">mxmlSetUserData</A></A></H3>
<P class="description">Set the user data pointer for a node.</P>
@ -3906,7 +3576,7 @@ mxmlSetCustomHandlers</A></H3>
</DL>
<H4 class="returnvalue">Return Value</H4>
<P class="description">0 on success, -1 on failure</P>
<H3 class="function"><A NAME="8_2_67">
<H3 class="function"><A NAME="7_2_67">
<!--span class=&quot;info&quot;-->
&nbsp;Mini-XML 2.3&nbsp;<A name="mxmlSetWrapMargin">mxmlSetWrapMargin</A></A></H3>
<P class="description">Set the wrap margin when saving XML data.</P>
@ -4057,21 +3727,20 @@ mxml_sax_event_e</A> mxml_sax_event_t;</P>
<DD class="description">Text fragment</DD>
</DL>
</DIV><HR NOSHADE>
<H1 align="right"><A name="SCHEMA"><IMG align="right" alt="D" height="100"
hspace="10" src="D.gif" width="100"></A>XML Schema</H1>
<H1 align="right"><A name="SCHEMA">Appendix C - XML Schema</A></H1>
<P>This appendix provides the XML schema that is used for the XML files
produced by <TT>mxmldoc</TT>. This schema is available on-line at:</P>
<PRE>
http://www.msweet.org/schema/mxmldoc.xsd
https://michaelrsweet.github.io/mxml/mxmldoc.xsd
</PRE>
<H2><A NAME="9_1">mxmldoc.xsd</A></H2>
<H2><A NAME="8_1">mxmldoc.xsd</A></H2>
<PRE><SMALL>
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;xsd:schema xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot;&gt;
&lt;xsd:annotation&gt;
&lt;xsd:documentation xml:lang=&quot;en&quot;&gt;
Mini-XML 2.9 documentation schema for mxmldoc output.
Copyright 2003-2014 by Michael Sweet.
Mini-XML 2.11 documentation schema for mxmldoc output.
Copyright 2003-2017 by Michael R Sweet.
&lt;/xsd:documentation&gt;
&lt;/xsd:annotation&gt;

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

@ -1,9 +1,8 @@
<html>
<body>
<h1 align='right'><a name='MXMLDOC'><img src="4.gif" align="right"
hspace="10" width="100" height="100" alt="4"></a>Using the mxmldoc
Utility</h1>
<h1 align='right'><a name='MXMLDOC'>Chapter 4 - Using the mxmldoc
Utility</a></h1>
<p>This chapter describes how to use <tt>mxmldoc(1)</tt> program to
automatically generate documentation from C and C++ source
@ -85,7 +84,7 @@ higher installed.</p>
<p>As noted previously, <tt>mxmldoc</tt> looks for in-line comments
to describe the functions, types, and constants in your code.
<tt>Mxmldoc</tt> will document all public names it finds in your
source files - any names starting with the underscore character (_)
source files - any names starting with the underscore character (_)
or names that are documented with the <A
HREF="#ATDIRECTIVES">@private@</A> directive are treated as private
and are not documented.</p>
@ -95,7 +94,7 @@ are used to document that function or type. Comments appearing after
argument, definition, return type, or variable declarations are used
to document that argument, definition, return type, or variable. For
example, the following code excerpt defines a key/value structure
and a function that creates a new instance of that structure:</p>
and a function that creates a new instance of that structure:</p>
<pre>
/* A key/value pair. This is used with the

@ -1,4 +1 @@
<h1 align='right'><a name='REFERENCE'><img src="C.gif" align="right"
hspace="10" width="100" height="100" alt="C"></a>Library
Reference</h1>
<h1 align='right'><a name='REFERENCE'>Appendix B - Library Reference</h1>

@ -3,7 +3,7 @@
<head>
<title>Documentation </title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="creator" content="Mini-XML v2.10">
<meta name="creator" content="Mini-XML v2.11">
<style type="text/css"><!--
body, p, h1, h2, h3, h4 {
font-family: "lucida grande", geneva, helvetica, arial, sans-serif;
@ -138,10 +138,7 @@ h3.title {
</head>
<body>
<div class='body'>
<h1 align='right'><a name='REFERENCE'><img src="C.gif" align="right"
hspace="10" width="100" height="100" alt="C"></a>Library
Reference</h1>
<h1 align='right'><a name='REFERENCE'>Appendix B - Library Reference</h1>
<h2 class="title">Contents</h2>
<ul class="contents">
<li><a href="#FUNCTIONS">Functions</a><ul class="code">

@ -1,594 +0,0 @@
<html>
<body>
<h1 align='right'><a name='RELNOTES'><img src="B.gif" align="right"
hspace="10" width="100" height="100" alt="B"></a>Release Notes</h1>
<h2 _hd_omit_toc>Changes in Mini-XML 2.10</h2>
<ul>
<li>The version number in mxml.h was wrong (Bug #532)</li>
<li>The mxml.spec file was out of date (Bug #521)</li>
<li>Mini-XML no longer allows malformed element names (Bug #509)</li>
<li>mxmlLoad* and mxmlSAXLoad* did not properly create text nodes when MXML_TEXT_CALLBACK was specified (Bug #531)</li>
<li>mxmlDelete used a recursive algorithm which could require large amounts of stack space depending on the file (Bug #549, CVE-2016-4570)</li>
<li>mxmlWrite* used a recursive algorithm which could require large amounts of stack space depending on the file (Bug #549, CVE-2016-4571)</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.9</h2>
<ul>
<li>mxmlLoad* did not correctly load value nodes with MXML_NO_CALLBACK or MXML_TEXT_CALLBACK (Bug #502)</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.8</h2>
<ul>
<li>Now call docsetutil using xcrun on OS X (Bug #458)</li>
<li>mxmldoc did not escape special HTML characters inside @code foo@
comments.</li>
<li>Fixed a memory leak in mxmlElementDeleteAttr (Bug #452)</li>
<li>Added MXML_MAJOR/MINOR_VERSION definitions to mxml.h (Bug $461)</li>
<li>Fixed a bug reading UTF-16 characters from a file (Bug #454)</li>
<li>Fixed a memory leak when loading invalid XML (Bug #496)</li>
<li>Fixed an XML fragment loading problem (Bug #494)</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.7</h2>
<ul>
<li>Added 64-bit configurations to the VC++ project files (STR #129)</li>
<li>Fixed conformance of mxmldoc's HTML and CSS output.</li>
<li>Added data accessor ("get") functions and made the mxml_node_t and
mxml_index_t structures private but still available in the Mini-XML
header to preserve source compatibility (STR #118)</li>
<li>Updated the source headers to reference the Mini-XML license and its
exceptions to the LGPL2 (STR #108)</li>
<li>Added a new mxmlFindPath() function to find the value node of a
named element (STR #110)</li>
<li>Building a static version of the library did not work on Windows
(STR #112)</li>
<li>The shared library did not include a destructor for the thread-
specific data key on UNIX-based operating systems (STR #103)</li>
<li>mxmlLoad* did not error out on XML with multiple root nodes (STR
#101)</li>
<li>Fixed an issue with the _mxml_vstrdupf function (STR #107)</li>
<li>mxmlSave* no longer write all siblings of the passed node, just that
node and its children (STR #109)</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.6</h2>
<ul>
<li>Documentation fixes (STR #91, STR #92)</li>
<li>The mxmldoc program did not handle typedef comments properly (STR
#72)</li>
<li>Added support for &quot;long long&quot; printf formats.</li>
<li>The XML parser now ignores BOMs in UTF-8 XML files (STR #89)</li>
<li>The mxmldoc program now supports generating Xcode documentation
sets.</li>
<li>mxmlSave*() did not output UTF-8 correctly on some platforms.</li>
<li>mxmlNewXML() now adds encoding=&quot;utf-8&quot; in the ?xml
directive to avoid problems with non-conformant XML parsers that assume
something other than UTF-8 as the default encoding.</li>
<li>Wrapping was not disabled when mxmlSetWrapMargin(0) was called, and
&quot;&lt;?xml ... ?&gt;&quot; was always followed by a newline
(STR #76)</li>
<li>The mxml.pc.in file was broken (STR #79)</li>
<li>The mxmldoc program now handles &quot;typedef enum name {}
name&quot; correctly (STR #72)</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.5</h2>
<ul>
<li>The mxmldoc program now makes greater use of CSS and
supports a --css option to embed an alternate stylesheet.</li>
<li>The mxmldoc program now supports --header and --footer
options to insert documentation content before and
after the generated content.</li>
<li>The mxmldoc program now supports a --framed option to
generate framed HTML output.</li>
<li>The mxmldoc program now creates a table of contents
including any headings in the --intro file when
generating HTML output.</li>
<li>The man pages and man page output from mxmldoc did
not use "\-" for dashes (STR #68)</li>
<li>The debug version of the Mini-XML DLL could not be
built (STR #65)</li>
<li>Processing instructions and directives did not work
when not at the top level of a document (STR #67)</li>
<li>Spaces around the "=" in attributes were not supported
(STR #67)</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.4</h2>
<ul>
<li>Fixed shared library build problems on HP-UX and Mac OS X.</li>
<li>The mxmldoc program did not output argument descriptions
for functions properly.</li>
<li>All global settings (custom, error, and entity callbacks
and the wrap margin) are now managed separately for each
thread.</li>
<li>Added mxmlElementDeleteAttr() function (STR #59)</li>
<li>mxmlElementSetAttrf() did not work (STR #57)</li>
<li>mxmlLoad*() incorrectly treated declarations as parent
elements (STR #56)</li>
<li>mxmlLoad*() incorrectly allowed attributes without
values (STR #47)</li>
<li>Fixed Visual C++ build problems (STR #49)</li>
<li>mxmlLoad*() did not return NULL when an element
contained an error (STR #46)</li>
<li>Added support for the apos character entity (STR
#54)</li> <li>Fixed whitespace detection with Unicode
characters (STR #48)</li>
<li>mxmlWalkNext() and mxmlWalkPrev() did not work correctly
when called with a node with no children as the top node
(STR #53)</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.3</h2>
<ul>
<li>Added two exceptions to the LGPL to support static
linking of applications against Mini-XML</li>
<li>The mxmldoc utility can now generate man pages,
too.</li>
<li>Added a mxmlNewXML() function</li>
<li>Added a mxmlElementSetAttrf() function (STR #43)</li>
<li>Added a snprintf() emulation function for the test
program (STR #32)</li>
<li>Added the _CRT_SECURE_NO_DEPRECATE definition when
building on VC++ 2005 (STR #36)</li>
<li>mxmlLoad*() did not detect missing > characters in
elements (STR #41)</li>
<li>mxmlLoad*() did not detect missing close tags at the
end of an XML document (STR #45)</li>
<li>Added user_data and ref_count members to mxml_node_t
structure</li>
<li>Added mxmlReleaseNode() and mxmlRetainNode() APIs for
reference-counted nodes</li>
<li>Added mxmlSetWrapMargin() to control the wrapping of
XML output</li>
<li>Added conditional check for EINTR error code for
certain Windows compilers that do not define it (STR
#33)</li>
<li>The mxmldoc program now generates correct HTML 4.0
output - previously it generated invalid XHTML</li>
<li>The mxmldoc program now supports "@deprecated@,
"@private@", and "@since version@" comments</li>
<li>Fixed function and enumeration type bugs in
mxmldoc</li>
<li>Fixed the XML schema for mxmldoc</li>
<li>The mxmldoc program now supports --intro, --section,
and --title options</li>
<li>The mxmlLoad*() functions could leak a node on an
error (STR #27)</li>
<li>The mxml_vsnprintf() function could get in an
infinite loop on a buffer overflow (STR #25)</li>
<li>Added new mxmlNewCDATA() and mxmlSetCDATA() functions
to create and set CDATA nodes, which are really just
special element nodes</li>
<li>Added new MXML_IGNORE type and MXML_IGNORE_CB
callback to ignore non-element nodes, e.g.
whitespace</li>
<li>mxmlLoad*() did not treat custom data as opaque, so
whitespace characters would be lost</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.2.2</h2>
<ul>
<li>mxmlLoad*() did not treat custom data as opaque, so
whitespace characters would be lost.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.2.1</h2>
<ul>
<li>mxmlLoadFd(), mxmlLoadFile(), and mxmlLoadString()
now correctly return NULL on error (STR #21)</li>
<li>mxmlNewInteger(), mxmlNewOpaque(), mxmlNewReal(),
mxmlNewText(), and mxmlNewTextf() incorrectly required a
parent node (STR #22)</li>
<li>Fixed an XML output bug in mxmldoc.</li>
<li>The "make install" target now uses the install
command to set the proper permissions on
UNIX/Linux/OSX.</li>
<li>Fixed a MingW/Cygwin compilation problem (STR
#18)</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.2</h2>
<ul>
<li>Added shared library support (STR #17)</li>
<li>mxmlLoad*() now returns an error when an XML stream
contains illegal control characters (STR #10)</li>
<li>mxmlLoad*() now returns an error when an element
contains two attributes with the same name in
conformance with the XML spec (STR #16)</li>
<li>Added support for CDATA (STR #14, STR #15)</li>
<li>Updated comment and processing instruction handling -
no entity support per XML specification.</li>
<li>Added checking for invalid comment termination ("--->"
is not allowed)</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.1</h2>
<ul>
<li>Added support for custom data nodes (STR #6)</li>
<li>Now treat UTF-8 sequences which are longer than
necessary as an error (STR #4)</li>
<li>Fixed entity number support (STR #8)</li>
<li>Fixed mxmlLoadString() bug with UTF-8 (STR #7)</li>
<li>Fixed entity lookup bug (STR #5)</li>
<li>Added mxmlLoadFd() and mxmlSaveFd() functions.</li>
<li>Fixed multi-word UTF-16 handling.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 2.0</h2>
<ul>
<li>New programmers manual.</li>
<li>Added Visual C++ project files for Microsoft Windows
users.</li>
<li>Added optimizations to mxmldoc, mxmlSaveFile(), and
mxmlIndexNew() (STR #2)</li>
<li>mxmlEntityAddCallback() now returns an integer
status (STR #2)</li>
<li>Added UTF-16 support (input only; all output is
UTF-8)</li>
<li>Added index functions to build a searchable index of
XML nodes.</li>
<li>Added character entity callback interface to support
additional character entities beyond those defined in
the XHTML specification.</li>
<li>Added support for XHTML character entities.</li>
<li>The mxmldoc utility now produces XML output which
conforms to an updated XML schema, described in the file
"doc/mxmldoc.xsd".</li>
<li>Changed the whitespace callback interface to return
strings instead of a single character, allowing for
greater control over the formatting of XML files written
using Mini-XML. THIS CHANGE WILL REQUIRE CHANGES TO
YOUR 1.x CODE IF YOU USE WHITESPACE CALLBACKS.</li>
<li>The mxmldoc utility now produces XML output which
conforms to an updated XML schema, described in the file
"doc/mxmldoc.xsd".</li>
<li>Changed the whitespace callback interface to return
strings instead of a single character, allowing for
greater control over the formatting of XML files written
using Mini-XML. THIS CHANGE WILL REQUIRE CHANGES TO
YOUR 1.x CODE IF YOU USE WHITESPACE CALLBACKS.</li>
<li>The mxmldoc utility is now capable of documenting C++
classes, functions, and structures, and correctly
handles C++ comments.</li>
<li>Added new modular tests for mxmldoc.</li>
<li>Updated the mxmldoc output to be more compatible with
embedding in manuals produced with HTMLDOC.</li>
<li>The makefile incorrectly included a "/" separator
between the destination path and install path. This
caused problems when building and installing with
MingW.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 1.3</h2>
<ul>
<li>Fixes for mxmldoc.</li>
<li>Added support for reading standard HTML entity names.</li>
<li>mxmlLoadString/File() did not decode character
entities in element names, attribute names, or
attribute values.</li>
<li>mxmlLoadString/File() would crash when loading non-
conformant XML data under an existing parent (top)
node.</li>
<li>Fixed several bugs in the mxmldoc utility.</li>
<li>Added new error callback function to catch a variety
of errors and log them to someplace other than stderr.</li>
<li>The mxmlElementSetAttr() function now allows for NULL
attribute values.</li>
<li>The load and save functions now properly handle quoted
element and attribute name strings properly, e.g. for
!DOCTYPE declarations.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 1.2</h2>
<ul>
<li>Added new "set" methods to set the value of a node.</li>
<li>Added new formatted text methods mxmlNewTextf() and
mxmlSetTextf() to create/set a text node value using
printf-style formats.</li>
<li>Added new standard callbacks for use with the mxmlLoad
functions.</li>
<li>Updated the HTML documentation to include examples of
the walk and load function output.</li>
<li>Added --with/without-ansi configure option to control
the strdup() function check.</li>
<li>Added --with/without-snprintf configure option to
control the snprintf() and vsnprintf() function
checks.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 1.1.2</h2>
<ul>
<li>The mxml(3) man page wasn't updated for the string
functions.</li>
<li>mxmlSaveString() returned the wrong number of
characters.</li>
<li>mxml_add_char() updated the buffer pointer in the
wrong place.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 1.1.1</h2>
<ul>
<li>The private mxml_add_ch() function did not update the
start-of-buffer pointer which could cause a crash when
using mxmlSaveString().</li>
<li>The private mxml_write_ws() function called putc()
instead of using the proper callback which could cause
a crash when using mxmlSaveString().</li>
<li>Added a mxmlSaveAllocString() convenience function for
saving an XML node tree to an allocated string.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 1.1</h2>
<ul>
<li>The mxmlLoadFile() function now uses dynamically
allocated string buffers for element names, attribute
names, and attribute values. Previously they were
capped at 16383, 255, and 255 bytes, respectively.</li>
<li>Added a new mxmlLoadString() function for loading an
XML node tree from a string.</li>
<li>Added a new mxmlSaveString() function for saving an
XML node tree to a string.</li>
<li>Add emulation of strdup() if the local platform does
not provide the function.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 1.0</h2>
<ul>
<li>The mxmldoc program now handles function arguments,
structures, unions, enumerations, classes, and
typedefs properly.</li>
<li>Documentation provided via mxmldoc and more in-line
comments in the code.</li>
<li>Added man pages and packaging files.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 0.93</h2>
<ul>
<li>New mxmldoc example program that is also used to
create and update code documentation using XML and
produce HTML reference pages.</li>
<li>Added mxmlAdd() and mxmlRemove() functions to add and
remove nodes from a tree. This provides more
flexibility over where the nodes are inserted and
allows nodes to be moved within the tree as needed.</li>
<li>mxmlLoadFile() now correctly handles comments.</li>
<li>mxmlLoadFile() now supports the required "gt", "quot",
and "nbsp" character entities.</li>
<li>mxmlSaveFile() now uses newlines as whitespace
when valid to do so.</li>
<li>mxmlFindElement() now also takes attribute name and
attribute value string arguments to limit the search
to specific elements with attributes and/or values.</li>
NULL pointers can be used as "wildcards".</li>
<li>Added uninstall target to makefile, and auto-reconfig
if Makefile.in or configure.in are changed.</li>
<li>mxmlFindElement(), mxmlWalkNext(), and mxmlWalkPrev()
now all provide "descend" arguments to control whether
they descend into child nodes in the tree.</li>
<li>Fixed some whitespace issues in mxmlLoadFile().</li>
<li>Fixed Unicode output and whitespace issues in
mxmlSaveFile().</li>
<li>mxmlSaveFile() now supports a whitespace callback to
provide more human-readable XML output under program
control.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 0.92</h2>
<ul>
<li>mxmlSaveFile() didn't return a value on success.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 0.91</h2>
<ul>
<li>mxmlWalkNext() would go into an infinite loop.</li>
</ul>
<h2 _hd_omit_toc>Changes in Mini-XML 0.9</h2>
<ul>
<li>Initial public release.</li>
</ul>
</body>
</html>

@ -1,15 +1,14 @@
<html>
<body>
<h1 align='right'><a name='SCHEMA'><img src="D.gif" align="right"
hspace="10" width="100" height="100" alt="D"></a>XML Schema</h1>
<h1 align='right'><a name='SCHEMA'>Appendix C - XML Schema</a></h1>
<p>This appendix provides the XML schema that is used for the XML
files produced by <tt>mxmldoc</tt>. This schema is available on-line
at:</p>
<pre>
http://www.msweet.org/schema/mxmldoc.xsd
https://michaelrsweet.github.io/mxml/mxmldoc.xsd
</pre>
<h2 _hd_omit_toc>mxmldoc.xsd</h2>
@ -19,8 +18,8 @@ at:</p>
&lt;xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
&lt;xsd:annotation>
&lt;xsd:documentation xml:lang="en">
Mini-XML 2.9 documentation schema for mxmldoc output.
Copyright 2003-2014 by Michael Sweet.
Mini-XML 2.11 documentation schema for mxmldoc output.
Copyright 2003-2017 by Michael R Sweet.
&lt;/xsd:documentation>
&lt;/xsd:annotation>

@ -3,15 +3,16 @@
<head>
<title>Mini-XML Programmers Manual</title>
<meta name="author" content="Michael R Sweet">
<meta name="copyright" content="Copyright 2003-2016">
<meta name="copyright" content="Copyright 2003-2017">
</head>
<body>
<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" summary="">
<tr><td height="100%">
<H1 ALIGN="CENTER"><FONT SIZE="-1">Mini-XML Programmers Manual<br>
Version 2.10</H1>
<h1 align="center"><img src="mxml.png" width="50%"><br>
<font size="-1">Mini-XML Programmers Manual<br>
Version 2.11</h1>
<P ALIGN="CENTER">MICHAEL R. SWEET</P>
@ -19,9 +20,9 @@ Version 2.10</H1>
</table>
<!-- NEW PAGE -->
<P><FONT SIZE="+1"><B>Mini-XML Programmers Manual, Version 2.10</B></FONT></P>
<P><FONT SIZE="+1"><B>Mini-XML Programmers Manual, Version 2.11</B></FONT></P>
<P><B>Copyright &copy; 2003-2016 by Michael R Sweet</B></P>
<P><B>Copyright &copy; 2003-2017 by Michael R Sweet</B></P>
<P><SMALL>Permission is granted to copy, distribute and/or modify
this document under the terms of the GNU Library General Public

@ -1,10 +1,7 @@
/*
* "$Id$"
* XML Schema validation program for Mini-XML, a small XML file parsing library.
*
* XML Schema validation program for Mini-XML, a small XML-like file
* parsing library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -12,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -31,10 +28,6 @@ int /* O - Exit status */
main(int argc, /* I - Number of command-line args */
char *argv[]) /* I - Command-line args */
{
/* TODO: Implement me */
return (0);
}
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
/*
* "$Id$"
* Attribute support code for Mini-XML, a small XML file parsing library.
*
* Attribute support code for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -307,8 +305,3 @@ mxml_set_attr(mxml_node_t *node, /* I - Element node */
return (0);
}
/*
* End of "$Id$".
*/

@ -1,10 +1,7 @@
/*
* "$Id$"
* Character entity support code for Mini-XML, a small XML file parsing library.
*
* Character entity support code for Mini-XML, a small XML-like
* file parsing library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -12,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -442,8 +439,3 @@ _mxml_entity_cb(const char *name) /* I - Entity name */
else
return (-1);
}
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
/*
* "$Id$"
* File loading code for Mini-XML, a small XML file parsing library.
*
* File loading code for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2003-2016 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -3064,8 +3062,3 @@ mxml_write_ws(mxml_node_t *node, /* I - Current node */
return (col);
}
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
/*
* "$Id$"
* Node get functions for Mini-XML, a small XML file parsing library.
*
* Node get functions for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2014 by Michael R Sweet.
* Copyright 2014-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -445,8 +443,3 @@ mxmlGetUserData(mxml_node_t *node) /* I - Node to get */
return (node->user_data);
}
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
/*
* "$Id$"
* Index support code for Mini-XML, a small XML file parsing library.
*
* Index support code for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -652,8 +650,3 @@ index_sort(mxml_index_t *ind, /* I - Index to sort */
}
while (right > (left = tempr + 1));
}
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
/*
* "$Id$"
* Node support code for Mini-XML, a small XML file parsing library.
*
* Node support code for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2003-2016 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -835,8 +833,3 @@ mxml_new(mxml_node_t *parent, /* I - Parent node */
return (node);
}
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
/*
* "$Id$"
* Private functions for Mini-XML, a small XML file parsing library.
*
* Private functions for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -316,8 +314,3 @@ _mxml_global(void)
return (&global);
}
#endif /* HAVE_PTHREAD_H */
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
/*
* "$Id$"
* Private definitions for Mini-XML, a small XML file parsing library.
*
* Private definitions for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -43,8 +41,3 @@ typedef struct _mxml_global_s
extern _mxml_global_t *_mxml_global(void);
extern int _mxml_entity_cb(const char *name);
/*
* End of "$Id$".
*/

@ -1,10 +1,7 @@
/*
* "$Id$"
* Search/navigation functions for Mini-XML, a small XML file parsing library.
*
* Search/navigation functions for Mini-XML, a small XML-like file
* parsing library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -12,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -273,8 +270,3 @@ mxmlWalkPrev(mxml_node_t *node, /* I - Current node */
else
return (NULL);
}
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
/*
* "$Id$"
* Node set functions for Mini-XML, a small XML file parsing library.
*
* Node set functions for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -330,8 +328,3 @@ mxmlSetUserData(mxml_node_t *node, /* I - Node to set */
node->user_data = data;
return (0);
}
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
/*
* "$Id$"
* String functions for Mini-XML, a small XML file parsing library.
*
* String functions for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -462,8 +460,3 @@ _mxml_vstrdupf(const char *format, /* I - Printf-style format string */
return (buffer);
}
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
/*
* "$Id$"
* Header file for Mini-XML, a small XML file parsing library.
*
* Header file for Mini-XML, a small XML-like file parsing library.
*
* Copyright 2003-2016 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -37,7 +35,7 @@
*/
# define MXML_MAJOR_VERSION 2 /* Major version number */
# define MXML_MINOR_VERSION 10 /* Minor version number */
# define MXML_MINOR_VERSION 11 /* Minor version number */
# define MXML_TAB 8 /* Tabs every N columns */
@ -325,8 +323,3 @@ extern mxml_type_t mxml_real_cb(mxml_node_t *node);
}
# endif /* __cplusplus */
#endif /* !_mxml_h_ */
/*
* End of "$Id$".
*/

@ -1,9 +1,7 @@
#
# "$Id$"
#
# EPM software list file for Mini-XML, a small XML library.
#
# Copyright 2003-2016 by Michael R Sweet.
# Copyright 2003-2017 by Michael R Sweet.
#
# These coded instructions, statements, and computer programs are the
# property of Michael R Sweet and are protected by Federal copyright
@ -11,7 +9,7 @@
# which should have been included with this file. If this file is
# missing or damaged, see the license at:
#
# http://www.msweet.org/projects.php/Mini-XML
# https://michaelrsweet.github.io/mxml
#
# Directories...
@ -29,7 +27,7 @@ $PICFLAG=@PICFLAG@
# Product information
%product mxml
%copyright 2003-2016 by Michael R Sweet
%copyright 2003-2017 by Michael R Sweet
%vendor Michael R Sweet
%license ${srcdir}/COPYING
%readme ${srcdir}/README
@ -90,16 +88,12 @@ f 0444 root sys ${libdir}/libmxml.a libmxml.a
f 0444 root sys $(libdir)/pkgconfig/mxml.pc mxml.pc
# Documentation
f 0444 root sys ${docdir}/README $srcdir/README
f 0444 root sys ${docdir}/README $srcdir/README.md
f 0444 root sys ${docdir}/COPYING $srcdir/COPYING
f 0444 root sys ${docdir}/CHANGES $srcdir/CHANGES
f 0444 root sys ${docdir}/CHANGES $srcdir/CHANGES.md
f 0444 root sys ${docdir}/mxml.html $srcdir/doc/mxml.html
f 0444 root sys ${docdir}/mxml.pdf $srcdir/doc/mxml.pdf
# Man pages
f 0444 root sys ${mandir}/man1/mxmldoc.1 $srcdir/mxmldoc.man
f 0444 root sys ${mandir}/man3/mxml.3 $srcdir/mxml.man
#
# End of "$Id$".
#

@ -1,11 +1,9 @@
/*#define DEBUG 1*/
/*
* "$Id$"
*
* Documentation generator using Mini-XML, a small XML-like file parsing
* Documentation generator using Mini-XML, a small XML file parsing
* library.
*
* Copyright 2003-2014 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -13,7 +11,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.minixml.org/
* https://michaelrsweet.github.io/mxml
*/
/*
@ -5790,8 +5788,3 @@ ws_cb(mxml_node_t *node, /* I - Element node */
return ("\n");
}
}
/*
* End of "$Id$".
*/

@ -1,14 +1,12 @@
/*
* "$Id$"
*
* Test program for Mini-XML, a small XML-like file parsing library.
* Test program for Mini-XML, a small XML file parsing library.
*
* Usage:
*
* ./testmxml input.xml [string-output.xml] >stdio-output.xml
* ./testmxml "<?xml ..." [string-output.xml] >stdio-output.xml
*
* Copyright 2003-2016 by Michael R Sweet.
* Copyright 2003-2017 by Michael R Sweet.
*
* These coded instructions, statements, and computer programs are the
* property of Michael R Sweet and are protected by Federal copyright
@ -16,7 +14,7 @@
* which should have been included with this file. If this file is
* missing or damaged, see the license at:
*
* http://www.msweet.org/projects.php/Mini-XML
* https://michaelrsweet.github.io/mxml
*/
/*
@ -867,8 +865,3 @@ whitespace_cb(mxml_node_t *node, /* I - Element node */
return (NULL);
}
/*
* End of "$Id$".
*/

Loading…
Cancel
Save