2026-08-10  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.89.0

2026-07-06  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::DBus::ActionGroup: Improve the test whether GDBusActionGroup is final

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

  Gio: Emblem and DBus::ActionGroup: Don't derive gtkmm__Gxxx types

  GEmblem and GDBusActionGroup are declared G_DECLARE_FINAL_TYPE.
  Add _DO_NOT_DERIVE_GTYPE, _ABI_AS_WITH_DERIVED_GTYPE and _STRUCT_NOT_HIDDEN
  to the corresponding glibmm classes.

2026-06-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Markup::ParseContext: Add get_attribute_position()

  * configure.ac:
  * meson.build: Require glib >= 2.89.0
  * glib/src/markup.[ccg|hg]: Add ParseContext::get_attribute_position().
  Remove duplicate of MarkupError documentation.
  * gio/src/application.hg:
  * gio/src/settingsschema.hg:
  * gio/src/settingsschemakey.hg:
  * glib/src/varianttype.hg: Remove some _IGNORE() commands.

2026-06-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Regenerate docs.xml and .defs files, using files from glib 2.89.1

  and update gio_docs_override.xml and glib_docs_override.xml.
  
  The .defs files have been generated with glibmm/tools/mmgir.

2026-06-28  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.88.1

2026-06-25  Sam James  <sam@gentoo.org>

  Drop G_GNUC_CONST as in glib

  This mirrors 016829559e75a1be24d637cad958a2cb00c6791d in glib, where
  the attributes were dropped because their use was invalid.
  
  This fixes glibmm being miscompiled by trunk GCC.
  
  Bug: https://gitlab.gnome.org/GNOME/glib/-/work_items/3984
  Signed-off-by: Sam James <sam@gentoo.org>

2026-06-25  Sam James  <sam@gentoo.org>

  tools: drop G_GNUC_CONST for get_type with pointer argument

  GCC's documentation for the `const` attribute [0] says:
  > Note that a function that has pointer arguments and examines the data pointed
  > to must not be declared const if the pointed-to data might change between
  > successive invocations of the function.
  
  Note that "might change" here is quite aggressive: it includes "if the
  pointer escapes at all", e.g. if it's some malloc'd memory that gets reused
  internally later too without something resetting its lifetime.
  
  The `pure` attribute would be appropriate here *if* there's no state
  changes even on the first run.
  
  [0] https://gcc.gnu.org/onlinedocs/gcc/Common-Attributes.html#index-const
  
  Bug: https://gitlab.gnome.org/GNOME/glib/-/work_items/3984
  Signed-off-by: Sam James <sam@gentoo.org>

2026-06-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update gio_docs_override.xml

2026-06-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gmmproc: Improve detection of enum and flags in documentation

  * tools/pm/DocsParser.pm: Improve detection of enum and flags referred to
  as [enum@Module.Type.enumerator] or [flags@Module.Type.enumerator].
  'flags' is an alternative to 'enum'. Enumerator can be lowercase, and can
  contain dashes instead of underlines. Used frequently in Gtk4.

2026-05-14  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Build generate_defs_[glib|gio]

  For completeness' sake, build these tools as well with NMake.

2026-05-14  Chun-wei Fan  <fanc999@yahoo.com.tw>

  README.win32.md: Update info and use UNIX line endings

  Make line endings consistent across the board, and add info regarding
  building mmgir.

2026-05-14  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Build the mmgir tool if requested

  Add build rules and configs to the NMake Makefiles to build the mmgir
  tool and test program, if requested for the build. Also update the help
  section of the NMake Makefiles to include info for this.

2026-05-11  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Update build info again

  The build help in the NMake Makefiles need some updates as well.

2026-05-11  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Update gmmproc install location

  Standardize on using $(PREFIX)\lib\glibmm-2.4\proc, just as in the Meson builds

2026-05-11  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: More consolidations

  Use $(OUTDIR) to shorten and simplify things, in place of
  vs$(VSVER)\$(CFG)\$(PLAT).

2026-05-07  Chun-wei Fan  <fanc999@yahoo.com.tw>

  meson.build: Ignore C4018 warnings

  We don't really have to worry much about signed/unsigned mismatches when
  we do a comparison between two different numbers.

2026-05-07  Chun-wei Fan  <fanc999@yahoo.com.tw>

  mmgir: Fix compiling parse_gir.cc on Windows

  The 'std::filesystem::directory_entry.path().c_str()' call returns an UTF-16
  (wchar_t *) string on Windows, not an UTF-8 (char *) like on *NIX, so do
  'std::filesystem::directory_entry.path().u8string().c_str()' so that we
  are have a more proper UTF-8 string to pass into 'XMLDocument::LoadFile()'.
  
  This will fix the build on Windows as type mismatches are avoided here.

2026-03-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Build mmgir with clang++

2026-03-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Autotools build: Distribute tools/mmgir

  mmgir can't be built by Autotools, but it can be built by Meson
  from a tarball created by Autotools.

2026-03-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Small fixes to adapt to defs files generated by mmgir

  * gio/src/gio.defs: Read gio_vfuncs.defs before gio_signals.defs.
  Some define-vfunc sections in gio_vfuncs.defs, when generated by mmgir,
  contain information that shall be overridden by like-named define-signal
  sections in gio_signals.defs.
  * gio/src/mountoperation.hg: Add _EQUAL(const gchar**,const char**)
  * glib/src/binding.hg: Remove an unnecessary _IGNORE().
  * glib/src/bytes.hg: Add _EQUAL(gconstpointer,GBytes*).

