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

  2.68.2

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

  CI: Copy .gitlab-ci.yml from the master branch

  Switch to debian:testing.
  Build with g++-11 instead of g++-9.
  g++-9 is not available in debian:testing any more.
  
  Don't rebuild libsigc++ if it can be pulled from the cache.
  Build it only once if it must be rebuilt.

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

  Glib::wrap_register_init(): Don't use g_quark_from_static_string()

  Replace it by g_quark_from_string().
  g_quark_from_static_string() shall not be used, if glibmm (but not glib)
  is loaded and unloaded several times.
  Fixes #96

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

  Declare some copy assignment operators deleted (=delete)

  Avoid warnings from the clang++ compiler.
  
  It's deprecated in C++ to implicitly declare a copy constructor, if there
  is a user-defined copy assignment operator. Instead of declaring copy
  assignment operators private without implementation, declare them deleted.

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

  Use GLib from the main branch in subproject

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

  Gio::AppInfo::get_all(): Use a local TypeTraits in ListHandler

  Applies also to get_all_for_type().
  
  Add and use struct TypeTraits_AppInfo, local in gio/src/appinfo.ccg
  and appinfo.cc. It calls Glib::wrap(GAppInfo*, bool) which uses
  Glib::wrap_auto_interface(). The partial specialization in
  containerhandle_shared.h calls Glib::wrap_auto(), which is not acceptable
  if the GAppInfo object does not already have a wrapper, and its class type
  has not been wrapped in a C++ class (e.g. GWin32AppInfo or GOsxAppInfo).
  Fixes #94

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

  handle-built-files.py: Specify file encoding on generated files

  The default file encoding is platform dependent in Python.
  Better specify which encoding is preferred.

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

  Gio::ListModel::get_object(): Don't try to cast to Glib::Object

  Gio::ListModel::get_object() returns Glib::RefPtr<Glib::ObjectBase>.
  Don't try to dynamic_cast it to Glib::Object. It would fail if the object
  has been constructed as an interface, and e.g. has a Gio::File wrapper.
  Fixes #93

2021-07-15  talisein  <agpotter@gmail.com>

  fileenumerator.hg: Remove refreturn to avoid memory leak

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

  Glib::ustring: Remove extraneous GLIBMM_API

  Deleted methods shall not be decorated with GLIBMM_API.
  Fixes #92

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

  2.68.1

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-15  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-07  Chun-wei Fan  <fanchunwei@src.gnome.org>

  Clean up Visual Studio build files

  Stop ignoring warnings C4251, C4273 and C4275 and add /EHsc in the compiler
  flags, so that we know if we are inadvertedly tying ourselves too closely to
  a Visual Studio compiler/STL version

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

  Don't mark the Glib::Source class with GLIBMM_API

  Instead, mark the individual members with GLIBMM_API so that we avoid having
  the code tied to a particular STL and compiler version.
  
  Update the classes that derive from Glib::Source accordingly as well

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

  error.h Avoid exporting class deriving frm std::exception

  This will avoid having the ABI tied to a particular STL and compiler version,
  and so will eliminate C4275 compiler warnings when building the code.
  
  Also update gerror.m4 so that it will generate code deriving from Glib::Error
  with the export macro markings with the member functions, so that things
  continue to build properly

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

  fileattributeinfo.hg: Avoid exporting classes with std::string members

  ...and templates that inherit std::string.  This will help us to also eliminate
  C4251 warnings from code that use thid class and related items, and avoid ABI
  compatibility issues when building code that link and run aginst glibmm on
  Visual Studio builds.

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

  variantdbusstring.h: Don't mark classes with GLIBMM_API

  It's actually not necessary here, and it will cause issues with the previous
  commit

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

  ustring.h: Avoid exporting classes with std::string members

  ...and templates that inherit std::string.  This will help us to also eliminate
  C4251 warnings from code that use the ustring class and related items, and avoid
  ABI compatibility issues when building code that link and run aginst glibmm on
  Visual Studio builds.

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

  Glib::PatternSpec: Ignore deprecation of g_pattern_match()

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

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

  * meson.build:
  * docs/reference/meson.build:
  * gio/giomm/meson.build:
  * glib/glibmm/meson.build:
  Call add_dist_script() in a subproject, if meson.version() >= 0.58.0.
  * tools/build_scripts/handle-built-files.py:
  Use MESON_PROJECT_DIST_ROOT if it exists, else MESON_DIST_ROOT.
  It exists if meson.version() >= 0.58.0.

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

  Meson build: Make quiet installations possible

  * tools/build_scripts/handle-built-files.py: Don't print names of
  installed files if environment variable MESON_INSTALL_QUIET is set.
  It is set by "meson install --quiet" in Meson 0.54.0 and newer.

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

  tests/glibmm_ustring_compare: Fix so it works for C++20

  Make 3 tests, where the 2 new tests check that the disallowed comparisons
  between std::string and Glib::ustring don't compile.
  The new tests are added only in Meson builds (ninja test).
  See MR !50

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

  Meson build: No implicit_include_directories

2021-04-06  Magne Oestlyngen  <magne@spacetec.no>

  Variant: Fix so it works with C++20

  C++20 changed some aspects of templates that broke variant.h on
  some compilers (GCC 11).
  
  Ref: https://wg21.cmeerw.net/cwg/issue2237
  
    template<class T>
    struct A {
      A<T>();  // ok pre-C++20, now incorrect
  //  A();     // correct for all versions
    };
  
  This commit removes the "simple-template-id" from both the default
  constructor (no args) and the explicit constructor (has args), even
  though only the default constructor currently gives error on GCC 11.
  Since both versions are wrong according to the issue referred to above
  it is expected that GCC (and possibly other compilers) will be updated
  to fail on both cases in the future.

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

  Meson build: No implicit_include_directories

  It shall not be possible to find a glibmm header file
  with #include <xxx.h> instead of #include <glibmm/xxx.h>.
  Not fully fixed until https://github.com/mesonbuild/meson/issues/8562
  has been fixed.

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

  Add tools/defs_gen/enumextract.py

  A Python script that can replace the Perl script tools/enum.pl.
  Why? Just because I've got fond of Python.

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

  Meson build: Make it possible to use glibmm as a subproject

  glib and sigc++ can be subprojects of glibmm.

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

  Meson build: examples and tests: Add dependency('threads')

  Multithreaded examples and tests depend on 'threads'.
  I noticed this when I started experimenting with subprojects.
  Strange that it was not reported as a missing dependency long ago.

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

  g[io|lib]mmconfig.h.*: Don't dllimport on MinGW

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

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

  tools/gen_scripts: Ignore gio/gwin32api-*.h

  Ignore some new glib header files when generating
  gio/src/gio_enums.defs and gio/src/gio_methods.defs.

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

  docs/reference/Doxyfile.in: Remove obsolete entries

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

  Meson build: Use relative paths to untracked/

  The paths to the source code in untracked/ shall be relative to the
  meson.build file, when library files are built from a tarball.
  With absolute paths Meson may generate too long file names.
  See gtkmm!61

