2022-09-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.2.4

2022-08-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  MSVC_NMake/README: Fix up libsigc++ .lib name.

  It's always sigc-vc140-2_0.lib for Visual Studio 2015 and later.

2022-08-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  MSVC_NMake/README: Document dependency placement

  ... so that it is easier for people to build libxml++ with less need to
  tinker with the build files or the %INCLUDE% and %LIB% envvars.

2022-08-16  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Make things more configurable

  Add the INCLUDEDIR and LIBDIR options, so that we can set where we find
  dependent headers and libraries, if they are not in %INCLUDE% and/or %LIB%
  and are not in $(PREFIX)\include and $(PREFIX)\lib.
  
  Also mention about the PREFIX and PERL options, so that one can use them when
  necessary.

2022-06-27  Chun-wei Fan  <fanchunwei@src.gnome.org>

  istream_ioparser test: Include algorithm header

  Some Visual Studio releases require it to be included to use std::min().

2022-06-16  Andrew Potter  <agpotter@gmail.com>

  parsers: Avoid std::getline for istream inputs

  For streambuf implementations that can't set a public get area, getline falls
  back to a character-by-character implementation. Instead we can pass the stream
  to xmlCreateIOParserCtxt(). This simplifies the parse stream methods and brings
  them nearly identical to the other parse methods.
  Pull request #28

2022-05-24  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Meson/MSVC: Ignore warning C4706

  ... which means "assignment within conditional expression".  We don't really
  need to worry too much about this warning here.

2022-05-24  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson/MSVC: Re-organize warning-related compiler flags

  Add a short description for each of the warning-related compiler flags that we
  apply globally.
  
  Also, apply '/wd4267' only when we are building a 64-bit build, as that warning
  should only be related to 64-bit builds.

2022-05-23  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Meson: Some minor cleanups

  We don't actually need to check for the /wd4828 compiler flag here, so stop
  checking for that.
  
  Move the '/utf-8' compiler flag check to be together with the other warning-
  related compiler flag checks.

2022-05-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Avoid configuration warnings

2022-05-06  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/manual: Sort example file lists

  so that docs/manual/libxml++.xml builds in a reproducible way. See
  https://gitlab.gnome.org/GNOME/gtkmm-documentation/-/merge_requests/15
  by Bernhard M. Wiedemann.

2022-03-31  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  libxml++/libxml++.h: Update the link to the tutorial

2022-02-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Specify 'check' option in run_command()

  The default value will be changed in future Meson releases.
  
  Don't use deprecated python3.path() and execute(..., gui_app: ...).
  Let import('python').find_installation() always find the python
  installation used to run Meson.
  Don't distribute .github/.

2022-01-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Install docbook-xsl

  If docbook-xsl is installed, the xsltproc command reads stylesheets
  from local files instead of from http://docbook.sourceforge.net.
  Faster and safer. Reading from docbook.sourceforge.net sometimes fails.

2021-11-10  Chun-wei Fan  <fanchunwei@src.gnome.org>

  build: Support Visual Studio 2022

  Make these builds distinct from Visual Studio 2019 builds.

2021-11-10  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Win32: Don't include afxres.h in resources

  We can save people from a large download and a large disk footprint for the
  MFC/ATL items as those items are only optionally installed for later
  (2017+) Visual Studio versions, by including winresrc.h instead, which
  is always present in a Visual Studio installation.

2021-09-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI, Meson build: Install packages for validating XML file

  libxml2-utils and docbook5-xml are necessary in order to validate
  the XML file in docs/manual/.

2021-09-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/manual, Meson config: Check if xmllint can be used

2021-09-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/manual: Upgrade from DocBook 4.1 to DocBook 5.0

2021-08-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Add builds with Meson, remove some old Autotools builds

2021-08-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Check if Perl is required for building documentation

  New versions of mm-common use the Python scripts doc_postprocess.py
  and doc_install.py instead of the Perl scripts doc-postprocess.pl and
  doc-install.pl when documentation is built.

2021-07-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  insert-example-code.py: Specify file encoding

  The default file encoding is platform dependent in Python.
  Better tell which encoding is expected.

2021-07-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/manual/libxml++_without_code.xml: Add id on <sect1> elements

2021-07-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove obsolete COLS_IN_ALPHA_INDEX

2021-07-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Add insert_example_code.py

  * docs/manual/insert_example_code.py: New Python file, equivalent to
  the insert_example_code.pl Perl file.
  
  The Perl file is still used when building with Autotools.

2021-06-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Document, Node: Recognize HTML documents

  Documents created with htmlReadDoc() have xmlElementType ==
  XML_HTML_DOCUMENT_NODE. Handle that type like the XML_DOCUMENT_NODE
  type. htmlDoc* is an alias for xmlDoc*.
  Fixes #23

2021-05-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.2.3

2021-05-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Documentation: Let links point to libxml++-3.0 versions

2021-05-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add dependencies to Doxygen tag files in subprojects

  Doxygen in a main project shall not be called before tag files have been
  created or updated in subprojects.

2021-05-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Fix build as subproject without building documentation

  * meson.build: If mm-common-get is not found in maintainer-mode
  with 'required: false', try with 'required: true'.
  Don't try to use tag_file, if documentation is not built.
  * docs/reference/meson.build: Don't use variables from modules
  that don't define doxytagfile. These are subprojects that don't build
  their documentation.

2021-05-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Clean up Visual Studio build files

  We no longer need to ignore warnings C4251, C4273 and C4275, and we will
  now use /EHsc, so we also no longer need to ignore warning C4530.

2021-05-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  libxml++: Export classes selectively

  This will make the code avoid exporting items such that things are tied
  to a particular Visual Studio and STL version, and eliminate warnings
  C4251, C4273 and C4275 from the build.

2021-05-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Headers: Do not mark Glib::ustring with LIBXMLPP_API

  It's not necessary, and would cause trouble if we want to update
  Glib::ustring to not export std::string from within itself, as that is a
  potential source of trouble

2021-05-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Subprojects can use meson.add_dist_script() if meson.version() >= 0.58.0

  * meson.build:
  * docs/manual/meson.build:
  * docs/reference/meson.build:
  Call add_dist_script() in a subproject, if meson.version() >= 0.58.0.
  * tools/build_scripts/tutorial-custom-cmd.py:
  Use MESON_PROJECT_DIST_ROOT if it exists, else MESON_DIST_ROOT.
  It exists if meson.version() >= 0.58.0.