2026-03-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gmmproc: Add scripts that generate defs files with mmgir

  * gio/src/gio_enums.defs.girpatch:
  * gio/src/gio_methods.defs.girpatch:
  * gio/src/gio_signals.defs.girpatch:
  * gio/src/gio_vfuncs.defs.girpatch:
  * glib/src/glib_enums.defs.girpatch: New patch files. Used by
  generate_from_gir.sh.
  * tools/gen_scripts/generate_from_gir.sh: New script. Generates all defs
  files from GIR files.
  * tools/gen_scripts/init_generate.sh: Define $GMMPROC_GEN_INSTALL_DIR
  and $gen_with_mmgir, used by generate_from_gir.sh.

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

  CI: Build mmgir with and without subprojects

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

  Meson build: Add the build-mmgir option

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

  tools/mmgir/meson.build: cli11 -> CLI11

  pkg-config knows it by the name CLI11.
  Don't test tinyxml2 by default when it's a subproject.

2026-03-25  Daniel Gao  <daniel.gao.work@gmail.com>

  Parse unions from gir files

2026-03-25  Daniel Gao  <daniel.gao.work@gmail.com>

  Fix def for negative bitfield values

2026-03-23  Daniel Gao  <daniel.gao.work@gmail.com>

  Add colors to logging for errors/warnings

2026-03-22  Daniel Gao  <daniel.gao.work@gmail.com>

  Add deprecated and fix NULL property defaults

2026-03-22  Daniel Gao  <daniel.gao.work@gmail.com>

  Skip properties marked as not introspectable

2026-03-22  Daniel Gao  <daniel.gao.work@gmail.com>

  Fix bitfield value conversion for out-of-range values

2026-03-22  Daniel Gao  <daniel.gao.work@gmail.com>

  Fix bugs and crashes in def generation

2026-03-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.88.0

2026-03-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add new API from glib 2.87.3

  * configure.ac:
  * meson.build: Require glib >= 2.87.3.
  * glib/src/markup.[ccg|hg]: Add ParseContext::get_offset() and
  get_tag_start().

2026-03-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml and .defs files

  using glib files from glib 2.88.0.

2026-03-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/defs_gen/enumextract.py, h2def.py: Ignore G_GNUC_FLAG_ENUM

  Ignore G_GNUC_FLAG_ENUM before the name of an enum definition.
  Possible end of enum: } G_GNUC_FLAG_ENUM GAppInfoCreateFlags;

2026-03-14  Daniel Gao  <daniel.gao.work@gmail.com>

  Don't skip oqaque or pointer records

2026-03-14  Daniel Gao  <daniel.gao.work@gmail.com>

  Resolve type names in signal params

2026-03-14  Daniel Gao  <daniel.gao.work@gmail.com>

  Allow generating defs for multiple girs together

2026-03-14  Daniel Gao  <daniel.gao.work@gmail.com>

  Write missing GError function param

2026-03-08  Daniel Gao  <daniel.gao.work@gmail.com>

  Add auto discovery of gir dependencies

2026-03-08  Daniel Gao  <daniel.gao.work@gmail.com>

  Add type resolver

  - Identifies unknown namespaced names
  - Name to C type mapping
  - Name to GParamSpec mapping

2026-03-07  Daniel Gao  <daniel.gao.work@gmail.com>

  Generate defs files using GObject introspection

  - Add executable mmgir for generating defs files from gir
  - Adds dependencies cli11, fmt, tinyxml2
    - fmt wrap is patched with a custom meson.build
  
  ## Workarounds
  
  Some enum/bitfield values don't have an associated glib:nick. In such
  cases, the member name is used with underscored replaced by hyphens.
  
  ## Limitations
  
  Some types are not resolved properly because they only provide the
  GType name and not the C type name. This is mostly seen in Property and
  ArrayType elements.

2026-01-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Don't require the 'dot' command

  Make it possible to build documentation without the dot command.
  Set the HAVE_DOT option in Doxyfile during configuration.
  In Autotools builds it's still unconditionally YES.
  The inheritance diagrams don't look as nice without the dot
  command from the GraphViz package.

2026-01-02  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Make build process more robust

  In order to generate the object/executable lists for our build, we generate a
  temporary makefile snippet and include it immediately to carry out the build,
  but this poses an issue when a different toolchain carry out the build using
  NMake.
  
  This makes the snippet use the toolset version, config and target arch for the
  build which should greatly improve the situation without adding much complexity

2026-01-02  Chun-wei Fan  <fanc999@yahoo.com.tw>

  README.win32.md: Update build info

  Make the information here reflect on the updates in the NMake build files
  better, and let people know clearer about the m4 (and other UNIXy tools)
  requirements when building from GIT checkouts.
  
  Let people know that m4.exe and PERL need not to be in %PATH%, and also
  let them know that it is still recommended that the m4.exe installation
  that comes with MSYS2/MSYS64/Cygwin is used, and 'XML::Parser' is still
  required for the PERL installation that is used,  in order to build from
  GIT checkouts.

2026-01-02  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Make m4 detection more flexible and robust

  Use UNIX_TOOLS_BINDIR, if supplied, to deduce m4.exe's location, and default
  to it if $(UNIX_TOOLS_BINDIR)\m4.exe is found, otherwise assume m4.exe is in
  the %PATH% if a m4 executable is not specified.
  
  Check whether the deduced or supplied (or default) m4 path is valid, and
  show a warning if that path isn't valid, when code generation needs to be
  carried out. If that path is valid, include the directory of the m4 path
  to be in %PATH% momentarily when generating the sources with gmmproc et al.
  
  This makes things a bit more flexible if one does not want to mess with the
  %PATH% envvar, and would normally include the path to the other UNIX tools
  that are needed to generate the sources as m4 typically is installed with the
  UNIX tools that comes with MSYS2 or Cygwin.
  
  For generating the PERL scripts that will refer to m4.exe, put in the canonical
  full path to m4, if it is located, otherwise just use the value we have for
  $(M4), as we did before.

2026-01-02  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Reorganize, fix, and clean up a bit

  Make the compiler flags and include directory flags separate, and standardize
  on dependency names, i.e. LIBSIGC->SIGC, and drop flags that are no longer
  relevant.
  
  Clean up things a bit by consolidating some repeated items.
  
  Also enforce the /GL and /LTCG compiler and linker flags for release builds,
  as we are not using gendef here, to better optimize things.
  
  Fix things where we are building from a GIT checkout so that we ensure all
  needed sources and files are generated.