2020-12-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  2.68.0

2020-12-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

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

  and update gio/src/gio_docs_override.xml.
  
  Regenerated while the glib-2-66 branch was checked out from glib.

2020-12-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Binding, TimeZone: Ignore deprecation of some glib functions

  g_binding_get_source(), g_binding_get_target() and g_time_zone_new()
  are deprecated in glib 2.68. We can't use the replacement functions,
  which are new in glib 2.68. We want to build with -Dwarnings=fatal
  and run with both glib 2.68 and older versions of glib.

2020-12-13  Pavlo Solntsev  <p.sun.fun@gmail.com>

  CI: Replacing old comments with correct ones

  The old comments were automatically added when initial version of the
  script was created. Here we repalce them with meaningful comments.

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

  Change the ABI to glibmm-2.68

  So we can use the 2.66 version numbers for stable releases in the
  glibmm-2.4 ABI series.
  
  We've done similar ABI name changes several times before.

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

  tests/glibmm_tls_client: Skip test, if socket can't be connected

  This test sometimes fails in CI runs, probably for a reason that's out
  of glibmm's control.

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

  tests/glibmm_tls_client: Catch exceptions from more function calls

  Gio::Socket::create() can throw an exception. Put it in a try block.
  See #84

2020-12-08  Pavlo Solntsev  <p.sun.fun@gmail.com>

  CI: Adding build and test job for clang compiler

  Release build and test was added for clang compiler.

2020-12-08  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Binding: Avoid warning from gcc-10

  g++-10 with optimization level -O1 or higher warns about possible use of
  an uninitialized variable when tests/glibmm_binding/main.cc is compiled.
  I don't understand why.
  
  There is no warning if the private method Glib::Binding::TransformProp::
  operator()() is compiled without optimization. Add an attribute that turns
  off optimization for this method when it's compiled with with gcc-10 or
  higher. gcc-9 does not warn. gcc-10 does not warn in glibmm-2.4, where
  std::optional is not used.

2020-12-07  Pavlo Solntsev  <p.sun.fun@gmail.com>

  CI: Updating config file to reflect recent changes

  CI configuration file is updated to support meson and autotools builds
  for glibmm. libsigc++ version is updated up to 3.0.6 and it will be built
  using meson only.
  
  See #84 for details

2020-11-21  Tom Schoonjans  <Tom.Schoonjans@rfi.ac.uk>

  Meson build: fix is_os_cocoa detection

  The previous check didnt work as the compiler choked on the Objective-C code
  that was dragged in by the Cocoa headers.
  
  This patch simplifies things by simply asking what system the host is
  running on.

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

  Remove unnecessary TODO and README files

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

  generate_wrap_init.pl.in: Use g_type_ensure()

  Call g_type_ensure(SomeClass::get_type()).
  
  Redefining the G_GNUC_CONST preprocessor macro does not have the
  intended effect (SomeClass::get_type() actually being called) if
  the package is compiled and linked with the -flto option.
  LTO = link time optimization
  
  https://mail.gnome.org/archives/gtkmm-list/2020-November/msg00009.html

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

  Gio::File docs: Fix names of thrown exceptions

  and remove unnecessary TODO comments in several files.

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

  glib/glibmm.h: Describe how to use glibmm with meson

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

  Meson build: Fix versioning on macOS for libglibmm_generate_extra_defs

2020-09-30  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Fix versioning on macOS

  See https://github.com/libsigcplusplus/libsigcplusplus/pull/65