2021-04-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: No implicit_include_directories

2021-03-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Run clang-9 on ubuntu 20.04

2021-03-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Make it possible to use libxml++ as a subproject

  glibmm-2.4 can be a subproject of libxml++.
  libxml2 can't be a subproject because it can't be built with Meson.

2021-03-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove obsolete entries

2021-03-09  Chun-wei Fan  <fanchunwei@src.gnome.org>

  libxml++config.h.*: Don't dllimport on MinGW

  This will fix warnings when building items using libxml++ with MinGW/GCC.
  
  Please see: https://gitlab.gnome.org/GNOME/gtkmm/-/issues/90

2020-10-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Docs: Change libxml++ webpage mentions to GitHub

  Change libxmlplusplus.sourceforge.net to
  libxmlplusplus.github.io/libxmlplusplus.
  Change gitlab.gnome.org to GitHub.

2020-10-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  3.2.2

2020-10-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Fix versioning on macOS

  See libsigcplusplus, pull request 65

2020-07-23  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Use Meson-style DLL and .lib naming if requested

  To make things more consistent and less prone to confusion, if 'USE_MESON_LIBS'
  is specified in the NMake command line, build the DLLs and .lib's that are
  named like the Meson counterparts.  Binaries built with Meson+Visual Studio
  and the ones that are built via NMake using 'USE_MESON_LIBS' are
  interchangeable, provided that they are built with the same Visual Studio
  version.

2020-07-22  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix build from tarballs

  Update the rules so that we won't attempt to unnecessarily generate
  libxml++config.h and libxml++.rc in our builds, and make sure that we do indeed
  generate them with the version info if generating them becomes necessary.
  
  Also streamline this process so that it will be part of the 'all' target.

2020-07-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix default include paths

  Fix a typo where we include glibmmconfig.h, and make sure we also look for
  headers in $(PREFIX)\include

2020-07-08  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Support ARM64 Windows builds

  This will make the NMake Makefiles capable of building ARM64 binaries of
  libxml++, which can be used on Windows 10 on ARM systems.

2020-06-30  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Apply toolset version for Meson-built deps

  As the Meson build files for Visual Studio apply the toolset version in the
  .lib filenames by default, apply the toolset version in the Meson-built -mm
  .lib files that we link in, just as we did when we we link in the -mm .lib
  files that was built with NMake, by default.
  
  The option 'USE_COMPAT_LIBS' will also mean that we will use the former
  behavior when we link in the Meson-built -mm .lib's, just as we did when we
  link in the NMake-built -mm .lib's.
  
  Also let people know the resolution to strange linker errors that are caused
  by mixing Visual Studio versions when building the -mm libraries.

2020-06-25  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  README: Update with instructions for building libxml++

2020-06-25  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Meson/Visual Studio builds: Use toolset version by default

  Like the NMake Makefiles, put in the toolset version of Visual Studio in
  the filenames of the built DLL and .lib by default on Visual Studio 2017
  and 2019, so that it makes it easier to share the same glib, libxml and
  libsigc++ DLLs and libraries that were built with Visual Studio
  2015~2019.
  
  The reasoning behind this change here is because although Microsoft
  tried very hard to make DLLs built with Visual Studio 2015, 2017 and
  2019 API and ABI compatible, but libxml++ hits a corner case with glibmm
  where this compatibility does not work, but then the libxml, glib and
  libsigc++ DLLs and .lib's are indeed ABI-compatible.

2020-06-25  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Fix some comments

  * meson.build: Fix some comments.
  * tools/build_scripts/tutorial-custom-cmd.py: Make it more similar
  to corresponding files in libsigc++ and gtkmm-documentation.

2020-06-24  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson.build: Silence some warnings on Visual Studio

  Disable warnings C4273 and C4275, since we  are going to rely on
  __declspec(dllimport) to build against glibmm and __declspec(dllexport) to
  build libxml++ itself, and we are very much bound to the same compiler that was
  used to build glibmm.

2020-06-24  Chun-wei Fan  <fanchunwei@src.gnome.org>

  libxml++/meson.build: Fix typo

  It turns out that this typo will cause Visual Studio DLL builds to fail,
  because LIBXMLPP_API will not be defined correctly.

2020-06-24  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson.build: Also look for libxml2 manually on Windows

  The Windows-specific Makefiles for libxml2 do not generate pkg-config files for
  us, so we must look for it manually on Windows if the libxml2 pkg-config file
  does not exist.
  
  This will check for the library and the headers, and run a simple version check
  to make sure things are indeed in place.
  
  Also make the build look for glibmm only via pkg-config, since we have Meson build
  files for glibmm already
  
  Also make sure that we have the correct info put into the pkg-config file that we
  generate

2020-06-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add support for building libxml++ with Meson

  libxml++-3.0 can be built with either Autotools or Meson.
  New files have been copied from sigc-3.0 and other modules and modified.

2020-06-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/reference/Doxyfile.in: Remove PERL_PATH

  Doxygen since version 1.8.0 does not use PERL_PATH and MSCGEN_PATH.

2020-06-19  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Drop gendef.cc

  Since we are now using compiler directives or mechanisms to export symbols from
  our libxml++ DLL for all Windows dynamic builds, it's time to drop gendef.cc,
  as it is no longer used

2020-06-19  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Stop using gendef

  This updates the NMake Makefiles to stop building and using the gendef tool,
  since we are now using compiler directives to export symbols for libxml++
  builds.
  
  Since this branch did not have official and working Visual Studio build files,
  and it is not API/ABI compatible with the libxml++-2.6 series, gendef.cc will
  be dropped in the next commit

2020-06-19  Chun-wei Fan  <fanchunwei@src.gnome.org>

  libxml++config.h.in: Re-organize LIBXMLPP_API

  We want to set LIBXMLPP_API to the following:
  
  * __declspec(dllexport) when building the libxml++ DLL on Windows
  * __declspec(dllimport) when using the libxml++ DLL on Windows
  * <nothing> if building/using a static or a non-Windows libxml++ build

2020-06-19  Chun-wei Fan  <fanchunwei@src.gnome.org>

  libxml++ headers: Mark classes and functions with LIBXMLPP_API

  This prepares us to export and symbols on Visual Studio builds using only
  compiler directives, and to drop the venerable gendef.cc