2026-01-02  Chun-wei Fan  <fanc999@yahoo.com.tw>

  README.win32.md: Mention Visual Studio 2026

  Let people know about the expected file names of the built DLLs and lib's for
  the Visual Studio 2026 builds.

2026-01-02  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Make Visual Studio 2026 builds distinct

  ...from Visual Studio 2022 builds, by appending the appropriate toolset version
  for the built DLLs and .libs's.

2026-01-02  Chun-wei Fan  <fanc999@yahoo.com.tw>

  meson.build: Make Visual Studio 2026 builds distinct

  ...from Visual Studio 2022 builds, by applying the applicable toolset version

2025-12-10  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::Application::add_main_option_entry(): Handle empty description

  add_main_option_entry(OptionType arg_type, ...) calls
  g_application_add_main_option_entries() instead of
  g_application_add_main_option() because g_application_add_main_option()
  does not accept description == nullptr.
  Fixes #124

2025-11-05  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::File docs: Note where g_free() shall be called

  The contents returned from Gio::File::load_contents(), load_contents_finish()
  and load_partial_contents_finish() shall be freed with g_free().

2025-09-20  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Autotools build: Distribute tools/defs_gen/docenumdefs.py

  Should have been done when docenumdefs.py was created.

2025-09-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/defs_gen/docextract.py: Improve extraction of enum enumerators

  New enumerators in glib, gtk, pango are usually documented with one
  enumerator per documentation block. Fix the case when no enumerator
  is documented the old way in the enum block.

2025-09-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.86.0

2025-09-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gio/giomm/meson.build: dummy_header.h depends on all built .h files

  not just the used ones. Even the unused ones shall be built before
  the used ones are compiled. Unused ones may be #included in used ones.

2025-09-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Use SPDX expression for license

  This is the recommended format.
  See https://gitlab.freedesktop.org/cairo/cairomm/-/merge_requests/33

2025-09-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml files

  using glib files from glib 2.86.0.
  The .defs files are identical to the ones in glibmm 2.85.0,
  using glib files from glib 2.85.4.

2025-09-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml files

  * gio/src/gio_docs.xml:
  * glib/src/glib_docs.xml: Regenerate.
  * gio/src/gio_docs_override.xml:
  * glib/src/glib_docs_override.xml: Remove documentation of enumerators.

2025-09-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/defs_gen/docextract: Improve extraction of enum enumerators

  New enumerators in glib, gtk, pango are usually documented with one
  enumerator per documentation block. No formal difference from the
  documentation of a preprocessor macro.
  
  * tools/defs_gen/docenumdefs.py: New file. Parse header files to find
  definitions of enums and their enumerators.
  * tools/defs_gen/docextract.py: Call docenumdefs.parse_file().

2025-08-31  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.85.0

2025-08-30  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add new API from glib 2.85.2

  * configure.ac:
  * meson.build: Require glib >= 2.85.2.
  * gio/src/inetaddress.hg: Add get/property_scope_id(),
  get/property_flowinfo(), create(bytes, family, flowinfo, scope_id).
  * gio/src/zlibcompressor.hg: Add get/set/property_os().
  * glib/src/date.[ccg|hg]: Add get_week_of_year() and get_weeks_in_year().

2025-08-30  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml and .defs files

  using glib files from glib 2.85.4.
  Update gio_docs_override.xml and glib_docs_override.xml.

2025-07-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update the docs_override.xml files with enum documentation

  * glib/src/glib_docs_override.xml:
  * gio/src/gio_docs_override.xml: Add enum documentation that
  glibmm/tools/defs_gen/docextract_to_xml.py has not been able to extract.

2025-07-01  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/defs_gen/h2def.py: Avoid a deprecation warning from Python

  DeprecationWarning: 'count' is passed as positional argument
    mname = re.sub(regex, '', name, 1)

2025-04-06  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove obsolete FSF (Free Software Foundation) address

  See https://github.com/libxmlplusplus/libxmlplusplus/pull/72

2025-03-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Use the Python installation that Meson uses

  See !67

2025-03-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove ChangeLog.pre-2-36-2

2025-03-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.84.0

2025-03-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Small fixes to better fit glib 2.84

  * configure.ac:
  * meson.build: Require glib >= 2.83.4.
  * gio/src/dbusconnection.hg: Add an _IGNORE().
  * glib/glibmm/class.cc:
  * glib/glibmm/interface.cc: g_type_default_interface_ref() -> ..._get().
  Remove call to g_type_default_interface_unref(). It's a no-op.
  * glib/glibmm/object.cc: g_type_class_ref() -> g_type_class_get().
  Remove call to  g_type_class_unref(). It's a no-op.

2025-03-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml and .defs files

  using glib files from glib 2.84.0.

2025-03-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::spawn_*() doc: Suppress erroneous links

  * glib/src/spawn.hg: Doxygen generates strange links from "exec()",
  "main()", etc. Suppress the links with "%exec()", "%main()", etc.
  Remove references to non-existent gdk_spawn_on_screen() and
  spawn_on_screen_with_pipes().

2025-02-26  Chun-wei Fan  <fanc999@yahoo.com.tw>

  README.win32.md: Add note on %PATH% for Python

  This helps working around woes that arise from accidentally picking up
  the Python installation that comes from MSYS/MSYS64 or Cygwin, as we
  need tools from them to perform a maintainer build or a build from a GIT
  checkout.

2025-02-26  Chun-wei Fan  <fanc999@yahoo.com.tw>

  Meson: Use python[.exe] to check for Python for MSVC

  ...and MSVC-style builds, as we might accidentally pull in the 'python3'
  executable from Cygwin or MSYS2, especially if a maintainer build (i.e.
  GIT checkout) build is being used, which can cause confusion and/or
  trouble, as they expect different PATH conventions.
  
  If we want, we can always go back to using the Python module from Meson
  to look for the Python installation that is used to invoke Meson.
  
  The stock Python Windows installers from www.python.org ship with
  'python.exe', not 'python3.exe'.