2020-09-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Add missing Glib::Value and Variant documentation

  The value_basictypes.h and variant_basictypes.h files, which are generated
  from .m4 files, were not included in the input to Doxygen.

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

  Remove Glib::BalancedTree

  Use std::map or std::unordered_map instead.

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

  class_interface.m4: Export the generated private class

  As in the case of class_shared.m4, we need to do the same for
  class_interface.m4 as well, in order to export the items in the private
  headers fully.

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

  gmmproc: Make h2def.py recognize more macros

  When parsing function declarations, remove G_DECLARE_DERIVABLE_TYPE
  and GDK_DECLARE_INTERNAL_TYPE.

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

  glib/glibmm/private/*.h: Decorate the classes with GLIBMM_API

  This is done for completeness' sake, as we are doing for the private headers that we
  generate.

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

  class_shared.m4: Decorate private class prototype

  ...when using _WRAP_GOBJECT with a function decoration.  This will help expose
  the class definition in the generated private/*_p.h in the built DLLs/LIBs that
  is built with Visual Studio or clang-cl.

2020-08-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Rewrite Gio::Tls[Client,Server]ConnectionImpl

  TlsConnection_Class::wrap_new() can wrap a C object in a TlsConnection,
  TlsClientConnectionImpl or TlsServerConnectionImpl depending on which
  interface, if any, the C object implements.
  
  No need for special wrap*() functions in Tls[Client,Server]Connection
  or SocketClient::signal_event().
  
  This is similar to Gdk::DeviceWithPad.

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

  Gio::Tls[Client,Server]ConnectionImpl: Improve the wrap*() functions

  Make Glib::wrap_tls_[client,server]_connection_impl() do like other
  wrap() functions for ref-counted objects when they are given a nullptr:
  return an empty RefPtr.

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

  Gio::SocketClient::signal_event(): Fix wrapping of 'connection' param

  The GIOStream* parameter in the 'event' signal can point to either a
  GSocketConnection or to a subclass of GTlsConnection that implements
  the GTlsClientConnection interface. If it implements the
  GTlsClientConnection interface, wrap it in a Gio::TlsClientConnectionImpl.
  Then a signal handler can do:
    auto tls_client_connection =
      std::dynamic_pointer_cast<Gio::TlsClientConnection>(connection);
  
  Fixes #73

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

  Glib::IOChannel docs: Update names of some enum values

2020-07-30  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio: Add Tls[Client,Server]ConnectionImpl

  Restructure Tls[Client,Server]Connection. They are interfaces. Now they
  derive only from Glib::Interface, like all interfaces shall do.
  
  Tls[Client,Server]ConnectionImpl don't correspond to C classes. They can
  wrap any C object that derives from GTlsConnection and implements
  GTls[Client,Server]Connection. Such C classes in GLib are not public.
  They can't be wrapped in the usual way.

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 generating [glib|gio]mm[config.h|.rc]

  This fixes the build process so that we won't need to generate them
  unnecessarily (i.e. when building from a release tarball built with autotools).
  
  Also streamline the build process that we no longer need to explicitly run
  the 'prep-git-build' target before building, where we generate
  [glib|gio]mm[config.h|.rc], and if needed, gmmproc and generate_wrap_init.pl,
  as part of the normal 'all' target if necessary

2020-07-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::MenuModel: Make MenuAttribute and MenuLink enum class

  Change enum Gio::MenuAttribute to Gio::MenuModel::Attribute and
  change enum Gio::MenuLink to Gio::MenuModel::Link.
  Add new enum values to Attribute.

2020-07-18  Andreas Persson  <andreasp56@outlook.com>

  Update documentation for ListStore too.

2020-07-18  Andreas Persson  <andreasp56@outlook.com>

  Make ListStore accept Interfaces.

  I noticed that I couldn't create a ListStore containing AppInfo objects,
  because an AppInfo is not an Object but an Interface. ListStore seems to
  work fine with Interfaces, so I just changed the static_assert.

2020-07-14  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 glibmm
  and giomm, which can be used on Windows 10 on ARM systems.

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

  gmmproc: _CLASS_BOXEDTYPE, _CLASS_OPAQUE_COPYABLE: Fix move assignment

  Add a std::move() to avoid copying.
  Fixes #76

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

  docs/reference/: Update for Doxygen >= 1.8.16

  * docs/reference/meson.build: Doxygen 1.8.16 and later does not store
  tag file names in the html files. This requires changes in meson.build
  and in doc-install.pl (in mm-common). Otherwise references to other modules
  won't be updated in the html files when they are installed.
  * docs/reference/Doxyfile.in: Remove PERL_PATH and MSCGEN_PATH.
  Doxygen since version 1.8.0 does not use them.

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

  Meson/Visual Studio builds: Include toolset version by default

  This makes the built DLL and .lib's contain the toolset version if the build is
  carried out using Visual Studio 2017 or later, unless the
  'msvc14x-parallel-installable' option is set to be false during configuration.
  
  The reasoning behind this change is that there are subtle problems when, for
  instance, one tries to link to a Visual Studio 2017-built glibmm when building
  gtkmm and libxml++ with Visual Studio 2019.  This is unfortunate as
  Microsoft did try hard to make interoperating between binaries built with
  Visual Studio 2015, 2017 and 2019 as easy as possible in terms of ABI and API,
  but unfortunately this hits the corner cases where this compatibility does not
  work.
  
  As the name suggests, this attempts to make Visual Studio 2017 and 2019
  builds share a single set of underlying C DLLs easier, while avoiding breakages
  caused by such subtle differences.

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

  NMake Makefiles: Clean up building tests and examples

  Instead of hand-written rules, just make use of what we have to generate the
  rules on the fly for most of the tests and examples, since the rules are more
  or less the same for each of the test and example programs.  We only need to
  single-out the ones that aren't buildable under Windows and those that have
  multiple programs under each directory, as opposed to one example/test program
  per directory.
  
  Even for those directories that have multiple example programs, we can pretty
  easily generate the rules for them.
  
  Also remove repeated parts that were added by accident.
  
  This can shrink the NMake Makefiles by a bit.

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

  NMake Makefiles: Use Toolset version in DLL names by default

  This updates the build to use the toolset version in the final DLL
  and .lib filenames, similar to what is done in Boost, instead of
  the Visual Studio version.
  
  This means that by default, we will use 'vc141' instead of 'vc150'
  in Visual Studio 2017 builds, and 'vc142' instead of 'vc160' in
  Visual Studio 2019 builds.
  
  If using the former naming is desired, use 'USE_COMPAT_LIBS=1' in
  the NMake command line, albeit all such binaries will now be named
  with 'vc150' in the DLL and library bames

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

  glib/glibmm/ustring.h: Fix Visual Studio macro check

  Commit 8b8af81f accidentally changed the macro check from '_MSC_VER' to
  'MSC_VER', fix that.  It probably does not matter since Visual Studio 2017
  is required, where 'GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS' is enabled,
  but fix that for consistency's sake.

2020-06-03  Daniel Boles  <dboles@src.gnome.org>

  propertyproxy_base: Fix using notify w/o prop name

  GLib has now specified that if you want to connect to a signal without a
  detail argument, you omit the `::`. So, glibmm users previously
  connecting to `notify::` to listen for changes to all properties broke.
  Fix that by only passing `notify` i.e. no superfluous `::` in that case.
  
  Close https://gitlab.gnome.org/GNOME/glibmm/-/issues/74
  Close https://gitlab.gnome.org/GNOME/glibmm/-/merge_requests/35

2020-06-02  Daniel Boles  <dboles@src.gnome.org>

  ustring: Silence warning if MSC_VER is undefined/0

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

  tools/defs_gen/*.py: Specify that this is python3 code

  Specify #!/usr/bin/env python3, making it unnecessary to have a python
  command which is a link to python3.
  In h2def.py, use the built-in set() instead of Set() from the sets module.

2020-04-11  Chun-wei Fan  <fanchunwei@src.gnome.org>

  tools/m4/compare.m4: Allow decorating comparison operators

  This allows one to pass in deocrations for the comparison operators so
  that those decorations may be defined as compiler directives to export
  symbols in a more fine-grained manner.

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

  Meson build: Set default value of the 'warnings' option to 'min'

  * meson.build: Use dist-warnings when a tarball is tested by
  'ninja dist' or 'meson dist'. Check if generate-binding.py exists, if not
  maintainer-mode. Add a better error message if mm-common-get is required
  but not found.
  * meson_options.txt: Set default value of the 'warnings' to 'min'.
  Add 'dist-warnings' with default value 'fatal'.

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

  gio/src/*.hg: Mark all _WRAP_ENUM() with decl_prefix

  As per Kjell's suggestions, make things more future-proof by marking all
  _WRAP_ENUM()'s with 'decl_prefix GIOMM_API'.

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

  glib/src/*.hg: Mark all _WRAP_ENUM() with decl_prefix

  As per Kjell's suggestions, make things more future-proof by marking all
  _WRAP_ENUM()'s with 'decl_prefix GLIBMM_API'.

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

  gio/src/*.hg: Mark _WRAP_ENUM with decl_prefix GIOMM_API

  This way, we can mark the template<> classes with GIOMM_API so that we
  can export them as well using compiler directives.  Note that those
  marked with NO_GTYPE do not need to be marked with this, as no
  template<> classes are generated with these.

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

  glib/src/*.hg: Mark _WRAP_ENUM with decl_prefix GLIBMM_API

  This way we can mark the template<> classes that is generated via
  _WRAP_ENUM with GLIBMM_API, so that we can export those as well.
  
  Note that for this, the _WRAP_ENUM calls with NO_GTYPE specified do not
  need to be marked with decl_prefix GLIBMM_API as no template<> classes
  will be generated in this manner.

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

  tools/[gerror|enum].m4: Make template<> classes exportable

  Allow to apply the decl_prefix argument onto the template<> classes that
  we generate for the _WRAP_GERROR and _WRAP_ENUM directives in the
  various *.hg files, if specified.
  
  Please note that this is done in GNU m4 style for enum.m4 since we are
  using the 10th argument.

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

  2.65.3

2020-03-20  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  tests/glibmm_buildfilename: Add some tests

  See issue #71

2020-03-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Meson build: Install generate_extra_defs.h

  Fixes #70

2020-03-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  README: Fix a misspelling

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

  2.65.2

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

  Glib, Gio: Add missing #includes

  Fixes #69

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

  NEWS: Remove an erroneous item

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

  2.65.1

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

  Change the ABI to glibmm-2.66

  So we can use the 2.64 version numbers for stable releases in the
  glibmm-2.4 ABI series.
  We don't need to release a stable ABI-parallel glibmm until we need
  to release gtkmm 4.0, and that won't happen until GTK 4.0.0 happens.
  
  We've done similar ABI name changes several times before.

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

  glib/glibmm-uninstalled.pc.in: Require sigc++-3.0

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

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

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

  README: Describe building with Meson and Autotools

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

  Gio::DBus::Message::get_unix_fd_list(): Add refreturn

  Fixes #68

2020-03-12  Chun-wei Fan  <fanchunwei@src.gnome.org>

  glibmm/objectbase.h: Mark _gobject_cppinstance_already_deleted()

  ...with GLIBMM_API.  This is needed for building gtkmm, with Visual
  Studio.

2020-03-11  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix builds from Meson tarball

  For the glib/src/*.[c|h].m4 sources, look also for the generated sources
  that are in untracked/glib/glibmm, so that we do not needlessly try to
  generate that file, meaning m4 will be required even in release tarballs.
  
  Somehow this did not make it into master but is in glibmm-2-62... :|

2020-03-10  Chun-wei Fan  <fanchunwei@src.gnome.org>

  glib/glibmmconfig.h.[in|meson]: Clean up MSVC bits

  From
  https://gitlab.gnome.org/GNOME/glibmm/-/merge_requests/29#note_734668,
  it was noted by Kjell that we will always have thread_local, so there is
  really no GLIBMM_CAN_USE_THREAD_LOCAL in the code, so we can drop that.
  
  Also drop the Visual Studio 2013 compatibility bits, since we need
  Visual Studio 2017 to build glibmm master (C++17 branch), so they won't
  be relevant.

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

  examples, tests: Disable deprecated API when building with Meson

  Deprecated GLIBMM and GIOMM API are disabled when example programs and test
  programs are built with Autotools. Do the same when building with Meson.

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

  NMake Makefiles: Fix 'install' for Meson tarballs

  We need to look for headers from untracked/ as well.

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

  m4: Apply function decoration more thoroughly

  Apparently more items in the generated code must be marked with the
  function decoration that is specified, otherwise the exported symbols
  will not be complete.

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

  meson: Do not allow static MSVC-style builds

  The Visual Studio build files never really supported static builds, so
  disallow that for now, until we can make sure that is tested better.

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

  glibmm: Update glibmmconfig.h.[in|meson] for MSVC

  Visual Studio 2015 or later has thread_local, so make sure that it is
  enabled.
  
  Also update for Visual Studio 2017+ as the compiler does allow static
  members to be initialized inline to std::string::npos
  (GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS), but use a work
  around for pre-Visual Studio 2015 so that we do not get a linker error
  as GLIBMM_HAVE_ALLOWS_STATIC_INLINE_NPOS is not supported.

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

  build: Drop gendef

  We are now building glibmm without the use of gendef for all builds, so
  we can now drop gendef from the glibmm sources.

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

  Visual Studio builds: build giomm without gendef

  Make sure that we are defining GIOMM_API as __declspec(dllexport) when
  building giomm and so stop the use of gendef.exe.  We are now ready to
  drop gendef from the glibmm sources.

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

  gio/giomm/*.h: Mark classes and functions with GIOMM_API

  This prepares the build to use compiler directives to export symbols, in
  our bid to drop gendef.exe.

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

  gio/src/*.hg: Mark classes and functions with GIOMM_API

  This prepares the build to export symbols using compiler directives, in
  our bid to drop gendef.exe.  We will also mark pre-declarations of usage
  of glibmm class items with GLIBMM_API as well.

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

  build: Do not use gendef.exe for glibmm

  Clean up the build files a bit and update the glibmmconfig.h.[in|meson] so that
  we use __declspec(dllexport) when GLIBMM_BUILD is defined (i.e. during the
  build of glibmm) on Visual Studio.
  
  Also, for the meson builds, disable warnings 4251 and 4275 as they all relate
  to building DLLs regarding symbol export, which is harmless as we know clearly
  that we are indeed building DLLs in our case, and we have already set
  GLIBMM_API appropriately

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

  glib/src: Decorate classes and methods with GLIBMM_API

  This prepares for us to export symbols using compiler directives, so that we
  can eventually retire gendef.exe.  This also makes the scripts place GLIBMM_API
  as appropriate for the generated Glib:Error classes and the wrap() method.

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

  tools: Allow generating Glib:Error class with decorations

  This allows one to export the generated Glib::Error class with decorations so
  that one may be able to use this to export it using compiler directives.
  
  This allows specifications that start with decl_prefix, and this also
  decorates the `friend wrap_init() method in the generated Glib::Error class

2020-03-05  Pavlo Solntsev  <p.sun.fun@gmail.com>

  CI: Initial setup for CI

2020-03-05  Chun-wei Fan  <fanchunwei@src.gnome.org>

  tools/m4: Allow one to decorate the generated wrap() prototype

  This allows the compiler to use the decoration macro to export those methods
  from the generated items

2020-03-05  Chun-wei Fan  <fanchunwei@src.gnome.org>

  glib/glibmm/*.h: Mark classes and methods with GLIBMM_API

  This prepares the code to use __declspec(dllexport) to export all symbols, so
  that we can eventually bid farewell to gendf.exe

2020-03-05  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson: Use /utf-8 for Visual Studio builds

  This way, we can avoid warning/error C4819 when building glibmm due to unicode
  handling issues in the compiler, which is likely to pop up on East Asian
  locales on Windows.
  
  We need to ignore warning C4828 when building gendef.exe though with this.

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

  Activate the glibmm_ustring_compose test

  It was (probably by mistake) disabled by commit
  729b1ae95d5d05b78741eeef1d635f95b19d790b

2020-03-03  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  gio/giomm/meson.build: Silence a warning from Meson

  static_library() can't take a version: argument.

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

  MSVC NMake: Allow builds from Meson-generated tarballs

  This adds rules to the NMake Makefiles so that they can find the sources under
  $(srcroot)/untracked, and thus will not need to re-generate the sources.
  
  However, for builds from such tarballs, it is necessary to do
  'nmake /f Makefile.vc CFG=$(CFG) prep-git-build' so that the resource scripts
  and config headers are generated, prior to performing the build.
  
  Please note that glibmm_generate_extra_defs-2.x is now built as a DLL with the
  NMake Makefiles as well.

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

  meson.build: Tidy up a bit

  The definitions of glibmm_build_dep, giomm_build_dep, glibmm_requires and
  giomm_requires can be simplified.

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

  Meson build: Add some dependencies when generating source files

  wrap_init.cc shall be rebuilt when generate_wrap_init.pl has been rebuilt.
  Generated .h and .cc files shall be rebuilt when gmmproc has been rebuilt.

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

  Makefile.am: Distribute files necessary for building with Meson

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  tools: Fix 'meson dist'

  The former method of using gendef.exe to generate the import library for
  glibmm_generate_extra_defs somehow breaks 'meson dist' and builds from
  release tarballs, unless one builds giomm first.
  
  Fix this by using the __declspec(dll[ex|im]port) directives, since
  glibmm_generate_extra_defs is a simple utility library.

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson: Build items in tools/extra_defs_gen on MSVC too

  Ensure we can generate the import lib for glibmm_generate_extra_defs on
  Visual Studio builds by using the same technique we used for glibmm and
  giomm, and build the two programs that is to be built along side with
  it.
  
  Also re-order the items in meson.build a bit so that we are able to use
  our gendef tool.

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  examples/thread/dispatcher.cc: Make C++17 compliant

  std::mem_fun() and std::unary() have been removed from C++17, so port
  away from using these.

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  glibmm_interface_move test: Avoid warnings in test_IFace_get_type()

  ...for Visual Studio builds, since we don't really get unused function
  warnings from the TEST_IFACE items.  Plus, we don't have glib autoptr
  support in Visual Studio builds, either.

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  examples: Don't build child_watch and iochannel_stream on Windows

  These use *nix items in the code, so they won't build nor run for
  Windows unless they are ported.

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  dbusconnection.ccg: Include giomm/unixfdlist.h on *NIX only

  In Meson builds, we don't even generate giomm/unixfdlist.h unless we are
  building for *nix, and we aren't using the items there on non-*nix
  builds.

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  gio/giomm/meson.build: Use giomm-int rule for all builds

  Like the previous commit, let builds from release tarballs and GIT
  checkouts build the giomm-int static library, and link the final
  .so/.dll from the objects that form giomm-int static .lib.  By doing so
  we can build giomm with the import libraries for Visual Studio builds
  with gendef, as well as linking in the version resource for all Windows
  builds.

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  glib/glibmm/meson.build: Use glibmm-int rule for all builds

  Let builds from release tarballs and GIT checkouts build the glibmm-int
  static library, and link the final .so/.dll from the objects that form
  glibmm-int static .lib.  By doing so we can build glibmm with the import
  libraries for Visual Studio builds with gendef, as well as linking in
  the version resource for all Windows builds.

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson.build: Disable warning C4589 on Visual Studio

  This warning can be ignored as well.

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  tools: Use POSIX-style path for m4 in gmmproc

  Otherwise the script gets confused as the slashes were not escaped

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson.build: Allow Visual Studio builds in GIT checkouts

  It is now possible to build glibmm directly from GIT checkouts as long
  as there is a working m4 executable (such as fomr Cygwin or MSYS64), so
  we can allow builds directly from GIT checkouts.

2020-03-02  Chun-wei Fan  <fanchunwei@src.gnome.org>

  meson.build: Always look for libsigc++ via pkg-config

  We have Meson build support for libsigc++ before we got into this drive
  for Meson support for building glibmm, so let's just always look for
  libsigc++ with pkg-config.

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

  Add support for building glibmm with Meson

  glibmm can be built with either Autotools or Meson.
  
  See MR !27

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

  Prepare existing files for building with Meson

  * examples/network/resolver.cc: Don't include config.h. It's not used.
  * glib/glibmm/ustring.cc: Check if GLIBMM_SIZEOF_WCHAR_T is defined.
  * tools/generate_wrap_init.pl.in:
  * tools/gmmproc.in: Change '\@' to '\ @'. Meson's configure_file()
  removes a backslash immediately before an at-sign.

2020-02-27  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Fix headers installation

  Fix Copy-n-paste error...

2020-02-27  Chun-wei Fan  <fanchunwei@src.gnome.org>

  generate-msvc.mak: Correct path to find gmmproc PERL modules

  The GLIBMM_MODULE_NAME should be glibmm-2.x, not giomm-2.x

2020-02-26  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Add targets to ease build from GIT checkouts

  This will enable one to generate the following files:
  
  MSVC_NMake/glibmm/glibmmconfig.h
  MSVC_NMake/glibmm/glibmm.rc
  MSVC_NMake/giomm/giommconfig.h
  MSVC_NMake/giomm/giomm.rc
  
  when building from a GIT checkout.
  
  This will also enable one to generate the following files:
  tools/gmmproc
  tools/generate_wrap_init.pl
  
  from a GIT checkout or from a source tree unpacked from a release tarball so
  that one can use these to build directly from a GIT checkout using NMake,
  or to have gmmproc and generate_wrap_init.pl ready to use to build other
  -mm libraries.

2020-02-26  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: "Install" gmmproc items

  ...so that one may be able to use these in the future for other -mm packages.
  
  Also update the header installation as they could have been generated during
  the build.  Update README.win32 to indicate building from a GIT checkout is
  better supported, and how one may carry this build out.

2020-02-26  Chun-wei Fan  <fanchunwei@src.gnome.org>

  MSVC_NMake: Add rules to generate and build sources

  ...from a GIT checkout, from the various .ccg/.hg and the *.[cc|h].m4 sources,
  as well as the wrap_init.cc sources.  This will obviously require PERL, as well
  as a Cygwin or MSYS installation that has a working m4 executable for Windows
  for this to work.  Note that release tarballs continue to build on Visual
  Studio as they did before, without the need for PERL nor m4.
  
  Note that this does not yet support generating [glib|gio]mmconfig.h nor
  [glib|gio]mm.rc from their .in counterparts, as well as tools\gmmproc
  and tools\generate_wrap_init.pl, which will be done in a later commit.

2020-02-26  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: build glibmm_generate_extra_defs-2.xx.lib

  Since this is entirely buildable by Visual Studio, build it as well and see
  whether we can use this to allow builds from GIT checkouts for other -mm
  libraries with MSVC builds.
  
  Copy this .lib and its header upon 'install'.

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

  MSVC_NMake/config-msvc.mak: Correct libsigc++ libname

  libsigc++'s Meson build files have been corrected to produce
  sigc-3.0.lib like the autotools builds, so make sure we link to the
  correct .lib file.

2020-01-05  Daniel Boles  <dboles.src@gmail.com>

  Variant: Avoid . to not split an intro doc comment

  Doxygen interprets the first . to mean the end of the introductory
  blurb, so that resulted in this sentence suddenly ending after the "i."
  in "i.e." in the short version and having a line break there in the long

2019-12-27  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Split outdir by toolset version

  This reduces the likelihood of accidently mixing binaries linked to
  different CRT versions within a single build tree.
  
  Also, fix up building the tests as new tests were added along the way.

2019-12-26  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake Makefiles: Use /utf-8 where available

  This avoids miscompilations and errors when building under certain
  locales (Chinese, Korean and Japanese in particular) as the compiler
  could not handle Unicode sequences properly without this flag.

2019-12-26  Chun-wei Fan  <fanchunwei@src.gnome.org>

  NMake MAkefiles: Add USE_MESON_LIBS

  This allows one to use C++ dependencies built using Meson in an easier
  way, as applicable.

2019-12-20  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::AsyncResult: Improve the class description

  Fixes #27

2019-12-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Binding: Keep a binding alive even without a RefPtr

  A binding between properties can remain even after all RefPtr<Binding>s
  are gone. This is similar to how Gtk::Widget::set_controller() works
  in gtkmm4.
  
  Fixes #62, see !21

2019-12-14  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Derive Glib::Error from std::exception, remove Glib::Exception

  Glib::Error::what() returns const char* (was Glib::ustring). It overrides
  std::exception::what() that returns const char* and is noexcept.
  Fixes #23

2019-11-30  Thomas Holder  <thomas.holder@schrodinger.com>

  Use Glib::UStringView with Glib::ustring::compare()

  and with the comparison operators, operator==(), etc.
  Add the glibmm_ustring_compare test case.
  
  https://gitlab.gnome.org/GNOME/glibmm/issues/64
  https://gitlab.gnome.org/GNOME/glibmm/issues/65

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

  SettingsSchemaSource: Wrap new_from_directory()

  https://bugzilla.gnome.org/show_bug.cgi?id=783216
  Fix https://gitlab.gnome.org/GNOME/glibmm/issues/19
  Close https://gitlab.gnome.org/GNOME/glibmm/merge_requests/20

2019-11-24  Daniel Boles  <dboles.src@gmail.com>

  SettingsSchemaSource: Implement list_schemas()

  https://bugzilla.gnome.org/show_bug.cgi?id=783216
  https://gitlab.gnome.org/GNOME/glibmm/issues/19
  https://gitlab.gnome.org/GNOME/glibmm/merge_requests/20

2019-11-21  Thomas Holder  <thomas.holder@schrodinger.com>

  Glib::Regex: Use UStringView

  Fixes #66

2019-11-20  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib: Replace StringView with StdStringView and UStringView

  StdStringView and UStringView force users to be explicit (by using c_str())
  when using a std::string where a Glib::ustring is recommended or vice versa.
  See issue #64

2019-11-18  Pavlo Solntsev  <p.sun.fun@gmail.com>

  Update value_custom.h

2019-11-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Avoid unnecessary conversions between std::string and Glib::ustring

  A few implicit conversions in tests/ have been kept. They are probably
  deliberate, to test implicit conversion. Inspired by issue #65

2019-11-17  Pavlo Solntsev  <p.sun.fun@gmail.com>

  Glib: Adding static check for template parameter

  To meet requirements for the passed type, compile
  type check for the passed type was added.

2019-11-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Binding: get_source() and get_target() return ObjectBase*

  Fixes #63

2019-11-15  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Binding: Explain why SlotTransform takes GValue*

  Fixes #61

2019-11-14  Thomas Holder  <thomas.holder@schrodinger.com>

  fix ustring::insert(iterator, In, In)

2019-11-09  Daniel Boles  <dboles.src@gmail.com>

  tests/glibmm_binding: Add basic test inc transform

  A basic test is better than nothing, and I just changed how the
  transform function works and want to be confident it still does.

2019-11-09  Daniel Boles  <dboles.src@gmail.com>

  Binding: Use std::optional instead of out-ref+bool

  The pattern of returning a boolean to indicate whether an output
  reference was set is messy and error-prone. C++17 adds std::optional,
  which exists precisely to indicate that a result is available or not.

2019-11-09  Daniel Boles  <dboles.src@gmail.com>

  Binding: no point to set target value if got false

  If we return false, GBinding ignores target GValue, so there’s no point
  setting it. Besides, if the transform function returned false, that says
  they couldn't calculate a target value, so they shouldn’t assign to `to`
  
  I default-construct primitive `T_to`s in case anyone *was* reading those
  for some daft reason, so they get a zero-initialised value instead of UB

2019-11-09  Daniel Boles  <dboles.src@gmail.com>

  Binding: Move SlotTypeTransform up and document it

  This is more maintainable than all the arguments to all the overloads of
  bind_property() manually repeating the signature in their documentation,
  plus more user-friendly as we document it, users can use the typedef, &c
  
  Note: My next thought was we can just take SlotTypeTransforms in the
  argument list, instead of totally arbitrary functors, so the conversion
  would be done at call site instead of via extra code in the body. But I
  didn't get that working yet, and it should be a separate commit anyway.

2019-11-09  Daniel Boles  <dboles.src@gmail.com>

  Binding: Better explain purpose of SlotTransform,

  and use better formatting for it too.

2019-11-09  Daniel Boles  <dboles@src.gnome.org>

  Binding: Fix using outdated enums in documentation

  They are not Glib::BINDING_* anymore, but rather Glib::Binding::Flags::*

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

  Glib::ustring_Iterator: Explicitly declare copy assignment

  This disables a warning from g++ 9.2 (abbreviated here):
  
  In member function ‘bool Glib::ustring::validate(Glib::ustring::iterator&)’:
  error: implicitly-declared ..... is deprecated [-Werror=deprecated-copy]
   1206 |   first_invalid = iterator(string_.begin() + (valid_end - pdata));
  note: because ..... has user-provided .....
    972 | inline ustring_Iterator<T>::ustring_Iterator(
          const ustring_Iterator<std::string::iterator>& other)

2019-10-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add Glib::canonicalize_filename()

  Fixes #59

2019-10-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib: Replace BasicStringView with non-template StringView

  A call to path_get_dirname(StdStringView filename) with a Glib::ustring
  fails if StdStringView does not have a constructor that takes a
  const Glib::ustring&. StdStringView and UStringView are now aliases of
  StringView, whose names show which data type is preferred.
  See issue #34

2019-10-23  Mike Fleetwood  <mike.fleetwood@googlemail.com>

  Correct spelling of spawn_async_with_pipes() in doc comment

2019-10-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib: Add BasicStringView, StdStringView, UStringView

  and use them in build_filename() and other functions in miscutils.hg.
  
  Fixes #34

2019-10-22  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::DBus::Connection: Make the wrap() function thread-safe

  Add a std::mutex that guarantees that two threads don't create C++
  wrappers for the same GDBusConnection instance.
  
  Fixes #56

2019-10-19  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  glib/src/miscutil.hg: Remove obsolete descriptions

  These should have been removed when Glib::ArrayHandle was replaced
  by std::vector.

2019-10-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::MainContext: Add push/pop/get_thread_default()

  See issue #56

2019-10-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::get_host_name(): Return a Glib::ustring

  g_get_host_name() returns a UTF-8 string.

2019-10-07  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  NEWS: Add a missing issue number

2019-09-23  scx  <scx.mail@gmail.com>

  Add Glib::get_host_name()

  Wraps g_get_host_name() from glib.
  Return a name for the machine.
  
  Closes GNOME/glibmm#58

2019-09-22  scx  <scx.mail@gmail.com>

  Add Glib::get_user_runtime_dir()

  Wraps g_get_user_runtime_dir() from glib.
  Returns a directory that is unique to the current user on the local system.
  
  Closes GNOME/glibmm#57

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

  2.63.1

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

  Change the ABI to glibmm-2.64

  So we can use the 2.62 version numbers for stable releases in the
  glibmm-2.4 ABI series.
  We don't need to release a stable ABI-parallel glibmm until we need
  to release gtkmm 4.0, and that won't happen until GTK 4.0.0 happens.
  
  We've done similar ABI name changes several times before.

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

  Gio::DBus::Introspection: Add a necessary #include

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

  Glib::ustring documentation: Minor fix

2019-09-02  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::SocketControlMessage: Add add_deserialize_func()

  The deserialize vfunc in GLib is a class virtual function (not associated
  with an instance). Such functions don't exist in C++. But it must be wrapped
  in one way or another. g_socket_control_message_deserialize() assumes that
  all subclasses of GSocketControlMessage override this vfunc. A user-program
  can crash, if any subclass does not. Fixes #52

2019-08-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Remove Glib::TimeVal

  GTimeVal has been deprecated in glib. Remove its wrapping in glibmm.
  
  * examples/dbus/server_without_bus.cc:
  * examples/dbus/session_bus_service.cc: Replace TimeVal by DateTime.
  * gio/src/fileinfo.[ccg|hg]: Remove [set_]modification_time().
  Add set/get_modification_date_time().
  * glib/glibmm.h:
  * glib/glibmm/filelist.am: Remove timeval.
  * glib/glibmm/timeval.[cc|h]: Removed files.
  * glib/src/date.[ccg|hg]: Remove set_time(const GTimeVal& timeval).
  * glib/src/datetime.[ccg|hg]: Remove create_now_local/utc(const TimeVal& tv)
  and to_timeval(). Add create_from_iso8601(), format_iso8601() and
  operator bool().
  * tools/m4/convert_glib.m4:
  * tools/m4/convert_gio.m4: Remove conversions for GTimeVal.

2019-08-13  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

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

2019-07-21  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio: Fix ownership of some lists and arrays

  * gio/src/drive.hg: get_volumes(): Glib::OWNERSHIP_SHALLOW -> DEEP
  * gio/src/mountoperation.hg: signal_ask_question(): DEEP -> NONE
  A signal handler shall not deallocate its input data.
  * gio/src/themedicon.hg: get_names(): DEEP -> NONE
  * gio/src/tlsdatabase.[ccg|hg]: lookup_certificates_issued_by[_finish]_vfunc():
  g_list_copy() -> g_list_copy_deep()
  * gio/src/volumemonitor.hg: get_connected_drives(), get_volumes(),
  get_mounts(): SHALLOW -> DEEP

2019-07-18  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Add Gio::DBus::ObjectManager*

  Add Gio::DBus::ObjectManager, Gio::DBus::ObjectManagerClient and
  Gio::DBus::ObjectManagerServer. Fixes #43

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

  Gio::DBus::Object::get_interface_vfunc(): Don't add global symbol

  The previous fix of Gio::DBus::Object vfuncs added a Glib::unwrap_copy()
  overload, which became a global symbol in the load module. Replace it
  with a local name in an anonymous namespace.

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

  Add Gio::DBus::ObjectProxy and Gio::DBus::ObjectSkeleton

  In preparation for adding Gio::DBus::ObjectManager, ObjectManagerClient
  and ObjectManagerServer. See issue #43.

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

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

  and update gio_signals.defs.patch and generate_defs_gio.cc.

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

  Gio::DBus::Object: Fix refcounts in some vfuncs

  Gio::DBus::Object::get_interface_vfunc() and get_interfaces_vfunc()
  must add a reference to the returned DBus interfaces. The caller shall
  unref them. g_dbus_object_get_interface() and g_dbus_object_get_interfaces()
  are marked (transfer full).

2019-07-12  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::ustring docs: ustring can't always replace std::string

  Fixes #47

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

  Glib::init(), Gio::init(): Improve the documentation

  See issue #49

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

  Glib::Variant<std::tuple<>>::create(): Fix memory leak

  Fixes #48

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

  gmmproc: Update enum.pl and h2def.py for new glib deprecation macros

  * tools/enum.pl:  Don't replace MY_ENUMERATOR = '}' with MY_ENUMERATOR = ']'.
  Remove *_DEPRECATED_TYPE_IN_* and *_DEPRECATED_ENUMERATOR_IN_* when enum
  definitions are parsed.
  * tools/defs_gen/h2def.py: When parsing function declarations:
  Remove G_GNUC_BEGIN_IGNORE_DEPRECATIONS, G_GNUC_END_IGNORE_DEPRECATIONS
  and G_DECLARE_INTERFACE(*). Update the removals of *_DEPRECATED*
  and *_AVAILABLE_IN* so the new *_DEPRECATED_TYPE* and friends won't
  affect the result.

2019-06-27  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Glib::Property: Update for compatibility with Gtk::Builder

  When an object is created by GtkBuilder, the GObject-derived C object is
  created and its properties set before there is a C++ wrapper to store
  the property values in. Glib::custom_set_property_callback() stores
  property values in a data structure reached via a GQuark in the object.
  PropertyBase::lookup_property() copies those property values to the
  PropertyBase objects when the C++ wrapper is created.

2019-06-23  Kjell Ahlstedt  <kjellahlstedt@gmail.com>

  Gio::Application: Add add_option_group()

  Fixes #46

2019-06-21  Daniel Boles  <dboles@src.gnome.org>

  ustring: Add overloads for const char* fmt . . .

  . . . in the hope that doing so can help compilers catch some mistakes
  that users might make. However, point out they shouldn't rely on that.
  We only provide this overload in case it catches such users in the act
  of making a mistake, but they should still be careful when writing code.
  
  details:
   (1) This means we can implement sprintf(ustring const&) in terms of
       ustring(char const*) instead of repeating ourselves.
   (2) I provide a 2nd overload of the zero-args case just for symmetry,
       and to avoid creating another ustring for the argument just to copy
       it on return (if not that I expect this to be performance-critical)
  
  https://gitlab.gnome.org/GNOME/glibmm/issues/21#note_537941

2019-06-21  Daniel Boles  <dboles@src.gnome.org>

  ustring: Be extra clear about "count/types/order"

  Say the same thing both in the main blurb and the argument documentation
  – and say "count" instead of "number" just so it's extra clear what I
  mean (and because "size" didn't seem clear enough in that sense).

2019-06-21  Daniel Boles  <dboles@src.gnome.org>

  ustring: Don't say "message string" for sprintf()

  I just copied that from compose() and am not sure of its precise
  intended meaning, but in case it conveys 'a string suitable for showing
  a message, i.e. a translatable string', let's not give that incorrect
  impression, since placeholders can't be reordered by translators. See
  also https://gitlab.gnome.org/GNOME/glibmm/issues/21#note_533829 et al.