2020-06-19  Chun-wei Fan  <fanchunwei@src.gnome.org>

  libxml++/*.h: Remove check for old _MSC_VER stuff

  They aren't applicable anymore, since the newer Visual Studio versions
  addressed the issues.

2020-06-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Update MSVC_NMake/README

  Update instructions for building since we moved to using NMake
  Makefiles, and let people know that the same compiler version is
  required for building libxml++, glibmm and libsigc++.

2020-06-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Drop Visual Studio 2010 projects

  They have been superseded with the NMake Makefiles, so it's time to
  retire them from the source tree.

2020-06-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Add NMake Makefiles

  This adds a set of NMake Makefiles that can be used to build libxml++,
  which will replace the Visual Studio 2010(!) projects that reside in the
  repository (which is probably broken and we actually need Visual Studio
  2017+ to build the current code due to a bug in the Visual Studio 2015
  compiler).
  
  The unfortunate fact is that we do need to link to a glibmm that is
  built with the same compiler, otherwise linking will fail and the
  binaries of the dependent glibmm built with other compilers won't work
  well with the builds here if they are built with other Visual Studio
  compilers, so we will need to separate the output filenames
  for the resulting .lib and .dll files for Visual Studio 2015, 2017 and 2019.
  A NMake Makefile build options "USE_COMPAT_LIBS" is added if linking to
  xxxx-vc140-y_z.lib for glibmm is still desired, such as in the case where
  glibmm was actually built with Visual Studio 2017 or 2019.

2020-06-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  gendef.cc: Skip symbols implemented inline

  Like in the case of gtkmm, some symbols were implemented inline in the CRT on
  Visual Studio 2015+ (UCRT), so we don't want to put them in our .def file,
  otherwise linking will fail.

2020-06-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  libxml++.rc.in: Fix version info

  We are now on libxml++-3.0 (3.x), not -2.6, so fix the version info in here

2020-06-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  tests: Don't include config.h

  The libxml++config.h should already fulfil our needs here.

2020-06-17  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Rename MSVC_Net2010 to MSVC_NMake

  This initiates the move from the Visual Studio project files to using NMake
  Makefiles, so that we reduce the likelihood of the MSVC build files becoming
  outdated, by sharing the autotools build files' source listings.

2020-01-11  Murray Cumming  <murraycu@google.com>

  Add GitHub Actions for CI

  Based on the ones used by libsigcplusplus.

2020-01-11  Murray Cumming  <murraycu@google.com>

  3.2.0

2020-01-11  Murray Cumming  <murraycu@google.com>

  Build/Docs: Change gitlab mentions to GitHub

2020-01-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tests: Don't require C++17

  Don't include glibmm.h and don't call Glib::init(). Then no included
  header file requires C++17 support, just C++14 support.
  Glib::init() is not necessary, because libxml++ uses only a small part
  of glibmm, mainly Glib::ustring.

2020-01-11  Murray Cumming  <murrayc@murrayc.com>

  docs: manual: Fix srcdir!=buildir build.

2019-01-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/index.html: Update bug report address

2019-01-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/manual: Link to gitlab.gnome.org

  * docs/manual/libxml++_without_code.xml: Link to example code in
  the libxml++-3-2 branch in gitlab.gnome.org/GNOME/libxmlplusplus.

2019-01-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  docs/manual: Fix builddir != sourcedir builds

2018-12-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  configure.ac: Update bug report address

2018-07-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Rename libxml++.doap to libxmlplusplus.doap

2017-05-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Document, DomParser: Improve XInclude processing

  * examples/Makefile.am:
  * examples/dom_xinclude/example.xml: Changed due to moved include files.
  * examples/dom_xinclude/include1.txt:
  * examples/dom_xinclude/include2.xml: Moved to examples/dom_xinclude/xinclude/
  * examples/dom_xinclude/main.cc: Test both Document::process_xinclude() and
  Xinclude processing with DomParser::parse_file().
  * libxml++/document.[cc|h]: Add fixup_base_uris parameter to process_xinclude().
  * libxml++/parsers/domparser.[cc|h]: Add set/get_xinclude_options().
  Add optional XInclude processing to the parse methods.
  * libxml++/parsers/parser.[cc|h]: Add set/get_xinclude_options_internal().
  Bug 781566

2016-12-12  Murray Cumming  <murrayc@murrayc.com>

  Examples: Make some methods static.

  Noticed by cppcheck.

2016-12-12  Murray Cumming  <murrayc@murrayc.com>

  Replace a C-style cast with static_cast<>().

  Noticed by cppcheck.

2016-12-12  Murray Cumming  <murrayc@murrayc.com>

  Add explicit keyword to some single-parameter constructors.

  Noticed by cppcheck.

2016-12-12  Murray Cumming  <murrayc@murrayc.com>

  Fix tiny comment typo.

2016-11-14  Murray Cumming  <murrayc@murrayc.com>

  3.0.1

2016-10-27  Murray Cumming  <murrayc@murrayc.com>

  Doxyfile.in: Remove now-unsupported Doxygen tags.

2016-07-18  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Require mm-common 0.9.10

  Necessary when MM_AX_CXX_COMPILE_STDCXX is used in configure.ac.

2016-07-18  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Fix even more silent 'make check'

  * examples/Makefile.am: Add $(AM_V_GEN) and $(AM_V_at) to 'echo' commands.
  Bug #768797

2016-07-18  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Build: Fix silent builds

  * configure.ac: Pass yes to AM_SILENT_RULES, thus enabling silent builds.
  Replace MM_AX_CXX_COMPILE_STDCXX_11 by MM_AX_CXX_COMPILE_STDCXX (not necessary
  for silent builds).
  * docs/reference/Doxyfile.in: Set QUIET=YES.
  Update for doxygen 1.8.11 (not necessary for silent builds).
  Bug #768797

2016-07-06  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Docs: Suppress some links generated by Doxygen

2016-07-06  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Element::remove_attribute(): Delete the C++ wrapper

  * libxml++/nodes/element.cc: Call Node::free_wrappers() before the call to
  xmlUnsetProp() or xmlUnsetNsProp(). Bug #768404.
  Based on a patch by Harald Schmalzl <h.schmalzl@gekko.at>

2016-02-02  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  3.0.0

2016-01-12  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  2.91.3

2016-01-07  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  DomParser: Make operator bool() explicit

2016-01-07  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Document: Test for nullptr in a constructor

  In Document(_xmlDoc* doc), throw an exception if doc==nullptr.

2016-01-07  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  NonCopyable: Make it obvious that it can't be moved

  Declare the move operators deleted. They are deleted anyway, but this makes
  it obvious.

2016-01-07  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Add some noexcept

2016-01-02  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Use using instead of typedef

  * libxml++/document.cc:
  * libxml++/nodes/element.h:
  * libxml++/nodes/node.h:
  * libxml++/parsers/parser.h:
  * libxml++/parsers/saxparser.h:
  * libxml++/parsers/textreader.h: Use using newtypename = oldtype instead of
  typedef oldtype newtypename. This is the recommended way of declaring
  type name aliases in C++11.

2015-12-30  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Use scoped enums (enum class) instead of unscoped enums

  * examples/dom_build/main.cc:
  * examples/dom_xpath/main.cc: Update names of enum constants.
  * libxml++/document.[cc|h]:
  * libxml++/nodes/node.[cc|h]:
  * libxml++/parsers/parser.[cc|h]:
  * libxml++/parsers/textreader.[cc|h]: Replace enum by enum class.
  Modify the names of the enum constants. E.g. XML_INTERNAL_GENERAL_ENTITY ->
  XmlEntityType::INTERNAL_GENERAL.
  
  This patch breaks API and ABI. The API and ABI of libxml++ 3.x has not yet
  been frozen.

2015-11-16  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  configure.ac: Use -Wsuggest-override with --enable-warnings=fatal

2015-11-16  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Examples: More use of override keyword

  * examples/sax_parser_build_dom/svgparser.h:
  * examples/sax_parser_entities/myparser.h: Use the override keyword on all
  overridden virtual methods.

2015-11-05  Murray Cumming  <murrayc@murrayc.com>

  SchemaValidatorBase: Use the override keyword.

  Though this is strange on pure virtual methods. These only
  seem to be repeated here so they can have more specific documentation
  than in the base class.

2015-11-05  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Remove trailing blanks

2015-11-05  Renu Tyagi  <renu.tyagi@samsung.com>

  Element: Remove redundant null check

  Bug #757515

2015-10-30  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  2.91.2

2015-10-29  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Work around some platforms' lack of support for std::exception_ptr

  * libxml++/exceptions/exception.[cc|h]:
  * libxml++/exceptions/internal_error.[cc|h]:
  * libxml++/exceptions/parse_error.[cc|h]:
  * libxml++/exceptions/validity_error.[cc|h]: Reintroduce Raise() and Clone(),
  now renamed to raise() and clone().
  * libxml++/exceptions/wrapped_exception.[cc|h]: Reintroduced files, now
  with the wrapped_exception class declared only if LIBXMLXX_HAVE_EXCEPTION_PTR
  is defined.
  * libxml++/filelist.am: Add wrapped_exception.h.
  * libxml++/parsers/parser.[cc|h]: Replace std::exception_ptr exception_ptr_
  by std::unique_ptr<xmlpp::exception> exception_.
  * libxml++/parsers/saxparser.cc: exception_ptr_ -> exception_
  * libxml++/parsers/saxparser.h: Note in the class description that some
  exceptions are replaced by xmlpp::exception if std::exception_ptr is not
  supported.
  * libxml++/validators/validator.[cc|h]: Replace std::exception_ptr
  exception_ptr_ by std::unique_ptr<xmlpp::exception> exception_.
  * examples/sax_exception/myparser.[cc|h]: Reintroduce Raise() and Clone(),
  now renamed to raise() and clone().
  * tests/saxparser_chunk_parsing_inconsistent_state/main.cc:
  * tests/saxparser_parse_double_free/main.cc:
  * tests/saxparser_parse_stream_inconsistent_state/main.cc: Catch
  xmlpp::exception, if LIBXMLXX_HAVE_EXCEPTION_PTR is not defined.
  Bug #757042.
  
  The substitution of exception_ for exception_ptr_ in Parser and Validator
  breaks ABI. The ABI of libxml++ 3.x has not yet been frozen.
  
  Thanks to Daniel Trebbien <dtrebbien@gmail.com>, who supplied a patch for
  libxml++ 2.40.

2015-10-27  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Add LIBXMLXX_HAVE_EXCEPTION_PTR

  * build/.gitignore: New file.
  * build/cxx_std.m4: New file with LIBXMLXX_CXX_HAS_EXCEPTION_PTR
  autoconf macro. Defines LIBXMLXX_HAVE_EXCEPTION_PTR if std::exception_ptr
  exists.
  * .gitignore: Move some lines to build/.gitignore.
  * configure.ac: Store some build files in the build directory, like most mm
  packages. Don't use the macros directory.
  * libxml++config.h.in: Add LIBXMLXX_HAVE_EXCEPTION_PTR.
  * Makefile.am:
  * docs/Makefile.am: macros -> build. Bug #757042.
  
  Thanks to Daniel Trebbien <dtrebbien@gmail.com>, who supplied a patch with
  the test code in LIBXMLXX_HAVE_EXCEPTION_PTR.

2015-10-12  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Remove LIBXMLCPP_EXCEPTIONS_ENABLED

  * configure.ac:
  * libxml++config.h.in: Remove LIBXMLCPP_EXCEPTIONS_ENABLED. Bug #754673.

2015-10-09  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Still more use of nullptr instead of 0

2015-10-09  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Still more use of nullptr instead of 0

2015-10-08  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  More use of nullptr instead of 0

  Bug #756166 (also the previous commit)

2015-10-08  Gaurav Gupta  <g.gupta@samsung.com>

  Use nullptr instead of 0 at missing places - C++-11

2015-10-08  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Remove some TODO comments

2015-10-08  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Add xmlpp::format_printf_message()

  * libxml++/exceptions/exception.[h|cc]: Add format_printf_message().
  * libxml++/parsers/parser.cc:
  * libxml++/parsers/saxparser.cc:
  * libxml++/validators/validator.cc: Call format_printf_message().

2015-10-05  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  2.91.1

2015-10-01  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Inherit NonCopyable publicly

  Inherit NonCopyable publicly instead of privatly. It doesn't really matter,
  but private inheritance is unusual. There's no good reason to use it for
  NonCopyable. Bug #754673.

2015-10-01  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Element: Rename set/get_child_text() to set/get_first_child_text()

  * libxml++/nodes/element.[h|cc]: Rename set/get_child_text() to
  set/get_first_child_text() by analogy with Node::get_first_child().
  * examples/dom_build/main.cc:
  * examples/dom_xpath/main.cc:
  * examples/import_node/main.cc: Replace set/get_child_text() by
  set/get_first_child_text(). Bug #754673.

2015-10-01  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Remove some unnecessary #include and reinterpret_cast

2015-10-01  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Move some code from DtdValidator to Dtd

  * libxml++/dtd.[h|cc]:
  * libxml++/validators/dtdvalidator.[h|cc]: Move the code for parsing a DTD
  from xmlpp::DtdValidator to xmlpp::Dtd. The code is arranged like that in
  the other validators. Bug #754673.

2015-09-29  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Node: Replace remove_child() by remove_node()

  * libxml++/nodes/node.[h|cc]: Replace remove_child() by the static
  remove_node(). Improve the documentation of remove_node() and the destructor.
  Bug #754673

2015-09-29  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Use std::string for filenames

  Since filenames are not necessarily UTF-8 encoded, store them in std::strings
  instead of Glib::ustrings. Bug #754673.

2015-09-28  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Document: Make some methods non-virtual

  * libxml++/document.h: Make some private methods non-virtual. Bug #754673.

2015-09-28  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Attribute and subclasses: Move some methods

  * libxml++/attribute.[h|cc]: Remove get_name(). Make get_value() virtual.
  Move set_value() and cobj() to AttributeNode.
  * libxml++/attributedeclaration.h: get_value() is overridden.
  * libxml++/attributenode.[h|cc]: Add get_value(), set_value(), cobj().
  Bug #754673.

2015-09-28  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Move add_child() methods from Node to Element

  * libxml++/nodes/element.[h|cc]:
  * libxml++/nodes/node.[h|cc]: Move all add_child*() methods to Element and
  rename them to add_child_element*().
  * examples/dom_build/main.cc:
  * examples/dom_update_namespace/main.cc:
  * examples/dtdvalidation/main.cc:
  * examples/sax_parser_build_dom/svgparser.cc: Change add_child() to
  add_child_element().  Bug #754673.

2015-09-24  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Validators: Move _xmlValidCtxt pointer to DtdValidator

  * libxml++/validators/validator.[h|cc]:
  * libxml++/validators/dtdvalidator.[h|cc]: Rename _xmlValidCtxt* valid_ to
  context_ and move it from Validator to DtdValidator.
  Rename initialize_valid() to initialize_context().
  * libxml++/validators/schemavalidatorbase.[h|cc]:
  * libxml++/validators/relaxngvalidator.[h|cc]:
  * libxml++/validators/xsdvalidator.[h|cc]: Rename initialize_valid() to
  initialize_context(). Bug #754673.

2015-09-24  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Validators: Change which methods are virtual, add override

  * libxml++/validators/validator.h: Add some pure virtual methods.
  * libxml++/validators/dtdvalidator.[h|cc]: Only overridden methods are virtual.
  operator bool() is explicit and overridden. validate() returns void.
  * libxml++/validators/schemavalidatorbase.h: Replace operator const void*()
  by explicit operator bool(). Remove typedef BoolExpr.
  * libxml++/validators/relaxngvalidator.[h|cc]:
  * libxml++/validators/xsdvalidator.[h|cc]: Replace operator const void*()
  by explicit operator bool(). Add override. Bug #754673.

2015-09-23  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  SaxParser: Start each parsing with a new Document for entity resolution

  * libxml++/parsers/saxparser.[h|cc]: Make entity_resolver_doc_ a unique_ptr.
  Create a new Document in an overridden initialize_context(). Bug #754673.

2015-09-23  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  DomParser, SaxParser: Make some methods non-virtual

  * libxml++/parsers/domparser.h: Make parse_context() non-virtual.
  * libxml++/parsers/saxparser.h: Make parse_chunk(), finish_chunk_parsing()
  and parse() non-virtual. Bug #754673.

2015-09-23  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  xmlpp::exception and its subclasses: Remove Raise() and Clone()

  Remove the virtual methods Raise() and Clone() from xmlpp::exception and
  its subclasses. These methods are not needed now that std::exception_ptr
  is used for storing and later rethrowing an exception. Bug #754673.

2015-09-22  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Remove the deprecated Schema and SchemaValidator classes

  * libxml++/schema.[h|cc]:
  * libxml++/validators/schemavalidator.[h|cc]: Remove these files.
  * examples/schemavalidation/main.cc: Remove test of SchemaValidator.
  * libxml++/filelist.am: Remove schema.h and schemavalidator.h.
  * libxml++/libxml++.h: Remove schemavalidator.h. Bug #754673.

2015-09-22  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Remove wrapped_exception

  * libxml++/exceptions/wrapped_exception.[h|cc]: Remove these files.
  * libxml++/filelist.am: Remove wrapped_exception.h.
  * libxml++/validators/validator.[h|cc]:
  * libxml++/parsers/parser.[h|cc]: Replace handleException(const exception&)
  by handle_exception(). Replace exception* exception_ by
  std::exception_ptr exception_ptr_.
  * libxml++/parsers/saxparser.cc: Call handle_exception() instead of
  handleException(). Bug #754673.

2015-09-21  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Parser: Replace ExtraParserData by private Pimpl struct

  * libxml++/parsers/parser.[h|cc]: Replace the ExtraParserData struct in
  parser.cc by a private Parser::Pimpl struct. Move some protected data to
  Pimpl. Add pure virtual parse_memory_raw(). Default in DOM parser is to
  throw both parse errors and validity errors in exceptions.
  * libxml++/parsers/domparser.h:
  * libxml++/parsers/saxparser.h: Add override to parse_memory_raw().
  * libxml++/parsers/saxparser.cc: Call set_throw_messages(false) in ctor.
  Bug #754673.

2015-09-17  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Replace remaining auto_ptr by unique_ptr

  Replace the deprecated std::auto_ptr by std::unique_ptr in header files.
  Bug #753123.

2015-09-17  Knut Aksel Røysland  <knutroy@ifi.uio.no>

  Element::get_attribute(): Propagate const qualifier to Attribute

  * libxml++/nodes/element.[h|cc]: Let the const version of get_attribute()
  return a const Attribute*. Add a non-const version. Bug #632524.

2015-09-17  Knut Aksel Røysland  <knutroy@ifi.uio.no>

  Document::get_root_node(): Propagate const qualifier to root Element

  * libxml++/document.[h|cc]: Let the const version of get_root_node() return
  a const Element*. Add a non-const version.
  * examples/sax_parser_build_dom/main.cc:
  * examples/sax_parser_build_dom/svgdocument.[h|cc]: Add some const.
  Bug #632522.

2015-09-17  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Replace xmlpp::NodeSet by xmlpp::Node::NodeSet

  * libxml++/nodes/node.[h|cc]: Declare the NodeSet and const_NodeSet typedefs
  inside class Node. That's consistent with how Node::NodeList, Node::PrefixNsMap
  and Element::AttributeList are declared.

2015-09-17  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Element::get_attributes(): Propagate const qualifier to attributes

  * libxml++/nodes/element.[h|cc]: Add const_AttributeList. The const version
  of get_attributes() returns const_AttributeList instead of const AttributeList.
  * examples/dom_parser/main.cc:
  * examples/dom_xinclude/main.cc: Use "for(const auto&". Bug #338907.

2015-09-17  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Node::find(): Propagate const qualifier to found nodes

  * libxml++/nodes/node.[h|cc]: Add const_NodeSet. Add non-const versions of
  find() and let the const versions return const_NodeSet.
  * examples/dom_xpath/main.cc: Add some const. Bug #338907.

2015-09-17  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Node::get_children(): Propagate const qualifier to children

  * libxml++/nodes/node.[h|cc]: Add const_NodeList. The const version of
  get_children() returns const_NodeList instead of const NodeList.
  * examples/dom_parser/main.cc: Remove unused variable.  Bug #338907.

2015-09-14  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Prepare for an ABI/API-breaking release

  * .gitignore: 2.6 -> *.
  * NEWS: Note that the next release will break ABI.
  * README: 2.6 -> 3.0
  * configure.ac: Version 2.90.0, 2.6 -> 3.0, reset LIBXMLXX_SO_VERSION to 0:0:0.
  * docs/manual/libxml++_without_code.xml: 2.6 -> 3.0
  * libxml++/libxml++.h: 2.6 -> 3.0
  * libxml++-2.6.pc.in: Rename to libxml++.pc.in.
  * libxml++.pc.in: Rename from libxml++-2.6.pc.in. Bug #754673.
  
  The libxml++-2-40 branch is intended for future 2.40.x releases with the
  libxml++-2.6 ABI.

2015-09-11  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Update the manual

  * docs/manual/libxml++_without_code.xml: Minor updates.

2015-09-11  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  docs/Makefile.am: Fix missing update of relative path

  Fix relative path to ../examples in the rule for manual/libxml++.xml.
  Add a TODO comment, because I'm uncertain about the relative paths in
  the rsync commands that upload to sourceforge.net.

2015-09-11  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Split Makefile.am

  * Makefile.am: Move most of the contents to the new files. It makes libxml++
  more like other mm packages.
  * docs/Makefile.am:
  * libxml++/filelist.am:
  * libxml++/Makefile.am:
  * MSVC_Net2010/filelist.am: New files.
  * configure.ac: Add the new Makefiles to AC_CONFIG_FILES().
  * docs/reference/Doxyfile.in: Remove docs/ from relative paths.

2015-09-09  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Remove MSVC 2005 and 2008 projects

  MSVC_Net2005/*:
  MSVC_Net2008/*: Remove the whole directories.
  configure.ac:
  Makefile.am:
  .gitignore: Remove MSVC_Net2005 and 2008 files.
  
  It's no longer possible to build libxml++ with MSVC 2005 or 2008, when C++11
  features are used. MSVC 2010 is not useful either, but its project files
  are kept for now. They can perhaps be useful as a starting point when building
  with later MSVC versions. See also libsigc++ bug 754082.

2015-09-05  Murray Cumming  <murrayc@murrayc.com>

  2.39.2

2015-08-27  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  xmlpp::wrapped_exception: Add comments

  Bug #753570

2015-08-27  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Fix make check with --enable-warnings=fatal and fix make distcheck

  * tests/saxparser_chunk_parsing_inconsistent_state/main.cc:
  * tests/saxparser_parse_double_free/main.cc: Comment out names of unused
  parameters in function definitions.
  * Makefile.am: Add wrapped_exception.h to h_exceptions_sources_public or else
  it won't be distributed.
  * libxml++/exceptions/wrapped_exception.h: Add DOXYGEN_SHOULD_SKIP_THIS.
  xmlpp::wrapped_exception is a private class that shall not be included in
  the documentation. Bug #753570.

2015-08-27  Daniel Trebbien  <dtrebbien@gmail.com>

  Introduce xmlpp::wrapped_exception

  This is an internal class which is used by SaxParser and Validator to
  save the exception object thrown by a handler method when the exception
  does not derive from xmlpp::exception (e.g. std::exception). The Raise()
  method of xmlpp::wrapped_exception calls std::rethrow_exception() to
  rethrow the exception object thrown by the handler method.
  
  Catching any exception object thrown by a handler method is important in
  ensuring that we are able to reset the internal state, and, in the case
  of SaxParser::parse(), that we restore the old _xmlSAXHandler pointer so
  that we do not double-free the _xmlSAXHandler object held by SaxParser.
  
  Fixes Bug 753570 - “double free or corruption” if a std::exception is thrown
  https://bugzilla.gnome.org/show_bug.cgi?id=753570

2015-08-02  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Replace some auto_ptr by unique_ptr

  * libxml++/parsers/parser.cc:
  * libxml++/parsers/saxparser.cc:
  * libxml++/validators/relaxngvalidator.cc:
  * libxml++/validators/validator.cc:
  * libxml++/validators/xsdvalidator.cc: Replace the deprecated std::auto_ptr
  by std::unique_ptr. There are still auto_ptrs in header files. Replacing
  them would break ABI. Bug #753123.

2015-07-20  Murray Cumming  <murrayc@murrayc.com>

  2.39.1

2015-07-20  Murray Cumming  <murrayc@murrayc.com>

  Add -Wformat-security to --enable-warnings=fatal.

  Because we use it in glibmm too. No code changes were necessary.

2015-07-20  Murray Cumming  <murrayc@murrayc.com>

  Fix the build with -Wshadow.

  And add this warning to --enable-warnings=fatal.

2015-07-20  Murray Cumming  <murrayc@murrayc.com>

  C++11: More use of auto.

2015-07-20  Murray Cumming  <murrayc@murrayc.com>

  C++11: Some use of range-based for loops.

2015-07-20  Murray Cumming  <murrayc@murrayc.com>

  C++11: Use auto.

2015-07-20  Murray Cumming  <murrayc@murrayc.com>

  C++11: NonCopyable: Use = delete instead of private.

2015-07-19  Murray Cumming  <murrayc@murrayc.com>

  C++11: Use nullptr instead of 0.

2015-07-19  Murray Cumming  <murrayc@murrayc.com>

  C++11: Replace throw() with noexcept.

2015-07-19  Murray Cumming  <murrayc@murrayc.com>

  C++11: Use the override keyword.

2015-07-19  Murray Cumming  <murrayc@murrayc.com>

  Docs: Correct odd use of "herited" word.

2015-07-19  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Require C++11

  * configure.ac: Use MM_AX_CXX_COMPILE_STDCXX_11 from mm-common to check for
  compiler support for C++11 and use it (-std=c++11 for current versions of g++).
  Among other reasons, this is because libsigc++ and glibmm now require C++11,
  and gmmproc generates C++11 code.

2015-06-08  Murray Cumming  <murrayc@murrayc.com>

  2.38.1

2015-04-30  Mikhail Titov  <mlt@gmx.us>

  Fix the build with C++11 compilers, such as MS Visual C++ 2013.

  Implicit conversions from streams to bool are no longer allowed.

2015-03-04  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Disable deprecated API in dependencies if --enable-warnings=fatal

  * configure.ac: Disable deprecated API in glib, glibmm and libsigc++ when
  building with --enable-warnings=fatal.
  * libxml++/validators/parser.cc: Put #include <glibmm/threads.h> first.
  Necessary when G_DISABLE_DEPRECATED is defined.

2015-03-04  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Require libxml2 2.7.7 or later

  * configure.ac: Require libxml2 2.7.7 or later. Earlier versions contain a
  bug that makes some of the example programs crash.

2015-02-27  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  2.38.0

2015-02-27  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Docs: Update for Doxygen 1.8.9

  * docs/reference/Doxyfile.in: Update for Doxygen 1.8.9.

2014-10-28  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  2.37.2

2014-10-21  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Parser: Add input operator>>()

  * libxml++/parsers/parser.h: Add operator>>(std::istream& in, Parser& parser).
  * examples/dom_parse_entities/main.cc: Use operator>>(). Bug #329281.

2014-10-17  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Remove libxml++/Makefile.am

  * libxml++/Makefile.am: Removed file. It has not been used for quite some time.

2014-10-16  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Add RelaxNGSchema and RelaxNGValidator

  * Makefile.am: Add new files.
  * libxml++/libxml++.h: Add new header files.
  * examples/Makefile.am: Add schemavalidation/example.rng.
  * examples/schemavalidation/main.cc: Add test of RelaxNGValidator.
  * examples/schemavalidation/example.rng:
  * libxml++/relaxngschema.[cc|h]:
  * libxml++/validators/relaxngvalidator.[cc|h]: New files.
  
  Thanks to Tjalling Hattink <t.hattink@fugro.nl>, who made other versions
  of the new files, which were attached to bug #737712.

2014-10-16  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Add XsdSchema and XsdValidator. Deprecate Schema and SchemaValidator

  * configure.ac: Add MM_ARG_DISABLE_DEPRECATED_API([LIBXMLXX]).
  * Makefile.am: Add new files.
  * libxml++config.h.in: Add LIBXMLXX_DISABLE_DEPRECATED.
  * libxml++/libxml++.h: Add new header files.
  * libxml++/schema.[cc|h]:
  * libxml++/validators/schemavalidator.[cc|h]: Deprecate the whole files.
  * examples/schemavalidation/main.cc: Add test of XsdValidator.
  * libxml++/schemabase.[cc|h]:
  * libxml++/xsdschema.[cc|h]:
  * libxml++/validators/schemavalidatorbase.[cc|h]:
  * libxml++/validators/xsdvalidator.[cc|h]: New files. Bug #737712.

2014-10-15  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Validator: Make initialize_valid() callable from all subclasses

  * libxml++/validators/validator.cc: In initialize_valid(), don't initialize
  valid_'s data members, if it's a null pointer.
  * libxml++/validators/schemavalidator.cc: Call the base class version from
  initialize_valid() instead of copying some code from it.

2014-10-11  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Schema::get_name(): Don't use null pointer

  * libxml++/schema.cc: Don't use null pointers in get_name(),
  get_target_namespace() and get_version().

2014-10-10  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  examples/dom_update_namespace: Add calls to Node::add_child_with_new_ns()

  * examples/dom_update_namespace/main.cc: Add calls to add_child_with_new_ns().
  Bug #737682.

2014-10-10  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Add Node::add_child_with_new_ns()

  * libxml++/nodes/node.[h|cc]: Add add_child_with_new_ns() (*2) and
  add_child_before_with_new_ns(). Bug #737682.

2014-10-10  Mathias Lorente  <mathias.lorente@gadz.org>

  Add dom_update_namespace example

  * .gitignore: add /examples/dom_update_namespace/dom_update_namespace
  * examples/Makefile.am: Add dom_update_namespace files.
  * examples/dom_update_namespace/main.cc:
  * examples/dom_update_namespace/example1.xml:
  * examples/dom_update_namespace/example2.xml: New files. Bug #737682.

2014-10-10  Mathias Lorente  <mathias.lorente@gadz.org>

  Element::set_namespace_declaration(): Update the node's associated namespace

  * libxml++/nodes/element.cc: Update the node's associated namespace, if the
  added namespace prefix is the same as the node's own namespace prefix.
  * libxml++/nodes/element.h: Mention in the documentation that child nodes
  are not updated. Bug #737682.

2014-09-18  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Docs: Use doxygen-extra.css

  * configure.ac: Require mm-common 0.9.7.
  * .gitignore: Ignore doxygen-extra.css.
  * docs/reference/Doxyfile.in: Use doxygen-extra.css instead of doxygen.css.

2014-09-17  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Late update of configure.ac and NEWS for 2.37.1

  The changes in configure.ac and NEWS were not pushed to the git repository
  when libxml++ 2.37.1 was released. These are the changes that are included
  in the tarball.
  The last commit in 2.37.1 is "Fix examples/Makefile.am for new versions
  of automake" from 2013-09-14.

2014-09-12  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Update libxml++.doap

  * libxml++.doap: Update homepage and mailing-list.
  Add description, download-page, bug-database and programming-language.
  Comment category, because no allowed category seems suitable for libxml++.

2014-08-14  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Remove MAINTAINERS

  * MAINTAINERS: Removed file. It has been replaced by libxml++.doap.
  * Makefile.am: Don't distribute MAINTAINERS.

2014-07-04  Gaurav  <g.gupta@samsung.com>

  Document: Avoid possible null pointer dereference

  * libxml++/document.cc: In create_root_node() check that 'element' is
  non-null before it's used. Bug #732604.

2014-05-20  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Add version information to libxml++config.h

  * libxml++config.h.in: Add LIBXMLXX_[MAJOR,MINOR,MICRO]_VERSION.
  Define LIBXMLCPP_EXCEPTIONS_ENABLED unconditionally in libxml++config.h.

2014-05-20  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Avoid infinite loop with Doxygen 1.8.6

  * configure.ac: Use the libstdc++.tag and libsigc++-2.0.tag files that were
  used when glibmm-2.4.tag was created.
  * docs/reference/libstdc++.tag.xml: Deleted file.

2013-09-14  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Fix examples/Makefile.am for new versions of automake.

  * examples/Makefile.am: Don't use make functions, such as addsuffix, in
  check_SCRIPTS. New versions of automake (e.g. 1.13.4) expect to find only
  a blank-separated list of filenames.
  * .gitignore: With new versions of automake, 'make check' generates more
  output files. Ignore them. Bug #678390.

2013-09-06  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Manual: Add XIncludeStart and XIncludeEnd to the node type tree.

  * docs/manual/libxml++_without_code.xml: Add XIncludeStart and XIncludeEnd
  to the node type tree in the DOM Parser section. Should have been done when
  those node types were added.

2013-08-12  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Node: Move the null-pointer check to the constructor.

  * libxml++/nodes/node.[h|cc]: Let the constructor throw xmlpp:internal_error
  if impl_ == 0. Remove other null-pointer checks. Bug #705187.

2013-08-02  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Update Doxyfile.in for doxygen 1.8.3.

  * docs/reference/Doxyfile.in: Update for doxygen 1.8.3. Make it more similar
  to the template file at mm-common/skeletonmm/doc/reference.
  * libxml++/validators/schemavalidator.h: Fix the parameter name in a doxygen
  @param comment.

2013-08-02  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Parser: Add [set|get]_include_default_attributes().

  * libxml++/parsers/parser.[h|cc]: Add [set|get]_include_default_attributes()
  and [set|get]_parser_options().
  * examples/dom_parser/main.cc: Add command option -a for testing
  Parser::set_include_default_attributes().
  * examples/dom_read_write/example.dtd:
  * examples/dom_read_write/example.xml: Add an attribute with default value.
  * examples/dom_read_write/main.cc: Add an optional call to
  Parser::set_include_default_attributes(). Bug #701674.

2013-07-31  Murray Cumming  <murrayc@murrayc.com>

  Whitespace fix

2013-07-31  Murray Cumming  <murrayc@murrayc.com>

  Node: Improve some null-pointer checks

  * libxml++/nodes/node.cc:
    If we are going to check impl_ for null, we may as well do it
    where it makes most sense. Note that we do not bother yet to check
    for this in other functions. If we did this consistently we would
    want a sensible way to respond to it, such as an exception.
  
  Bug #705187 (Gaurav)

2013-07-03  José Alburquerque  <jaalburquerque@gmail.com>

  Move to a generated ChangeLog.

2013-07-03  José Alburquerque  <jaalburquerque@gmail.com>

  Include file for auto-generation of ChangeLog from right directory.

  	* Makefile.am:

2013-07-02  José Alburquerque  <jaalburquerque@gmail.com>

  Auto-generate the ChangeLog from the git log for 'make dist'.

  	* Makefile.am: Include the dist-changelog.am file copied in build/
  	from mm-common so that the ChangeLog is automatically generated from
  	the git commit messages on 'make dist'.

2013-06-18  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Examples dom_parse_entities and dom_parser: Fix when LC_ALL=C.

  * examples/testutilities.[h|cc]: New files with class CatchConvertError.
  * examples/Makefile.am: Add testutilities.[h|cc].
  * examples/dom_parse_entities/main.cc:
  * examples/dom_parser/main.cc: Change some strings from Glib::ustring to
  CatchConvertError before they are printed. It catches Glib::ConvertError
  locally. 'make check' can pass even if the global locale does not support all
  printed characters. Bug #702136.

2012-11-04  Murray Cumming  <murrayc@murrayc.com>

  2.36.0

2012-10-25  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Element::set_namespace_declaration(): No error to set the same URI twice.

  * libxml++/nodes/element.[h|cc]: Don't throw an exception from
  set_namespace_declaration(), if a namespace prefix is assigned the same URI
  twice. Bug #635846, comment 27.

2012-10-10  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Require libxml-2.0 >= 2.7.3.

  * configure.ac: Require libxml-2.0 >= 2.7.3.
  Don't know if it's really necessary, but 2.7.2 from 2008-10-03 is the oldest
  release available at ftp://xmlsoft.org/libxml2, and 2.7.2 contains a bug that
  makes examples/import_node segfault.

2012-10-10  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Parser::initialize_context(): Call xmlCtxtUseOptions().

  * libxml++/parsers/parser.cc: initialize_context(): Call xmlCtxtUseOptions()
  instead of setting context_->validate and replaceEntities.
  xmlCtxtUseOptions() does that and more.

2012-10-08  Murray Cumming  <murrayc@murrayc.com>

  2.35.4

2012-08-28  Kjell Ahlstedt  <kjell.ahlstedt@bredband.net>

  Add XInclude processing.

  * Makefile.am: Add XIncludeStart and XIncludeEnd nodes.
  * examples/Makefile.am: Add dom_xinclude example.
  * examples/README: Add dom_xinclude example and other missing examples.
  * examples/dom_xinclude/example.xml:
  * examples/dom_xinclude/include1.txt:
  * examples/dom_xinclude/include2.xml:
  * examples/dom_xinclude/main.cc: New files.
  * libxml++/document.[h|cc]: Add process_xinclude().
  * libxml++/libxml++.h: Add new header files.
  * libxml++/nodes/node.cc: create_wrapper(): Create XIncludeStart and
  XIncludeEnd nodes.
  * libxml++/nodes/xincludeend.[h|cc]:
  * libxml++/nodes/xincludestart.[h|cc]: New files.
  * .gitignore: Ignore /examples/dom_xinclude/dom_xinclude. Bug #338521.