2025-02-26  Chun-wei Fan  <fanc999@yahoo.com.tw>

  tests: Fix running on Windows 11

  Windows 11 deprecated and removed WordPad in the 24H2 update[1], meaning
  the "c:/Windows/write.exe" path is no longer applicable.
  
  Use the venerable NotePad instead here to make sure things continue to
  work, ie. "c:/Windows/notepad.exe".
  
  [1]: https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features-resources

2025-02-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Add install_tag keyword argument

2025-02-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.83.1

2025-02-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Don't run GLib tests when building a release tarball

2025-02-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.83.0

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

  Add Gio::Resource::has_children() and some other API

  * configure.ac:
  * meson.build: Require glib >= 2.83.0.
  * gio/src/file.hg: Add query_default_handler_async/finish().
  * gio/src/resource.hg: Add has_children() and has_children_global().
  * gio/src/socketlistener.[hg|ccg]: Add enum Gio::SocketListener::Event
  and signal_event().
  * tools/m4/convert_gio.m4: Add conversions for Gio::SocketListener::Event.

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

  Glib, Gio: Regenerate docs.xml and .defs files

  using glib files from glib 2.83.3.

2025-02-05  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Use libsigc++'s tag file when building a tarball

2025-02-05  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Publish the generated glibmm-2.68.tag file

  and use libsigc++'s published tag file.
  The *-doc modules don't install the tag files.

2025-01-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Update for the new release-service component

  * citemplates/release-service is necessary when making a release.
    See https://handbook.gnome.org/maintainers/making-a-release.html
  * Install sigc++ documentation.
    Will (hopefully) make glibmm's inheritance diagrams complete.
  * Don't build glib tests.

2024-12-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Replace gtkmm.org by gtkmm.gnome.org

2024-12-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Include the Property and Option examples in the documentation

  * glib/glibmm/property.h: Add @example properties/properties_example.cc.
  * glib/glibmm/ustring.h: Fix a reference to operator--().
  * glib/src/optioncontext.hg: Add @example options/main.cc.
  Replace "--" by "\--" in documentation to make Doxygen write two dashes
  instead of one n-dash.
  *  glib/src/regex.hg: Update enum constants (Regex::MatchFlags and
  Regex::CompileFlags) in documentation.
  Replace static_cast<CompileFlags>(0) and static_cast<MatchFlags>(0) by
  CompileFlags::DEFAULT and MatchFlags::DEFAULT in parameter default values.

2024-12-10  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  examples: Remove unnecessary calls to std::locale()

  * examples/compose/main.cc:
  * examples/dbus/client_bus_listnames.cc:
  * examples/dbus/server_without_bus.cc:
  * examples/dbus/session_bus_service.cc:
  * examples/options/main.cc:
  * examples/settings/settings.cc: Remove std::locale::global(std::locale("")).
  This is done by Glib::init().

2024-11-04  Christian Eggers  <ceggers@arri.de>

  giomm: DBus: Fix memory leak.

  The string returned by g_dbus_error_get_remote_error() must be free'd
  with g_free().
  
  https://docs.gtk.org/gio/type_func.DBusError.get_remote_error.html#return-value
2024-11-01  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib: Don't allow Value<Glib::RefPtr<T>> with incomplete class type

  * glib/glibmm/value.h: Make Glib::Value<Glib::RefPtr<T>> and
  Glib::Value<Glib::RefPtr<const T>> fail to compile if T is an incomplete
  class type. A run-time error is replaced by a compile-time error.
  * tests/glibmm_ustring_compare/main.cc: Remove an unnecessary #include.
  * tests/glibmm_value/main.cc: Test that Glib::Value<Glib::RefPtr<T>> and
  Glib::Value<Glib::RefPtr<const T>> don't compile when T is an incomplete
  class type (forward declared class).
  The new tests are added only in Meson builds (ninja test).
  * tests/meson.build: Add the new tests.
  
  See https://discourse.gnome.org/t/gtk-cellrendererpixbuf-criticals-is-this-a-gtkmm-bug/24669

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

  docs/reference/Doxyfile.in: Remove unsupported entries

2024-10-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::ustring: Allow comparison with objects implicitly convertible to ustring

  This makes it possible to compare a Glib::ustring with a std::string.
  That's an unwanted side effect of allowing comparison between ustring
  and Gtk::TreeValueProxy<T, Glib::ustring> and other objects that can be
  implicitly converted to a ustring.
  Fixes #121

2024-10-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Use ubuntu:rolling again, it's now 24.10

2024-09-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Use ubuntu:devel (24.10)

  Hopefully it contains meson >= 1.4.0 for glib.

2024-09-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Revert "CI: Install meson with pip instead of apt"

  This reverts commit cc5c9caef0f947e6db5d2ca23ab6080421237093.

2024-09-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Install meson with pip instead of apt

  glib is built as a subprocess and it requires meson >= 1.4.0.

2024-09-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update gio_docs_override.xml

  Improves the documentation of Gio::DesktopAppInfo::get_startup_wm_class().

2024-08-28  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  glib_generate_methods.sh: Don't read gvariant-core.h

  * glib/src/glib_functions.defs: Remove gvariant-core.h data.
  * glib/src/variant.hg: Remove an _IGNORE() directive.
  * tools/gen_scripts/glib_generate_methods.sh: Don't read file
  ../glib/glib/gvariant-core.h.

2024-08-28  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/pm/DocsParser.pm: Suppress an unjustified warning

  If the last parameter in a C function is an error parameter,
  it may be deliberately omitted in the documentation.

2024-08-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.82.0

2024-08-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add Gio::Converter::convert(const Glib::RefPtr<const Glib::Bytes>&)

  * configure.ac:
  * meson.build: Require glib >= 2.81.0.
  * gio/src/converter.hg: Add convert(const Glib::RefPtr<const Glib::Bytes>&).
  * gio/src/file.hg:
  * gio/src/settings.hg: Add some _IGNORE() directives.

2024-08-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml and .defs files

  using glib files from glib 2.82.0.

2024-07-31  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::DBus::Connection: Add register_object() with slots.

  * examples/Makefile.am: Distribute session_bus_client.sh.
  * examples/dbus/session_bus_client.sh: New file for testing session_bus_service.
  * examples/dbus/session_bus_service.cc: Use Connection:register_object()
  with slots instead of the one with an InterfaceVTable.
  * gio/src/dbusconnection.[ccg|hg]: Add register_object(object_path,
  interface_info, slot_method_call, slot_get_property, slot_set_property).
  Small improvements of documentation of other methods.
  
  Fixes #42

2024-07-31  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::DBus::InterfaceVTable, SubtreeVTable: Improve code snippets in docs

  * gio/src/dbusinterfacevtable.hg:
  * gio/src/dbussubtreevtable.hg: Reformat code snippets in the documentation.
  * gio/src/dbussubtreevtable.ccg: Check if node == nullptr in
  DBusSubtreeVTable_Introspect_giomm_callback().

2024-07-31  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add Gio::DBus::own_name(connection, .....)

  * gio/src/dbusownname.[ccg|hg]: Add own_name(connection, .....).
  * gio/src/dbuswatchname.[ccg|hg]: Fix some typos in the comments.

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

  Meson build: Don't try to get removed PACKAGE_TARNAME

  from pkg_conf_data when glibmm is a subproject.
  
  dependency().get_variable(pkgconfig: 'xxx', internal: 'xxx') ->
  dependency().get_variable('xxx'). Possible when meson version >= 0.51.

2024-07-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson: Remove the can_add_dist_script variable

  It's unnecessary when the meson version >= 0.58.

2024-07-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson: Re-introduce previous requirements in the .pc files

  The modules that have previously been listed as 'Requires' in the
  .pc files must remain there when the .pc files are generated by
  pkgconfig.generate(). Otherwise some apps can't be linked without
  adding requirements in the apps. (That would be the right thing to do
  in the long run, but to avoid problems in apps, removal of requirements
  from glibmm's .pc files is best done only in connection with the next
  ABI break.) E.g. some of the test programs of libxmlplusplus-4
  can't be linked without this commit.

2024-07-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson: Some fixes in the pkg-config files

  * gio/giomm/meson.build: Move glibmm-2.68 from Requires.private to Requires.
  * gio/meson.build: Fix the lists of input/output data.
  * glib/meson.build: Fix the lists of input/output data.
  GLIBMM_MODULE_NAME = glibmm_pcname.
  * meson.build: Really require python3 >= 3.7. Require meson >= 0.62.
  Let meson provide the value of datadir.

2024-07-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Don't link to removed parts of gnome.org

  Don't link to library.gnome.org or developer.gnome.org.
  Require python3 >= 3.7. That's what Meson requires.

2024-07-03  Chun-wei Fan  <fanc999@yahoo.com.tw>

  meson: Drop some unused items

  Since we are using Meson's pkg-config module to generate pkg-config
  files, drop items that are no longer relevant.

2024-07-03  Chun-wei Fan  <fanc999@yahoo.com.tw>

  Meson: Generate pkg-config files

  ...instead of using the *.pc.in templates, so that things are a bit
  cleaner, and more flexible.
  
  This will help us to generate relocatable pkg-config files as well.

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

  CI: meson install -> meson install --quiet

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

  Glib::MainContext, etc.: Fix some comments

  * glib/glibmm/dispatcher.h: Remove "@ingroup Threads". That group does not
  exist now.
  * glib/glibmm/main.h: MainContext::query(): Remove documentation of
  non-existent return value.
  * glib/glibmm/timer.h: Fix some @newin commands.
  * glib/src/date.hg: Date::order(): Remove documentation of
  non-existent return value.

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

  gmmproc: Improve documentation of enum and enum class

  * tools/pm/DocsParser.pm:
  * tools/pm/Output.pm:
  * tools/pm/WrapParser.pm:
  Scoped enum class must be documented differently than plain enum.
  Otherwise Doxygen may omit the enum docs and/or the enum value docs
  from the generated html files. Different versions of Doxygen can behave
  differently. Doxygen has problems with enum class. There are several
  relevant open Doxygen issues.

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

  docs/reference/Doxyfile.in: Remove obsolete entries

2024-06-06  Jan Burgmeier  <jan.burgmeier@gmx.de>

  Fix memory leak in DBus::generate_guid()

  Docu states that caller must free the memory see:
  https://docs.gtk.org/gio/func.dbus_generate_guid.html

2024-05-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/pm/DocsParser.pm: Don't link to developer-old.gnome.org

  Fix a comment that refers to the gtk-doc manual.
  Fixes #120

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

  tools/defs_gen/h2def.py: Avoid syntax warnings from Python 3.12

  Python 3.12 issues "SyntaxWarning: invalid escape sequence"
  for expressions like '\s+'. Change to raw strings: r'\s+'.

2024-04-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gmmproc: Convert [enum@Module.Type.ENUMERATOR] in documentation

  * tools/defs_gen/docextract.py: Accept underscores in property names
    and signal names.
  * tools/pm/DocsParser.pm: Accept underscores in property names and in
    signal names with gi-docgen syntax.
    Convert enumerator names with gi-docgen syntax.

2024-04-12  Chun-wei Fan  <fanc999@yahoo.com.tw>

  glibmmconfig.h.[meson|in]: Pre-define GLIBMM_SIZEOF_* for MSVC

  One still might want to try to build or use glibmm built with NMake, so define
  these as appropriate for Visual Studio, in case glibmmconfig.h is not
  processed with Meson.

2024-04-12  Chun-wei Fan  <fanc999@yahoo.com.tw>

  generate_wrap_init_pl.in: Also consider clang-cl

  clang-cl also defines _MSC_VER like Visual Studio, but uses GCC-style
  directives for silencing warnings for inconsistent dllimport directives
  (that is outside of glibmm's control), so we update the previous commit
  to now first check for __GNUC__ and __clang__, and then _MSC_VER.
  
  Silences warnings for inconsistent dllimport directives for clang-cl as
  well, in addition to GCC-style CLang.

2024-04-12  Chun-wei Fan  <fanc999@yahoo.com.tw>

  glibmm_value.h: Drop unneeded GLIBMM_API decoration

  It's a templatized in-header implementation, so we can just leave out
  the GLIBMM_API decoration. Silences a warning from CLang/clang-cl.

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

  Gio::ActionGroup, Gio::DBus::MethodInvocation: Remove unnecessary code

  Remove unnecessary forward class declarations.
  Clang 18 on Windows does not like them.

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

  tests/glibmm_interface_implementation: NULL -> nullptr

  Clang 18 does not consider NULL good enough in calls to g_object_get().

2024-04-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  generate_wrap_in.pl.in: Ignore -Winconsistent-dllimport from clang

  The clang compiler on Windows warns like MSVC, when declarations
  in wrap_init.cc lacks __declspec(dllimport).
  Compare https://gitlab.gnome.org/GNOME/glibmm/-/commit/d661472529852c358f2ff441dcc396db3027075a
  Fixes #119

2024-03-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.80.0

2024-03-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::content_type_guess(): Remove most of an unneccesary overload

  clang 19.0.0 does not like the overload that takes a
  const std::basic_string<guchar>&. This overload should have been removed
  16 years ago by commit 84135b93a20e6c9fe652849959d3ff90474c99bb.
  It can't be removed completely now, because that would break ABI.
  Remove as much as possible.
  Fixes #118

2024-03-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Install python3-packaging, required by subprocess glib

2024-03-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Add new API from glib 2.80.0

  * configure.ac:
  * meson.build: Require glib-2.0 >= 2.79.2.
  * gio/src/application.hg: Add get/set/property_version().
  * gio/src/applicationcommandline.[ccg|hg]: Add done().
  Use g_application_command_line_print/printerr_literal() in print/printerr().
  * gio/src/dbusmessage.hg: Add get_arg0_path().
  * gio/src/socket.hg: Add receive_bytes() and receive_bytes_from().
  * glib/glibmm/utility.h: Add convert_const_gchar_ptr_to_dbus_object_path_string().
  * glib/src/datetime.hg: Add create_from_local_usec(), create_from_utc_usec()
  and to_unix_usec().
  * tools/m4/convert_glib.m4: Add conversion for Glib::DBusObjectPathString.

2024-03-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml and .defs files

  using glib files from glib 2.80.0.

2024-03-05  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add Glib::wide_from_utf8() and wide_to_utf8()

  * glib/src/convert.[ccg|hg]: Add wide_from_utf8() and wide_to_utf8().
  * tests/glibmm_ustring_make_valid/main.cc: Test the new functions.
  
  Based on Chris Vine's patch in issue 9.
  
  Fixes #9

2024-02-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.78.1

2024-01-17  Chun-wei Fan  <fanc999@yahoo.com.tw>

  README.win32.md: Mention about Visual Studio with libsigc++-3.6.x

  Make a note to users that Visual Studio 2019 or later is recommended if
  building against libsigc++-3.6.x or later as warnings are being
  generated as C++-17 support is not that well done in 2017 when building
  against libsigc++-3.6.x or later.

2024-01-17  Chun-wei Fan  <fanc999@yahoo.com.tw>

  NMake Makefiles: Make dep paths configurable

  This way, one may opt to pass in a base include|libpath|tools_path, plus
  conrresponding paths to GLib and libsigc++ as needed to assist NMake in
  finding the headers, .lib's and tools from the dependencies as needed so
  that building things with NMake is made easier with more flexibility.

2024-01-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Update htmlrefpub

2023-12-15  Daniel Boles  <dboles.src@gmail.com>

  ustring: TODO to avoid copies from operator string

  Our conversion operator to std::string always returns a copy but that is
  wasteful when it could be a const& reference or moved-out from an rvalue
  – especially bad since conversions can occur silently & harm performance
  without users realising. We can split to const&/&& overloads at next ABI

2023-12-15  Daniel Boles  <dboles.src@gmail.com>

  ustring: Add TODOs for C++20 move from outstreams

  C++20 adds `ostream.str() &&` for rvalue `this`, which will move out the
  stream's owned string. We can use that once we are on C++20 to avoid the
  extra copy of the string (although we do then copy that AGAIN via GLib!)

2023-12-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Don't fail if warning_level=everything

2023-11-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Dispatcher: Allow destroy during emit

  If a signal handler deletes a Dispatcher, a DispatchNotifier
  can be deleted while its pipe_io_handler() method is executing.
  Stop its execution if this happens.
  
  Fixes #116

2023-10-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/defs_gen/h2def.py: Make return types that are unsigned work

  GdkDmabufTextureBuilder contains functions that return unsigned int.

2023-09-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.78.0

2023-09-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml and .defs files

  using glib files from glib 2.78.0.

2023-08-30  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::ustring: Add a std::hash<> specialization

  So people can use it as a key for std::unordered_map and
  std::unordered_set. Originally proposed by Murray Cumming.
  Add tests/glibmm_ustring_hash.
  Fixes #16

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

  Glib::VariantType docs: Update a link

  and change Gtk::Bin to Gtk::Widget. Gtk::Bin does not exist in gtkmm4.

2023-07-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.77.0

2023-07-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Add new API from glib 2.77.0

  * configure.ac:
  * meson.build: Require glib-2.0 >= 2.77.0.
  * gio/src/actionmap.hg: _IGNORE(g_action_map_remove_action_entries).
  * gio/src/resolver.hg: Add set/get/property_timeout().
  * glib/glibmm/ustring.[cc|h]: Add ustring::truncate_middle().

2023-07-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml and .defs files

  using glib files from glib 2.77.0.

2023-07-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove AUTHORS and README.SUN; add info to README.md

  See gtkmm#140

2023-07-11  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Update glibmm.doap

2023-06-29  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  README.md: Generate a link to README.win32.md

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

  README.win32: Convert to MarkDown

  Convert the README.win32 file into MarkDown format so that it is easier on the
  eye for formatting, and convert it to UNIX line endings.  Also update the info
  that is in there to reflect the current situation on Visual Studio better.

2023-06-19  Daniel Boles  <dboles.src@gmail.com>

  Gio::File: Fix various spelling errors in .hg docs

2023-06-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/enum.pl, tools/defs_gen/enumextract.py: Accept XXX = YYY + 1

  Accept "+" in GTK_ALIGN_BASELINE = GTK_ALIGN_CENTER + 1,

2023-06-01  Jeremy Bicha  <jeremy.bicha@canonical.com>

  tests: Test for /etc/passwd instead of /etc/fstab

  /etc/fstab is not guaranteed to exist on modern Linux distros

2023-05-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib: Add DBusHandle and Variant<DBusHandle>

  Fixes #113

2023-05-24  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Autotools build: Don't include config.h in ustring.cc

  Include GLIBMM_SIZEOF_WHAR_T in glibmmconfig.h, as in a Meson build.

2023-05-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Variant: Provide Variant<long long> whenever possible

  If all of the types short, int, long, long long have size 2, 4 or 8 bytes,
  provide Variant specializations for all of them and for the corresponding
  unsigned types.
  Fixes #111

2023-05-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Variant docs: Small fixes

  create_variant(): Add a missing ::create.
  VariantBase::get_dynamic(): Recommend Variant<T>::get() when possible.
  See #109 and #110

2023-05-20  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::VariantContainerBase: Add a const version of get_child()

  and deprecate the non-const version.
  Both get_child() versions return a non-const VariantBase, usually
  with the same GVariant as *this, just with an added reference.
  It's reasonable to have a const version, because GVariant is immutable.
  Fixes #112

2023-05-20  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add Glib::VariantBase::get_dynamic()

  and use it in tests/glibmm_variant/main.cc.
  Fixes #110

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

  Add Glib::create_variant()

  and use it in tests/glibmm_variant/main.cc.
  Fixes #109

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

  Doxyfile.in: Remove obsolete entries

  and add a comment in tools/m4/class_shared.m4.

2023-04-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tools/defs_gen/h2def.py: Recognize Graphene type names

  A typical type name is not GraphenePoint, but graphene_point_t.

2023-04-26  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  giomm.pc.in, glibmm.pc.in: Update htmlrefpub

2023-04-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add Gio::Subprocess, SubprocessLauncher and examples/subprocess

  Fixes #106

2023-04-09  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gmmproc: Generate callback functions with C linkage

  * tools/m4/signal.m4: Add an optional parameter to _SIGNAL_PH.
  * tools/m4/vfunc.m4: Add an optional parameter to _VFUNC_PH.
  * tools/pm/Output.pm:
  output_wrap_vfunc_h(): Add $objCDefsFunc->args_names_only()
  in call to _VFUNC_PH.
  output_wrap_default_signal_handler_h(): Add $objCDefsFunc->args_names_only()
  in call to _SIGNAL_PH.
  Part of issue #1

2023-04-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib:NodeTree: Add GLIBMM_API on new callback functions

2023-04-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib: NodeTree etc.: Use callback functions with C linkage

  * glib/glibmm/class.cc: Use glibmm_custom_[get|set]_property_callback().
  * glib/glibmm/object.[cc|h]: Add set_data_with_c_callback().
  Don't call g_object_set_qdata_full() with a function with C++ linkage, if
  GLIBMM_CAN_ASSIGN_NON_EXTERN_C_FUNCTIONS_TO_EXTERN_C_CALLBACKS is defined.
  * glib/glibmm/property.[cc|h]: Declare some local functions extern "C".
  Add glibmm_custom_[get|set]_property_callback().
  * glib/src/nodetree.[ccg|hg]:
  Add glibmm_NodeTree_c_callback_[traverse|foreach]() and
  struct NodeTreeCallback[Traverse|Foreach]Data.
  Part of issue #1

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

  Glib: value_custom: Use callback functions with C linkage

  * glib/glibmm/value_custom.[cc|h]: Add custom_boxed_type_cpp_register().
  * tests/glibmm_value/main.cc: Add test of copying custom Value.
  Part of issue #1

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

  Add Gio::giomm_SignalProxy_async_callback() with C linkage

  and use it instead of SignalProxy_async_callback().
  Part of issue #1

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

  Glib: Use callback functions with C linkage

  * gio/src/cancellable.ccg: Add TODO comment.
  * glib/glibmm/class.cc: Call custom_class_base_finalize_function() and
  custom_class_init_function() via local functions with C linkage.
  * glib/glibmm/extraclassinit.h: Point out in the class documentation that
  the class init and instance init functions shall have C linkage.
  * glib/glibmm/main.[cc|h]: Call prepare_vfunc(), check_vfunc() and
  dispatch_vfunc() via local functions with C linkage.
  * glib/glibmm/objectbase.cc: Call destroy_notify_callback()
  via a local function with C linkage.
  * glib/glibmm/propertyproxy_base.cc: Call PropertyProxyConnectionNode::
  callback() and destroy_notify_handler() via local functions with C linkage.
  * glib/glibmm/signalproxy.cc: Call SignalProxyNormal::slot0_void_callback()
  and SignalProxyConnectionNode::destroy_notify_handler() via local functions
  with C linkage.
  * glib/src/binding.ccg: Add extern "C".
  * glib/src/bytearray.ccg: Add a TODO comment.
  * glib/src/markup.ccg: Call functions in the vfunc table via local
  functions with C linkage.
  * glib/src/optioncontext.ccg: Add extern "C".
  * glib/src/optiongroup.ccg: Call post_parse_callback() and
  option_arg_callback() via local functions with C linkage.
  
  Part of issue #1

2023-03-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio: Use callback functions with C linkage

  * gio/giomm/socketsource.cc: Add extern "C".
  * gio/src/application.[ccg|hg]: Call Application_Class::open_callback()
  via a local function with C linkage.
  * gio/src/asyncinitable.[ccg|hg]: Call
  AsyncInitable_Class::init_async_vfunc_callback() and
  init_finish_vfunc_callback() via local functions with C linkage.
  * gio/src/dbusobjectmanagerclient.ccg: Use a local function with C linkage
  instead of Glib::destroy_notify_delete<SlotProxyType>.
  * gio/src/file.ccg: Add extern "C".
  * gio/src/liststore.ccg: Add a TODO comment.
  * gio/src/memoryinputstream.ccg: Add extern "C".
  * gio/src/settings.ccg: Add extern "C".
  * gio/src/socketcontrolmessage.[ccg|hg]: Call
  SocketControlMessage_Class::deserialize_async_vfunc_callback()
  via a local function with C linkage.
  
  Code that mixes up C linkage and C++ linkage has undefined behavior.
  Most compilers make no difference between C and C++ linkage, so it
  has not been an issue so far. Part of issue #1

2023-03-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.76.0

2023-03-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::Settings: Add an #include

2023-03-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml and .defs files

  using glib files from glib 2.76.0.

2023-03-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::ListModel: Add get_typed_object()

  Inspired by gtkmm#132.
  A test case has been added at gtkmm/tests/filedialog.
  It's difficult to make a meaningful test case without involving gtkmm.
  A good test case shall contain a GListModel with objects of a class
  which has no corresponding C++ class, and implements an interface
  which is wrapped in a C++ class.

2023-02-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Dispatcher: Add const versions of emit() and operator()()

  and deprecate the non-const versions.
  Fixes #103

2023-02-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Dispatcher: Remove a g_warning()

  Don't warn when a Dispatcher is deleted while messages are pending.
  Fixes #108

2023-02-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Doxyfile.in: Don't hide undocumented classes

  Might make the inheritance diagrams less incomplete when Doxygen's
  tag files are not perfect.

2023-02-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  README.md, CI: meson -> meson setup

2023-01-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.75.0

2023-01-17  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib, Gio: Regenerate docs.xml and .defs files

  using glib files from glib 2.75.2. Update gio_docs_override.xml.

2023-01-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::Settings: Add bind() overloads and unbind()

  Add the bind() overloads with mapping functions.

2023-01-16  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add the GLIBMM_CHECK_VERSION() preprocessor macro

2023-01-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Binding: Fix a bind_property() overload

  The bind_property() overload with two transformation functions
  has been wrong since commit 4ed3ff9cad836dc7b24282a112d66847292a9baa.

2023-01-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  CI: Install all dependencies with apt

  Ubuntu 22.10 contains libsigc++-3.0-dev.

2023-01-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Simplify if-file-exists test

2023-01-09  Chun-wei Fan  <fanchunwei@src.gnome.org>

  liststore.hg: Rename a local variable

  In the templatized implementation of
  std::pair<bool, unsigned int> ListStore<T_item>::find, replace 'result' with
  'find_result' for what g_list_store_find_with_equal_func_full() returns, to
  avoid a compiler warning when building the giomm_listmodel test program when
  '-Dwarnings=max' is specified, for Visual Studio builds, as we are using a
  variable 'result' in a rather global scrope there[1].
  
  This will help fix 'meson dist' on Visual Studio builds.
  
  [1]: https://learn.microsoft.com/en-us/cpp/error-messages/compiler-warnings/compiler-warning-level-4-c4459

2023-01-09  Chun-wei Fan  <fanc999@yahoo.com.tw>

  generate_wrap_init.pl.in: Disable warning C4273

  ... for Visual Studio builds, as GLib 2.75.x and later applied
  __declspec(dllimport) via macros to DLL builds of the GLib libraries,
  meaning that when we put the GQuark and GType function prototypes into
  wrap_init.cc warning C4273 will be raised as the prototypes in
  wrap_init.cc does not have any dllimport decorations (and would not have
  otherwise mattered).
  
  This allows builds with '-Dwarnings=fatal' to proceed with Visual Studio
  builds.

2023-01-05  Chun-wei Fan  <fanc999@yahoo.com.tw>

  Fix giomm_simple test on Windows

  One normally cannot attempt to remove (delete) a file on Windows if it
  is still open, so we must close the resources that are tied to the file
  before attempting to delete it.
  
  Without doing so, the test program will fail on Windows as an exception
  is caught as the file->remove() call failed since the associated
  iostream is still open.

2023-01-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Simplify lookup of python command

  See libsigcplusplus PR#83

2023-01-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  meson.build: Fix the evaluation of is_git_build on Windows

  See gtkmm#131

2023-01-04  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Don't copy files with configure_file()

  It's deprecated from Meson 0.64. The replacement, fs.copyfile(),
  is not useful here. It only copies from the source directory to
  the build directory.

2022-12-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Binding::unbind(): Fix documentation

  Should have been done in commit dc92d02f4d50851a1af59e5fbe2a753dcfd2e9df.

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

  Glib::Module: Deprecate build_path()

  and update the constructor's documentation.

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

  Add Gio::BytesIcon

  * gio/giomm.h:
  * gio/giomm/meson.build:
  * gio/src/filelist.am: Add BytesIcon.
  * glib/src/bytes.[ccg|hg]: Add Glib::Value specialization.
  Required by _WRAP_PROPERTY in bytesicon.hg.
  * tools/extra_defs_gen/generate_defs_gio.cc: Add G_TYPE_BYTES_ICON.
  * gio/src/gio_signals.defs: Add BytesIcon property.
  * gio/src/bytesicon.[ccg|hg]: New files.
  
  Fixes #107

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

  Gio::AppInfo: Add get_[recommended|fallback]_for_type()

  Fixes #105

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

  Gio::NetworkMonitor::get_default(): Add refreturn

  Fixes #104

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

  Glib::RefPtr: Put the documentation in a Doxygen group

  A group (but not a 'using' alias) gets its own html file,
  which can be referred to from outside glibmm.

