[glibmm/glibmm-2-64] Glib, Gio: Regenerate docs.xml and .defs files



commit 9dba7cf12d3294106c33416a8c110210ae443b4e
Author: Kjell Ahlstedt <kjellahlstedt gmail com>
Date:   Mon Mar 16 19:02:25 2020 +0100

    Glib, Gio: Regenerate docs.xml and .defs files
    
    and update gio/src/gio_signals.defs.patch

 gio/src/gio_docs.xml            | 502 ++++++++++++++++++++--------
 gio/src/gio_enums.defs          |  17 +
 gio/src/gio_methods.defs        |  74 +++++
 gio/src/gio_signals.defs.patch  |  20 +-
 glib/src/glib_docs.xml          | 721 +++++++++++++++++++++++++++++++++++++---
 glib/src/glib_enums.defs        |   4 +-
 glib/src/glib_functions.defs    |  83 +++++
 glib/src/gobject_functions.defs |   2 +-
 8 files changed, 1211 insertions(+), 212 deletions(-)
---
diff --git a/gio/src/gio_docs.xml b/gio/src/gio_docs.xml
index ef3f6114..e71dda70 100644
--- a/gio/src/gio_docs.xml
+++ b/gio/src/gio_docs.xml
@@ -2784,9 +2784,7 @@ g_dtls_connection_set_rehandshake_mode().
 
 Since: 2.48
 
-Deprecated: 2.60. Changing the rehandshake mode is no longer
-required for compatibility. Also, rehandshaking has been removed
-from the TLS protocol in TLS 1.3.
+Deprecated: 2.60: The rehandshake mode is ignored.
 
 </description>
 </property>
@@ -3759,6 +3757,65 @@ Since: 2.44
 </description>
 </property>
 
+<signal name="GMemoryMonitor::low-memory-warning">
+<description>
+Emitted when the system is running low on free memory. The signal
+handler should then take the appropriate action depending on the
+warning level. See the #GMemoryMonitorWarningLevel documentation for
+details.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="monitor">
+<parameter_description> a #GMemoryMonitor
+</parameter_description>
+</parameter>
+<parameter name="level">
+<parameter_description> the #GMemoryMonitorWarningLevel warning level
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</signal>
+
+<enum name="GMemoryMonitorWarningLevel">
+<description>
+Memory availability warning levels.
+
+Note that because new values might be added, it is recommended that applications check
+#GMemoryMonitorWarningLevel as ranges, for example:
+|[&lt;!-- language=&quot;C&quot; --&gt;
+if (warning_level &gt; G_MEMORY_MONITOR_WARNING_LEVEL_LOW)
+drop_caches ();
+]|
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="G_MEMORY_MONITOR_WARNING_LEVEL_LOW">
+<parameter_description> Memory on the device is low, processes
+should free up unneeded resources (for example, in-memory caches) so they can
+be used elsewhere.
+</parameter_description>
+</parameter>
+<parameter name="G_MEMORY_MONITOR_WARNING_LEVEL_MEDIUM">
+<parameter_description> Same as @G_MEMORY_MONITOR_WARNING_LEVEL_LOW
+but the device has even less free memory, so processes should try harder to free
+up unneeded resources. If your process does not need to stay running, it is a
+good time for it to quit.
+</parameter_description>
+</parameter>
+<parameter name="G_MEMORY_MONITOR_WARNING_LEVEL_CRITICAL">
+<parameter_description> The system will soon start terminating
+processes to reclaim memory, including background processes.
+</parameter_description>
+</parameter>
+</parameters>
+</enum>
+
 <property name="GMemoryOutputStream:data">
 <description>
 Pointer to buffer where data will be written.
@@ -6002,14 +6059,12 @@ Since: 2.28
 
 <property name="GTlsClientConnection:use-ssl3">
 <description>
-If %TRUE, forces the connection to use a fallback version of TLS
-or SSL, rather than trying to negotiate the best version of TLS
-to use. See g_tls_client_connection_set_use_ssl3().
+SSL 3.0 is no longer supported. See
+g_tls_client_connection_set_use_ssl3() for details.
 
 Since: 2.28
 
-Deprecated: 2.56: SSL 3.0 is insecure, and this property does not
-generally enable or disable it, despite its name.
+Deprecated: 2.56: SSL 3.0 is insecure.
 
 </description>
 </property>
@@ -6189,6 +6244,8 @@ g_tls_connection_set_rehandshake_mode().
 
 Since: 2.28
 
+Deprecated: 2.60: The rehandshake mode is ignored.
+
 </description>
 </property>
 
@@ -8765,7 +8822,7 @@ Initiates startup notification for the application and returns the
 `DESKTOP_STARTUP_ID` for the launched operation, if supported.
 
 Startup notification IDs are defined in the 
-[FreeDesktop.Org Startup Notifications 
standard](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt&quot;).
+[FreeDesktop.Org Startup Notifications 
standard](http://standards.freedesktop.org/startup-notification-spec/startup-notification-latest.txt).
 
 
 </description>
@@ -8989,14 +9046,14 @@ consumed, they will no longer be visible to the default handling
 
 It is important to use the proper GVariant format when retrieving
 the options with g_variant_dict_lookup():
-- for %G_OPTION_ARG_NONE, use b
-- for %G_OPTION_ARG_STRING, use &amp;s
-- for %G_OPTION_ARG_INT, use i
-- for %G_OPTION_ARG_INT64, use x
-- for %G_OPTION_ARG_DOUBLE, use d
-- for %G_OPTION_ARG_FILENAME, use ^ay
-- for %G_OPTION_ARG_STRING_ARRAY, use &amp;as
-- for %G_OPTION_ARG_FILENAME_ARRAY, use ^aay
+- for %G_OPTION_ARG_NONE, use `b`
+- for %G_OPTION_ARG_STRING, use `&amp;s`
+- for %G_OPTION_ARG_INT, use `i`
+- for %G_OPTION_ARG_INT64, use `x`
+- for %G_OPTION_ARG_DOUBLE, use `d`
+- for %G_OPTION_ARG_FILENAME, use `^&amp;ay`
+- for %G_OPTION_ARG_STRING_ARRAY, use `^a&amp;s`
+- for %G_OPTION_ARG_FILENAME_ARRAY, use `^a&amp;ay`
 
 Since: 2.40
 
@@ -11524,6 +11581,13 @@ g_bus_unown_name() to stop owning the name.
 <description>
 Stops owning a name.
 
+Note that there may still be D-Bus traffic to process (relating to owning
+and unowning the name) in the current thread-default #GMainContext after
+this function has returned. You should continue to iterate the #GMainContext
+until the #GDestroyNotify function passed to g_bus_own_name() is called, in
+order to avoid memory leaks through callbacks queued on the #GMainContext
+after it’s stopped being iterated.
+
 Since: 2.26
 
 </description>
@@ -11540,6 +11604,13 @@ Since: 2.26
 <description>
 Stops watching a name.
 
+Note that there may still be D-Bus traffic to process (relating to watching
+and unwatching the name) in the current thread-default #GMainContext after
+this function has returned. You should continue to iterate the #GMainContext
+until the #GDestroyNotify function passed to g_bus_watch_name() is called, in
+order to avoid memory leaks through callbacks queued on the #GMainContext
+after it’s stopped being iterated.
+
 Since: 2.26
 
 </description>
@@ -16518,6 +16589,24 @@ needed. (It is not guaranteed to be called synchronously when the
 signal is unsubscribed from, and may be called after @connection
 has been destroyed.)
 
+As @callback is potentially invoked in a different thread from where it’s
+emitted, it’s possible for this to happen after
+g_dbus_connection_signal_unsubscribe() has been called in another thread.
+Due to this, @user_data should have a strong reference which is freed with
+@user_data_free_func, rather than pointing to data whose lifecycle is tied
+to the signal subscription. For example, if a #GObject is used to store the
+subscription ID from g_dbus_connection_signal_subscribe(), a strong reference
+to that #GObject must be passed to @user_data, and g_object_unref() passed to
+@user_data_free_func. You are responsible for breaking the resulting
+reference count cycle by explicitly unsubscribing from the signal when
+dropping the last external reference to the #GObject. Alternatively, a weak
+reference may be used.
+
+It is guaranteed that if you unsubscribe from a signal using
+g_dbus_connection_signal_unsubscribe() from the same thread which made the
+corresponding g_dbus_connection_signal_subscribe() call, @callback will not
+be invoked after g_dbus_connection_signal_unsubscribe() returns.
+
 The returned subscription identifier is an opaque value which is guaranteed
 to never be zero.
 
@@ -16584,6 +16673,14 @@ subscription is removed or %NULL
 <description>
 Unsubscribes from signals.
 
+Note that there may still be D-Bus traffic to process (relating to this
+signal subscription) in the current thread-default #GMainContext after this
+function has returned. You should continue to iterate the #GMainContext
+until the #GDestroyNotify function passed to
+g_dbus_connection_signal_subscribe() is called, in order to avoid memory
+leaks through callbacks queued on the #GMainContext after it’s stopped being
+iterated.
+
 Since: 2.26
 
 </description>
@@ -23294,6 +23391,10 @@ g_dtls_connection_set_rehandshake_mode() for details.
 
 Since: 2.48
 
+Deprecated: 2.64. Changing the rehandshake mode is no longer
+required for compatibility. Also, rehandshaking has been removed
+from the TLS protocol in TLS 1.3.
+
 </description>
 <parameters>
 <parameter name="conn">
@@ -23301,7 +23402,7 @@ Since: 2.48
 </parameter_description>
 </parameter>
 </parameters>
-<return> @conn's rehandshaking mode
+<return> %G_TLS_REHANDSHAKE_SAFELY
 
 </return>
 </function>
@@ -23332,28 +23433,25 @@ Attempts a TLS handshake on @conn.
 
 On the client side, it is never necessary to call this method;
 although the connection needs to perform a handshake after
-connecting (or after sending a &quot;STARTTLS&quot;-type command) and may
-need to rehandshake later if the server requests it,
-#GDtlsConnection will handle this for you automatically when you try
-to send or receive data on the connection. However, you can call
-g_dtls_connection_handshake() manually if you want to know for sure
-whether the initial handshake succeeded or failed (as opposed to
-just immediately trying to write to @conn, in which
-case if it fails, it may not be possible to tell if it failed
-before or after completing the handshake).
+connecting, #GDtlsConnection will handle this for you automatically
+when you try to send or receive data on the connection. You can call
+g_dtls_connection_handshake() manually if you want to know whether
+the initial handshake succeeded or failed (as opposed to just
+immediately trying to use @conn to read or write, in which case,
+if it fails, it may not be possible to tell if it failed before
+or after completing the handshake), but beware that servers may reject
+client authentication after the handshake has completed, so a
+successful handshake does not indicate the connection will be usable.
 
 Likewise, on the server side, although a handshake is necessary at
 the beginning of the communication, you do not need to call this
 function explicitly unless you want clearer error reporting.
 
-If TLS 1.2 or older is in use, you may call
-g_dtls_connection_handshake() after the initial handshake to
-rehandshake; however, this usage is deprecated because rehandshaking
-is no longer part of the TLS protocol in TLS 1.3. Accordingly, the
-behavior of calling this function after the initial handshake is now
-undefined, except it is guaranteed to be reasonable and
-nondestructive so as to preserve compatibility with code written for
-older versions of GLib.
+Previously, calling g_dtls_connection_handshake() after the initial
+handshake would trigger a rehandshake; however, this usage was
+deprecated in GLib 2.60 because rehandshaking was removed from the
+TLS protocol in TLS 1.3. Since GLib 2.64, calling this function after
+the initial handshake will no longer do anything.
 
 #GDtlsConnection::accept_certificate may be emitted during the
 handshake.
@@ -23562,26 +23660,10 @@ Since: 2.48
 
 <function name="g_dtls_connection_set_rehandshake_mode">
 <description>
-Sets how @conn behaves with respect to rehandshaking requests.
-
-%G_TLS_REHANDSHAKE_NEVER means that it will never agree to
-rehandshake after the initial handshake is complete. (For a client,
-this means it will refuse rehandshake requests from the server, and
-for a server, this means it will close the connection with an error
-if the client attempts to rehandshake.)
-
-%G_TLS_REHANDSHAKE_SAFELY means that the connection will allow a
-rehandshake only if the other end of the connection supports the
-TLS `renegotiation_info` extension. This is the default behavior,
-but means that rehandshaking will not work against older
-implementations that do not support that extension.
-
-%G_TLS_REHANDSHAKE_UNSAFELY means that the connection will allow
-rehandshaking even without the `renegotiation_info` extension. On
-the server side in particular, this is not recommended, since it
-leaves the server open to certain attacks. However, this mode is
-necessary if you need to allow renegotiation with older client
-software.
+Since GLib 2.64, changing the rehandshake mode is no longer supported
+and will have no effect. With TLS 1.3, rehandshaking has been removed from
+the TLS protocol, replaced by separate post-handshake authentication and
+rekey operations.
 
 Since: 2.48
 
@@ -24281,7 +24363,7 @@ counted structures, and are created with a reference count of 1. If
 the number of references falls to 0, the #GFileAttributeMatcher is
 automatically destroyed.
 
-The @attribute string should be formatted with specific keys separated
+The @attributes string should be formatted with specific keys separated
 from namespaces with a double colon. Several &quot;namespace::key&quot; strings may be
 concatenated with a single comma (e.g. &quot;standard::type,standard::is-hidden&quot;).
 The wildcard &quot;*&quot; may be used to match all keys and namespaces, or
@@ -26088,7 +26170,7 @@ Virtual: prefix_matches
 </parameter_description>
 </parameter>
 </parameters>
-<return>  %TRUE if the @files's parent, grandparent, etc is @prefix,
+<return>  %TRUE if the @file's parent, grandparent, etc is @prefix,
 %FALSE otherwise.
 </return>
 </function>
@@ -26830,7 +26912,7 @@ Checks if a file info structure has an attribute named @attribute.
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if @Ginfo has an attribute named @attribute,
+<return> %TRUE if @info has an attribute named @attribute,
 %FALSE otherwise.
 </return>
 </function>
@@ -26853,7 +26935,7 @@ Since: 2.22
 </parameter_description>
 </parameter>
 </parameters>
-<return> %TRUE if @Ginfo has an attribute in @name_space,
+<return> %TRUE if @info has an attribute in @name_space,
 %FALSE otherwise.
 
 </return>
@@ -27334,8 +27416,9 @@ See %G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK.
 
 <function name="g_file_info_set_modification_date_time">
 <description>
-Sets the %G_FILE_ATTRIBUTE_TIME_MODIFIED attribute in the file
-info to the given date/time value.
+Sets the %G_FILE_ATTRIBUTE_TIME_MODIFIED and
+%G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC attributes in the file info to the
+given date/time value.
 
 Since: 2.62
 
@@ -27355,8 +27438,9 @@ Since: 2.62
 
 <function name="g_file_info_set_modification_time">
 <description>
-Sets the %G_FILE_ATTRIBUTE_TIME_MODIFIED attribute in the file
-info to the given time value.
+Sets the %G_FILE_ATTRIBUTE_TIME_MODIFIED and
+%G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC attributes in the file info to the
+given time value.
 
 Deprecated: 2.62: Use g_file_info_set_modification_date_time() instead, as
 #GTimeVal is deprecated due to the year 2038 problem.
@@ -27872,7 +27956,7 @@ entity tag for the file, or %NULL if the entity tag is not needed
 <description>
 Loads the content of the file into memory. The data is always
 zero-terminated, but this is not included in the resultant @length.
-The returned @content should be freed with g_free() when no longer
+The returned @contents should be freed with g_free() when no longer
 needed.
 
 If @cancellable is not %NULL, then the operation can be cancelled by
@@ -27956,7 +28040,7 @@ was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
 <description>
 Finishes an asynchronous load of the @file's contents.
 The contents are placed in @contents, and @length is set to the
-size of the @contents string. The @content should be freed with
+size of the @contents string. The @contents should be freed with
 g_free() when no longer needed. If @etag_out is present, it will be
 set to the new entity tag for the @file.
 
@@ -28043,7 +28127,7 @@ when the request is satisfied
 Finishes an asynchronous partial load operation that was started
 with g_file_load_partial_contents_async(). The data is always
 zero-terminated, but this is not included in the resultant @length.
-The returned @content should be freed with g_free() when no longer
+The returned @contents should be freed with g_free() when no longer
 needed.
 
 
@@ -28779,10 +28863,6 @@ inside the same filesystem), but the fallback code does not.
 If the flag #G_FILE_COPY_OVERWRITE is specified an already
 existing @destination file is overwritten.
 
-If the flag #G_FILE_COPY_NOFOLLOW_SYMLINKS is specified then symlinks
-will be copied as symlinks, otherwise the target of the
-@source symlink will be copied.
-
 If @cancellable is not %NULL, then the operation can be cancelled by
 triggering the cancellable object from another thread. If the operation
 was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
@@ -30168,7 +30248,7 @@ was cancelled, the error %G_IO_ERROR_CANCELLED will be returned.
 If @make_backup is %TRUE, this function will attempt to
 make a backup of @file.
 
-Note that no copy of @content will be made, so it must stay valid
+Note that no copy of @contents will be made, so it must stay valid
 until @callback is called. See g_file_replace_contents_bytes_async()
 for a #GBytes version that will automatically hold a reference to the
 contents (without copying) for the duration of the call.
@@ -30484,7 +30564,7 @@ Free the returned object with g_object_unref().
 
 <function name="g_file_set_attribute">
 <description>
-Sets an attribute in the file with attribute name @attribute to @value.
+Sets an attribute in the file with attribute name @attribute to @value_p.
 
 Some attributes can be unset by setting @type to
 %G_FILE_ATTRIBUTE_TYPE_INVALID and @value_p to %NULL.
@@ -34562,6 +34642,72 @@ Since: 2.44
 <return></return>
 </function>
 
+<function name="g_list_store_find">
+<description>
+Looks up the given @item in the list store by looping over the items until
+the first occurrence of @item. If @item was not found, then @position will
+not be set, and this method will return %FALSE.
+
+If you need to compare the two items with a custom comparison function, use
+g_list_store_find_with_equal_func() with a custom #GEqualFunc instead.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="store">
+<parameter_description> a #GListStore
+</parameter_description>
+</parameter>
+<parameter name="item">
+<parameter_description> an item
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the first position of @item, if it was found.
+</parameter_description>
+</parameter>
+</parameters>
+<return> Whether @store contains @item. If it was found, @position will be
+set to the position where @item occurred for the first time.
+
+</return>
+</function>
+
+<function name="g_list_store_find_with_equal_func">
+<description>
+Looks up the given @item in the list store by looping over the items and
+comparing them with @compare_func until the first occurrence of @item which
+matches. If @item was not found, then @position will not be set, and this
+method will return %FALSE.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="store">
+<parameter_description> a #GListStore
+</parameter_description>
+</parameter>
+<parameter name="item">
+<parameter_description> an item
+</parameter_description>
+</parameter>
+<parameter name="equal_func">
+<parameter_description> A custom equality check function
+</parameter_description>
+</parameter>
+<parameter name="position">
+<parameter_description> the first position of @item, if it was found.
+</parameter_description>
+</parameter>
+</parameters>
+<return> Whether @store contains @item. If it was found, @position will be
+set to the position where @item occurred for the first time.
+
+</return>
+</function>
+
 <function name="g_list_store_insert">
 <description>
 Inserts @item into @store at @position. @item must be of type
@@ -34967,6 +35113,20 @@ Creates a new #GMemoryInputStream with data in memory of a given size.
 </return>
 </function>
 
+<function name="g_memory_monitor_dup_default">
+<description>
+Gets a reference to the default #GMemoryMonitor for the system.
+
+Since: 2.64
+
+</description>
+<parameters>
+</parameters>
+<return> a new reference to the default #GMemoryMonitor
+
+</return>
+</function>
+
 <function name="g_memory_output_stream_get_data">
 <description>
 Gets any loaded data from the @ostream.
@@ -43708,7 +43868,7 @@ function is intended for introspection reasons.
 You should free the return value with g_strfreev() when you are done
 with it.
 
-Deprecated: 2.46: Use g_settings_schema_list_keys instead().
+Deprecated: 2.46: Use g_settings_schema_list_keys() instead.
 
 </description>
 <parameters>
@@ -44046,7 +44206,7 @@ schemas correspond to exactly one set of keys in the backend
 database: those located at the path returned by this function.
 
 Relocatable schemas can be referenced by other schemas and can
-threfore describe multiple sets of keys at different locations.  For
+therefore describe multiple sets of keys at different locations.  For
 relocatable schemas, this function will return %NULL.
 
 Since: 2.32
@@ -52318,6 +52478,41 @@ Since: 2.36
 </return>
 </function>
 
+<function name="g_task_propagate_value">
+<description>
+Gets the result of @task as a #GValue, and transfers ownership of
+that value to the caller. As with g_task_return_value(), this is
+a generic low-level method; g_task_propagate_pointer() and the like
+will usually be more useful for C code.
+
+If the task resulted in an error, or was cancelled, then this will
+instead set @error and return %FALSE.
+
+Since this method transfers ownership of the return value (or
+error) to the caller, you may only call it once.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="task">
+<parameter_description> a #GTask
+</parameter_description>
+</parameter>
+<parameter name="value">
+<parameter_description> return location for the #GValue
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> return location for a #GError
+</parameter_description>
+</parameter>
+</parameters>
+<return> %TRUE if @task succeeded, %FALSE on error.
+
+</return>
+</function>
+
 <function name="g_task_report_error">
 <description>
 Creates a #GTask and then immediately calls g_task_return_error()
@@ -52585,6 +52780,34 @@ function
 <return></return>
 </function>
 
+<function name="g_task_return_value">
+<description>
+Sets @task's result to @result (by copying it) and completes the task.
+
+If @result is %NULL then a #GValue of type #G_TYPE_POINTER
+with a value of %NULL will be used for the result.
+
+This is a very generic low-level method intended primarily for use
+by language bindings; for C code, g_task_return_pointer() and the
+like will normally be much easier to use.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="task">
+<parameter_description> a #GTask
+</parameter_description>
+</parameter>
+<parameter name="result">
+<parameter_description> the #GValue result of
+a task function
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="g_task_run_in_thread">
 <description>
 Runs @task_func in another thread. When @task_func returns, @task's
@@ -53693,12 +53916,34 @@ Since: 2.28
 
 <function name="g_tls_client_connection_copy_session_state">
 <description>
-Copies session state from one connection to another. This is
-not normally needed, but may be used when the same session
-needs to be used between different endpoints as is required
-by some protocols such as FTP over TLS. @source should have
-already completed a handshake, and @conn should not have
-completed a handshake.
+Possibly copies session state from one connection to another, for use
+in TLS session resumption. This is not normally needed, but may be
+used when the same session needs to be used between different
+endpoints, as is required by some protocols, such as FTP over TLS.
+@source should have already completed a handshake and, since TLS 1.3,
+it should have been used to read data at least once. @conn should not
+have completed a handshake.
+
+It is not possible to know whether a call to this function will
+actually do anything. Because session resumption is normally used
+only for performance benefit, the TLS backend might not implement
+this function. Even if implemented, it may not actually succeed in
+allowing @conn to resume @source's TLS session, because the server
+may not have sent a session resumption token to @source, or it may
+refuse to accept the token from @conn. There is no way to know
+whether a call to this function is actually successful.
+
+Using this function is not required to benefit from session
+resumption. If the TLS backend supports session resumption, the
+session will be resumed automatically if it is possible to do so
+without weakening the privacy guarantees normally provided by TLS,
+without need to call this function. For example, with TLS 1.3,
+a session ticket will be automatically copied from any
+#GTlsClientConnection that has previously received session tickets
+from the server, provided a ticket is available that has not
+previously been used for session resumption, since session ticket
+reuse would be a privacy weakness. Using this function causes the
+ticket to be copied without regard for privacy considerations.
 
 Since: 2.46
 
@@ -53764,14 +54009,12 @@ known.
 
 <function name="g_tls_client_connection_get_use_ssl3">
 <description>
-Gets whether @conn will force the lowest-supported TLS protocol
-version rather than attempt to negotiate the highest mutually-
-supported version of TLS; see g_tls_client_connection_set_use_ssl3().
+SSL 3.0 is no longer supported. See
+g_tls_client_connection_set_use_ssl3() for details.
 
 Since: 2.28
 
-Deprecated: 2.56: SSL 3.0 is insecure, and this function does not
-actually indicate whether it is enabled.
+Deprecated: 2.56: SSL 3.0 is insecure.
 
 </description>
 <parameters>
@@ -53780,7 +54023,7 @@ actually indicate whether it is enabled.
 </parameter_description>
 </parameter>
 </parameters>
-<return> whether @conn will use the lowest-supported TLS protocol version
+<return> %FALSE
 
 </return>
 </function>
@@ -53861,24 +54104,20 @@ Since: 2.28
 
 <function name="g_tls_client_connection_set_use_ssl3">
 <description>
-Since 2.42.1, if @use_ssl3 is %TRUE, this forces @conn to use the
-lowest-supported TLS protocol version rather than trying to properly
-negotiate the highest mutually-supported protocol version with the
-peer. Be aware that SSL 3.0 is generally disabled by the
-#GTlsBackend, so the lowest-supported protocol version is probably
-not SSL 3.0.
+Since GLib 2.42.1, SSL 3.0 is no longer supported.
 
-Since 2.58, this may additionally cause an RFC 7507 fallback SCSV to
-be sent to the server, causing modern TLS servers to immediately
-terminate the connection. You should generally only use this function
-if you need to connect to broken servers that exhibit TLS protocol
-version intolerance, and when an initial attempt to connect to a
-server normally has already failed.
+From GLib 2.42.1 through GLib 2.62, this function could be used to
+force use of TLS 1.0, the lowest-supported TLS protocol version at
+the time. In the past, this was needed to connect to broken TLS
+servers that exhibited protocol version intolerance. Such servers
+are no longer common, and using TLS 1.0 is no longer considered
+acceptable.
+
+Since GLib 2.64, this function does nothing.
 
 Since: 2.28
 
-Deprecated: 2.56: SSL 3.0 is insecure, and this function does not
-generally enable or disable it, despite its name.
+Deprecated: 2.56: SSL 3.0 is insecure.
 
 </description>
 <parameters>
@@ -53887,7 +54126,7 @@ generally enable or disable it, despite its name.
 </parameter_description>
 </parameter>
 <parameter name="use_ssl3">
-<parameter_description> whether to use the lowest-supported protocol version
+<parameter_description> a #gboolean, ignored
 </parameter_description>
 </parameter>
 </parameters>
@@ -54084,7 +54323,7 @@ from the TLS protocol in TLS 1.3.
 </parameter_description>
 </parameter>
 </parameters>
-<return> @conn's rehandshaking mode
+<return> %G_TLS_REHANDSHAKE_SAFELY
 
 </return>
 </function>
@@ -54135,28 +54374,30 @@ Attempts a TLS handshake on @conn.
 
 On the client side, it is never necessary to call this method;
 although the connection needs to perform a handshake after
-connecting (or after sending a &quot;STARTTLS&quot;-type command) and may
-need to rehandshake later if the server requests it,
+connecting (or after sending a &quot;STARTTLS&quot;-type command),
 #GTlsConnection will handle this for you automatically when you try
-to send or receive data on the connection. However, you can call
-g_tls_connection_handshake() manually if you want to know for sure
-whether the initial handshake succeeded or failed (as opposed to
-just immediately trying to write to @conn's output stream, in which
-case if it fails, it may not be possible to tell if it failed
-before or after completing the handshake).
+to send or receive data on the connection. You can call
+g_tls_connection_handshake() manually if you want to know whether
+the initial handshake succeeded or failed (as opposed to just
+immediately trying to use @conn to read or write, in which case,
+if it fails, it may not be possible to tell if it failed before or
+after completing the handshake), but beware that servers may reject
+client authentication after the handshake has completed, so a
+successful handshake does not indicate the connection will be usable.
 
 Likewise, on the server side, although a handshake is necessary at
 the beginning of the communication, you do not need to call this
 function explicitly unless you want clearer error reporting.
 
-If TLS 1.2 or older is in use, you may call
-g_tls_connection_handshake() after the initial handshake to
-rehandshake; however, this usage is deprecated because rehandshaking
-is no longer part of the TLS protocol in TLS 1.3. Accordingly, the
-behavior of calling this function after the initial handshake is now
-undefined, except it is guaranteed to be reasonable and
-nondestructive so as to preserve compatibility with code written for
-older versions of GLib.
+Previously, calling g_tls_connection_handshake() after the initial
+handshake would trigger a rehandshake; however, this usage was
+deprecated in GLib 2.60 because rehandshaking was removed from the
+TLS protocol in TLS 1.3. Since GLib 2.64, calling this function after
+the initial handshake will no longer do anything.
+
+When using a #GTlsConnection created by #GSocketClient, the
+#GSocketClient performs the initial handshake, so calling this
+function manually is not recommended.
 
 #GTlsConnection::accept_certificate may be emitted during the
 handshake.
@@ -54365,27 +54606,10 @@ Since: 2.30
 
 <function name="g_tls_connection_set_rehandshake_mode">
 <description>
-Sets how @conn behaves with respect to rehandshaking requests, when
-TLS 1.2 or older is in use.
-
-%G_TLS_REHANDSHAKE_NEVER means that it will never agree to
-rehandshake after the initial handshake is complete. (For a client,
-this means it will refuse rehandshake requests from the server, and
-for a server, this means it will close the connection with an error
-if the client attempts to rehandshake.)
-
-%G_TLS_REHANDSHAKE_SAFELY means that the connection will allow a
-rehandshake only if the other end of the connection supports the
-TLS `renegotiation_info` extension. This is the default behavior,
-but means that rehandshaking will not work against older
-implementations that do not support that extension.
-
-%G_TLS_REHANDSHAKE_UNSAFELY means that the connection will allow
-rehandshaking even without the `renegotiation_info` extension. On
-the server side in particular, this is not recommended, since it
-leaves the server open to certain attacks. However, this mode is
-necessary if you need to allow renegotiation with older client
-software.
+Since GLib 2.64, changing the rehandshake mode is no longer supported
+and will have no effect. With TLS 1.3, rehandshaking has been removed from
+the TLS protocol, replaced by separate post-handshake authentication and
+rekey operations.
 
 Since: 2.28
 
diff --git a/gio/src/gio_enums.defs b/gio/src/gio_enums.defs
index a5fca4cd..91eb2537 100644
--- a/gio/src/gio_enums.defs
+++ b/gio/src/gio_enums.defs
@@ -1662,6 +1662,23 @@
   )
 )
 
+;; Original typedef:
+;; typedef enum {
+;;   G_MEMORY_MONITOR_WARNING_LEVEL_LOW      = 50,
+;;   G_MEMORY_MONITOR_WARNING_LEVEL_MEDIUM   = 100,
+;;   G_MEMORY_MONITOR_WARNING_LEVEL_CRITICAL = 255
+;; } GMemoryMonitorWarningLevel;
+
+(define-enum-extended MemoryMonitorWarningLevel
+  (in-module "G")
+  (c-name "GMemoryMonitorWarningLevel")
+  (values
+    '("low" "G_MEMORY_MONITOR_WARNING_LEVEL_LOW" "50")
+    '("medium" "G_MEMORY_MONITOR_WARNING_LEVEL_MEDIUM" "100")
+    '("critical" "G_MEMORY_MONITOR_WARNING_LEVEL_CRITICAL" "255")
+  )
+)
+
 ;; From gresolver.h
 
 ;; Original typedef:
diff --git a/gio/src/gio_methods.defs b/gio/src/gio_methods.defs
index 2a1adfed..19945b63 100644
--- a/gio/src/gio_methods.defs
+++ b/gio/src/gio_methods.defs
@@ -1781,6 +1781,17 @@
   )
 )
 
+(define-enum MonitorWarningLevel
+  (in-module "GMemory")
+  (c-name "GMemoryMonitorWarningLevel")
+  (gtype-id "G_TYPE_MEMORY_MONITOR_WARNING_LEVEL")
+  (values
+    '("low" "G_MEMORY_MONITOR_WARNING_LEVEL_LOW")
+    '("medium" "G_MEMORY_MONITOR_WARNING_LEVEL_MEDIUM")
+    '("critical" "G_MEMORY_MONITOR_WARNING_LEVEL_CRITICAL")
+  )
+)
+
 (define-flags NameLookupFlags
   (in-module "GResolver")
   (c-name "GResolverNameLookupFlags")
@@ -11527,6 +11538,27 @@
   )
 )
 
+(define-method find
+  (of-object "GListStore")
+  (c-name "g_list_store_find")
+  (return-type "gboolean")
+  (parameters
+    '("gpointer" "item")
+    '("guint*" "position")
+  )
+)
+
+(define-method find_with_equal_func
+  (of-object "GListStore")
+  (c-name "g_list_store_find_with_equal_func")
+  (return-type "gboolean")
+  (parameters
+    '("gpointer" "item")
+    '("GEqualFunc" "equal_func")
+    '("guint*" "position")
+  )
+)
+
 
 
 ;; From gloadableicon.h
@@ -11637,6 +11669,7 @@
     '("GFileMonitorFlags" "flags")
     '("GFileMonitorCallback" "callback")
     '("gpointer" "user_data")
+    '("GClosureNotify" "destroy_user_data")
     '("GError**" "error")
   )
 )
@@ -11721,6 +11754,23 @@
 
 
 
+;; From gmemorymonitordbus.h
+
+
+
+;; From gmemorymonitor.h
+
+(define-function g_memory_monitor_dup_default
+  (c-name "g_memory_monitor_dup_default")
+  (return-type "GMemoryMonitor*")
+)
+
+
+
+;; From gmemorymonitorportal.h
+
+
+
 ;; From gmemoryoutputstream.h
 
 (define-function g_memory_output_stream_get_type
@@ -17995,6 +18045,15 @@
   (varargs #t)
 )
 
+(define-method return_value
+  (of-object "GTask")
+  (c-name "g_task_return_value")
+  (return-type "none")
+  (parameters
+    '("GValue*" "result")
+  )
+)
+
 (define-method return_error_if_cancelled
   (of-object "GTask")
   (c-name "g_task_return_error_if_cancelled")
@@ -18028,6 +18087,16 @@
   )
 )
 
+(define-method propagate_value
+  (of-object "GTask")
+  (c-name "g_task_propagate_value")
+  (return-type "gboolean")
+  (parameters
+    '("GValue*" "value")
+    '("GError**" "error")
+  )
+)
+
 (define-method had_error
   (of-object "GTask")
   (c-name "g_task_had_error")
@@ -20937,6 +21006,11 @@
   (return-type "GType")
 )
 
+(define-function g_memory_monitor_warning_level_get_type
+  (c-name "g_memory_monitor_warning_level_get_type")
+  (return-type "GType")
+)
+
 (define-function g_resolver_name_lookup_flags_get_type
   (c-name "g_resolver_name_lookup_flags_get_type")
   (return-type "GType")
diff --git a/gio/src/gio_signals.defs.patch b/gio/src/gio_signals.defs.patch
index 9aa6d380..8f8cea82 100644
--- a/gio/src/gio_signals.defs.patch
+++ b/gio/src/gio_signals.defs.patch
@@ -1,5 +1,5 @@
---- ./../../gio/src/gio_signals.defs.orig      2019-09-16 10:58:32.886304328 +0200
-+++ ./../../gio/src/gio_signals.defs   2019-09-16 11:38:16.372140422 +0200
+--- ./../../gio/src/gio_signals.defs.orig      2020-03-16 18:33:48.007956031 +0100
++++ ./../../gio/src/gio_signals.defs   2020-03-16 18:36:00.059688821 +0100
 @@ -87,11 +87,11 @@
    (return-type "void")
    (flags "Run Last, Must Collect")
@@ -87,19 +87,7 @@
  
  (define-property settings-schema
    (of-object "GSettings")
-@@ -2383,10 +2384,11 @@
-   (prop-type "GParamBoolean")
-   (docs "Whether to verify peer certificates against the system certificate database")
-   (readable #t)
-   (writable #t)
-   (construct-only #f)
-+  (deprecated #t)
-   (default-value "TRUE")
- )
- 
- (define-property database
-   (of-object "GTlsConnection")
-@@ -2808,23 +2810,23 @@
+@@ -2809,23 +2810,23 @@
    (parameters
      '("GDBusObjectProxy*" "p0")
      '("GDBusProxy*" "p1")
@@ -126,7 +114,7 @@
  
  (define-property bus-type
    (of-object "GDBusObjectManagerClient")
-@@ -2997,23 +2999,23 @@
+@@ -2998,23 +2999,23 @@
  (define-signal g-properties-changed
    (of-object "GDBusProxy")
    (return-type "void")
diff --git a/glib/src/glib_docs.xml b/glib/src/glib_docs.xml
index 41daf11d..21f0a75d 100644
--- a/glib/src/glib_docs.xml
+++ b/glib/src/glib_docs.xml
@@ -20,7 +20,10 @@ Since: 2.26
 <property name="GBinding:source-property">
 <description>
 The name of the property of #GBinding:source that should be used
-as the source of the binding
+as the source of the binding.
+
+This should be in [canonical form][canonical-parameter-names] to get the
+best performance.
 
 Since: 2.26
 
@@ -39,7 +42,10 @@ Since: 2.26
 <property name="GBinding:target-property">
 <description>
 The name of the property of #GBinding:target that should be used
-as the target of the binding
+as the target of the binding.
+
+This should be in [canonical form][canonical-parameter-names] to get the
+best performance.
 
 Since: 2.26
 
@@ -2115,7 +2121,7 @@ match signals by.
 </parameter_description>
 </parameter>
 <parameter name="G_SIGNAL_MATCH_DETAIL">
-<parameter_description> The signal detail be equal.
+<parameter_description> The signal detail must be equal.
 </parameter_description>
 </parameter>
 <parameter name="G_SIGNAL_MATCH_CLOSURE">
@@ -2131,7 +2137,7 @@ match signals by.
 </parameter_description>
 </parameter>
 <parameter name="G_SIGNAL_MATCH_UNBLOCKED">
-<parameter_description> Only unblocked signals may matched.
+<parameter_description> Only unblocked signals may be matched.
 </parameter_description>
 </parameter>
 </parameters>
@@ -3903,6 +3909,10 @@ Error codes returned by parsing text-format GVariants.
 <parameter_description> no value given
 </parameter_description>
 </parameter>
+<parameter name="G_VARIANT_PARSE_ERROR_RECURSION">
+<parameter_description> variant was too deeply nested; #GVariant is only guaranteed to handle nesting up to 
64 levels (Since: 2.64)
+</parameter_description>
+</parameter>
 </parameters>
 </enum>
 
@@ -4607,6 +4617,47 @@ This did not actually work, so any such code should be removed.
 <return></return>
 </function>
 
+<function name="g_array_steal">
+<description>
+Frees the data in the array and resets the size to zero, while
+the underlying array is preserved for use elsewhere and returned
+to the caller.
+
+If the array was created with the @zero_terminate property
+set to %TRUE, the returned data is zero terminated too.
+
+If array elements contain dynamically-allocated memory,
+the array elements should also be freed by the caller.
+
+A short example of use:
+|[&lt;!-- language=&quot;C&quot; --&gt;
+...
+gpointer data;
+gsize data_len;
+data = g_array_steal (some_array, &amp;data_len);
+...
+]|
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="array">
+<parameter_description> a #GArray.
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> pointer to retrieve the number of
+elements of the original array
+</parameter_description>
+</parameter>
+</parameters>
+<return> the element data, which should be
+freed using g_free().
+
+</return>
+</function>
+
 <function name="g_array_unref">
 <description>
 Atomically decrements the reference count of @array by one. If the
@@ -5549,6 +5600,8 @@ the same as `g_assert_true (l1 == l2 &amp;&amp; memcmp (m1, m2, l1) == 0)`.
 The advantage of this macro is that it can produce a message that
 includes the actual values of @l1 and @l2.
 
+@m1 may be %NULL if (and only if) @l1 is zero; similarly for @m2 and @l2.
+
 |[&lt;!-- language=&quot;C&quot; --&gt;
 g_assert_cmpmem (buf-&gt;data, buf-&gt;len, expected, sizeof (expected));
 ]|
@@ -7781,10 +7834,10 @@ The output buffer must be large enough to fit all the data that will
 be written to it. Due to the way base64 encodes you will need
 at least: (@len / 3 + 1) * 4 + 4 bytes (+ 4 may be needed in case of
 non-zero state). If you enable line-breaking you will need at least:
-((@len / 3 + 1) * 4 + 4) / 72 + 1 bytes of extra space.
+((@len / 3 + 1) * 4 + 4) / 76 + 1 bytes of extra space.
 
 @break_lines is typically used when putting base64-encoded data in emails.
-It breaks the lines at 72 columns instead of putting all of the text on
+It breaks the lines at 76 columns instead of putting all of the text on
 the same line. This avoids problems with long lines in the email system.
 Note however that it breaks the lines with `LF` characters, not
 `CR LF` sequences, so the result cannot be passed directly to SMTP
@@ -9892,6 +9945,32 @@ user data argument.
 <return></return>
 </function>
 
+<function name="g_byte_array_steal">
+<description>
+Frees the data in the array and resets the size to zero, while
+the underlying array is preserved for use elsewhere and returned
+to the caller.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="array">
+<parameter_description> a #GByteArray.
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> pointer to retrieve the number of
+elements of the original array
+</parameter_description>
+</parameter>
+</parameters>
+<return> the element data, which should be
+freed using g_free().
+
+</return>
+</function>
+
 <function name="g_byte_array_unref">
 <description>
 Atomically decrements the reference count of @array by one. If the
@@ -12966,6 +13045,28 @@ Since: 2.56
 <return></return>
 </function>
 
+<function name="g_clear_list">
+<description>
+Clears a pointer to a #GList, freeing it and, optionally, freeing its elements using @destroy.
+
+@list_ptr must be a valid pointer. If @list_ptr points to a null #GList, this does nothing.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="list_ptr">
+<parameter_description> a #GList return location
+</parameter_description>
+</parameter>
+<parameter name="destroy">
+<parameter_description> the function to pass to g_list_free_full() or %NULL to not free elements
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="g_clear_object">
 <description>
 Clears a reference to a #GObject.
@@ -13052,6 +13153,28 @@ Since: 2.62
 <return></return>
 </function>
 
+<function name="g_clear_slist">
+<description>
+Clears a pointer to a #GSList, freeing it and, optionally, freeing its elements using @destroy.
+
+@slist_ptr must be a valid pointer. If @slist_ptr points to a null #GSList, this does nothing.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="slist_ptr">
+<parameter_description> a #GSList return location
+</parameter_description>
+</parameter>
+<parameter name="destroy">
+<parameter_description> the function to pass to g_slist_free_full() or %NULL to not free elements
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="g_clear_weak_pointer">
 <description>
 Clears a weak reference to a #GObject.
@@ -16988,9 +17111,17 @@ Since: 2.26
 <description>
 Creates a #GDateTime corresponding to the given
 [ISO 8601 formatted string](https://en.wikipedia.org/wiki/ISO_8601)
-@text. ISO 8601 strings of the form &lt;date&gt;&lt;sep&gt;&lt;time&gt;&lt;tz&gt; are supported.
+@text. ISO 8601 strings of the form &lt;date&gt;&lt;sep&gt;&lt;time&gt;&lt;tz&gt; are supported, with
+some extensions from [RFC 3339](https://tools.ietf.org/html/rfc3339) as
+mentioned below.
 
-&lt;sep&gt; is the separator and can be either 'T', 't' or ' '.
+Note that as #GDateTime &quot;is oblivious to leap seconds&quot;, leap seconds information
+in an ISO-8601 string will be ignored, so a `23:59:60` time would be parsed as
+`23:59:59`.
+
+&lt;sep&gt; is the separator and can be either 'T', 't' or ' '. The latter two
+separators are an extension from
+[RFC 3339](https://tools.ietf.org/html/rfc3339#section-5.6).
 
 &lt;date&gt; is in the form:
 
@@ -19041,8 +19172,8 @@ including the type suffix.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a newly-allocated string with the absolute path,
-or %NULL
+<return> a newly-allocated
+string with the absolute path, or %NULL
 </return>
 </function>
 
@@ -19189,17 +19320,22 @@ Since: 2.54
 
 <function name="g_fopen">
 <description>
-A wrapper for the stdio fopen() function. The fopen() function
+A wrapper for the stdio `fopen()` function. The `fopen()` function
 opens a file and associates a new stream with it.
 
 Because file descriptors are specific to the C library on Windows,
-and a file descriptor is part of the FILE struct, the FILE* returned
+and a file descriptor is part of the `FILE` struct, the `FILE*` returned
 by this function makes sense only to functions in the same C library.
 Thus if the GLib-using code uses a different C library than GLib does,
 the FILE* returned by this function cannot be passed to C library
-functions like fprintf() or fread().
+functions like `fprintf()` or `fread()`.
+
+See your C library manual for more details about `fopen()`.
 
-See your C library manual for more details about fopen().
+As `close()` and `fclose()` are part of the C library, this implies that it is
+currently impossible to close a file if the application C library and the C library
+used by GLib are different. Convenience functions like g_file_set_contents()
+avoid this problem.
 
 Since: 2.6
 
@@ -19215,7 +19351,7 @@ Since: 2.6
 </parameter_description>
 </parameter>
 </parameters>
-<return> A FILE* if the file was successfully opened, or %NULL if
+<return> A `FILE*` if the file was successfully opened, or %NULL if
 an error occurred
 
 </return>
@@ -19246,8 +19382,8 @@ Since: 2.30
 </parameter_description>
 </parameter>
 </parameters>
-<return> a newly-allocated formatted string containing a human readable
-file size
+<return> a newly-allocated formatted string containing
+a human readable file size
 
 </return>
 </function>
@@ -19276,8 +19412,8 @@ suffixes to denote IEC units. Use g_format_size() instead.
 </parameter_description>
 </parameter>
 </parameters>
-<return> a newly-allocated formatted string containing a human
-readable file size
+<return> a newly-allocated formatted string
+containing a human readable file size
 
 </return>
 </function>
@@ -19302,8 +19438,8 @@ Since: 2.30
 </parameter_description>
 </parameter>
 </parameters>
-<return> a newly-allocated formatted string containing a human
-readable file size
+<return> a newly-allocated formatted string
+containing a human readable file size
 
 </return>
 </function>
@@ -19386,6 +19522,29 @@ an error occurred.
 </return>
 </function>
 
+<function name="g_fsync">
+<description>
+A wrapper for the POSIX fsync() function (_commit() on Windows).
+The fsync() function is used to synchronize a file's in-core
+state with that of the disk.
+
+See the C library manual for more details about fsync().
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="fd">
+<parameter_description> a file descriptor
+</parameter_description>
+</parameter>
+</parameters>
+<return> 0 on success, or -1 if an error occurred.
+The return value can be used exactly like the return value from fsync().
+
+</return>
+</function>
+
 <function name="g_get_application_name">
 <description>
 Gets a human-readable name for the application, as set by
@@ -19401,7 +19560,8 @@ Since: 2.2
 </description>
 <parameters>
 </parameters>
-<return> human-readable application name. may return %NULL
+<return> human-readable application
+name. May return %NULL
 
 </return>
 </function>
@@ -19713,10 +19873,15 @@ It must not be modified or freed. It must be copied if planned to be used in ano
 Returns a list of derived variants of @locale, which can be used to
 e.g. construct locale-dependent filenames or search paths. The returned
 list is sorted from most desirable to least desirable.
-This function handles territory, charset and extra locale modifiers.
+This function handles territory, charset and extra locale modifiers. See
+[`setlocale(3)`](man:setlocale) for information about locales and their format.
 
-For example, if @locale is &quot;fr_BE&quot;, then the returned list
-is &quot;fr_BE&quot;, &quot;fr&quot;.
+@locale itself is guaranteed to be returned in the output.
+
+For example, if @locale is `fr_BE`, then the returned list
+is `fr_BE`, `fr`. If @locale is `en_GB.UTF-8@euro`, then the returned list
+is `en_GB.UTF-8@euro`, `en_GB.UTF-8`, `en_GB@euro`, `en_GB`, `en.UTF-8@euro`,
+`en.UTF-8`, `en@euro`, `en`.
 
 If you need the list of variants for the current locale,
 use g_get_language_names().
@@ -19777,6 +19942,32 @@ Since: 2.36
 </return>
 </function>
 
+<function name="g_get_os_info">
+<description>
+Get information about the operating system.
+
+On Linux this comes from the `/etc/os-release` file. On other systems, it may
+come from a variety of sources. You can either use the standard key names
+like %G_OS_INFO_KEY_NAME or pass any UTF-8 string key name. For example,
+`/etc/os-release` provides a number of other less commonly used values that may
+be useful. No key is guaranteed to be provided, so the caller should always
+check if the result is %NULL.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="key_name">
+<parameter_description> a key for the OS info being requested, for example %G_OS_INFO_KEY_NAME.
+</parameter_description>
+</parameter>
+</parameters>
+<return> The associated value for the requested key or %NULL if
+this information is not provided.
+
+</return>
+</function>
+
 <function name="g_get_prgname">
 <description>
 Gets the name of the program. This name should not be localized,
@@ -19792,8 +19983,8 @@ taking the last component of @argv[0].
 </description>
 <parameters>
 </parameters>
-<return> the name of the program, or %NULL if it has not been
-set yet. The returned string belongs
+<return> the name of the program,
+or %NULL if it has not been set yet. The returned string belongs
 to GLib and must not be modified or freed.
 </return>
 </function>
@@ -19960,8 +20151,8 @@ Since: 2.6
 </description>
 <parameters>
 </parameters>
-<return> a string owned by GLib that must not be modified
-or freed.
+<return> a string owned by GLib that
+must not be modified or freed.
 </return>
 </function>
 
@@ -19987,8 +20178,8 @@ Since: 2.6
 </description>
 <parameters>
 </parameters>
-<return> a string owned by GLib that must not be modified
-or freed.
+<return> a string owned by GLib that
+must not be modified or freed.
 </return>
 </function>
 
@@ -20014,8 +20205,9 @@ Since: 2.6
 </description>
 <parameters>
 </parameters>
-<return> a string owned by GLib that must not be modified
-or freed.
+<return> a string owned by GLib that must
+not be modified or freed.
+
 </return>
 </function>
 
@@ -20118,6 +20310,10 @@ This is a convenience function for using a #GHashTable as a set.  It
 is equivalent to calling g_hash_table_replace() with @key as both the
 key and the value.
 
+In particular, this means that if @key already exists in the hash table, then
+the old copy of @key in the hash table is freed and @key replaces it in the
+table.
+
 When a hash table only ever contains keys that have themselves as the
 corresponding value it is able to be stored more efficiently.  See
 the discussion in the section description.
@@ -20234,6 +20430,9 @@ be modified while iterating over it (you can't add/remove
 items). To remove all items matching a predicate, use
 g_hash_table_foreach_remove().
 
+The order in which g_hash_table_foreach() iterates over the keys/values in
+the hash table is not defined.
+
 See g_hash_table_find() for performance caveats for linear
 order searches in contrast to g_hash_table_lookup().
 
@@ -20480,6 +20679,10 @@ Since: 2.16
 Initializes a key/value pair iterator and associates it with
 @hash_table. Modifying the hash table after calling this function
 invalidates the returned iterator.
+
+The iteration order of a #GHashTableIter over the keys/values in a hash
+table is not defined.
+
 |[&lt;!-- language=&quot;C&quot; --&gt;
 GHashTableIter iter;
 gpointer key, value;
@@ -23271,6 +23474,9 @@ Creates a #GSource that's dispatched when @condition is met for the
 given @channel. For example, if condition is #G_IO_IN, the source will 
 be dispatched when there's data available for reading.
 
+The callback function invoked by the #GSource should be added with
+g_source_set_callback(), but it has type #GIOFunc (not #GSourceFunc).
+
 g_io_add_watch() is a simpler interface to this same functionality, for 
 the case where you want to add the source to the default main loop context 
 at the default priority.
@@ -25195,6 +25401,13 @@ The freed elements are returned to the slice allocator.
 If list elements contain dynamically-allocated memory, you should
 either use g_list_free_full() or free them manually first.
 
+It can be combined with g_steal_pointer() to ensure the list head pointer
+is not left dangling:
+|[&lt;!-- language=&quot;C&quot; --&gt;
+GList *list_of_borrowed_things = …;  /&lt;!-- --&gt;* (transfer container) *&lt;!-- --&gt;/
+g_list_free (g_steal_pointer (&amp;list_of_borrowed_things));
+]|
+
 </description>
 <parameters>
 <parameter name="list">
@@ -25241,6 +25454,15 @@ and calls @free_func on every element's data.
 @free_func must not modify the list (eg, by removing the freed
 element from it).
 
+It can be combined with g_steal_pointer() to ensure the list head pointer
+is not left dangling ­— this also has the nice property that the head pointer
+is cleared before any of the list elements are freed, to prevent double frees
+from @free_func:
+|[&lt;!-- language=&quot;C&quot; --&gt;
+GList *list_of_owned_things = …;  /&lt;!-- --&gt;* (transfer full) (element-type GObject) *&lt;!-- --&gt;/
+g_list_free_full (g_steal_pointer (&amp;list_of_owned_things), g_object_unref);
+]|
+
 Since: 2.28
 
 </description>
@@ -27200,6 +27422,79 @@ Since: 2.22
 <return></return>
 </function>
 
+<function name="g_main_context_pusher_free">
+<description>
+Pop @pusher’s main context as the thread default main context.
+See g_main_context_pusher_new() for details.
+
+This will pop the #GMainContext as the current thread-default main context,
+but will not call g_main_context_unref() on it.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="pusher">
+<parameter_description> a #GMainContextPusher
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
+<function name="g_main_context_pusher_new">
+<description>
+Push @main_context as the new thread-default main context for the current
+thread, using g_main_context_push_thread_default(), and return a new
+#GMainContextPusher. Pop with g_main_context_pusher_free(). Using
+g_main_context_pop_thread_default() on @main_context while a
+#GMainContextPusher exists for it can lead to undefined behaviour.
+
+Using two #GMainContextPushers in the same scope is not allowed, as it leads
+to an undefined pop order.
+
+This is intended to be used with g_autoptr().  Note that g_autoptr()
+is only available when using GCC or clang, so the following example
+will only work with those compilers:
+|[
+typedef struct
+{
+...
+GMainContext *context;
+...
+} MyObject;
+
+static void
+my_object_do_stuff (MyObject *self)
+{
+g_autoptr(GMainContextPusher) pusher = g_main_context_pusher_new (self-&gt;context);
+
+// Code with main context as the thread default here
+
+if (cond)
+// No need to pop
+return;
+
+// Optionally early pop
+g_clear_pointer (&amp;pusher, g_main_context_pusher_free);
+
+// Code with main context no longer the thread default here
+}
+]|
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="main_context">
+<parameter_description> a main context to push
+</parameter_description>
+</parameter>
+</parameters>
+<return> a #GMainContextPusher
+</return>
+</function>
+
 <function name="g_main_context_query">
 <description>
 Determines information necessary to poll this main loop.
@@ -29124,7 +29419,7 @@ includes the key `gc-friendly`.
 <description>
 Checks whether the allocator used by g_malloc() is the system's
 malloc implementation. If it returns %TRUE memory allocated with
-malloc() can be used interchangeable with memory allocated using g_malloc().
+malloc() can be used interchangeably with memory allocated using g_malloc().
 This function is useful for avoiding an extra copy of allocated memory returned
 by a non-GLib-based API.
 
@@ -29542,7 +29837,7 @@ If that fails and @file_name has the &quot;.la&quot;-suffix (and is a libtool
 archive) it tries to open the corresponding module. If that fails
 and it doesn't have the proper module suffix for the platform
 (#G_MODULE_SUFFIX), this suffix will be appended and the corresponding
-module will be opended. If that fails and @file_name doesn't have the
+module will be opened. If that fails and @file_name doesn't have the
 &quot;.la&quot;-suffix, this suffix is appended and g_module_open() tries to open
 the corresponding module. If eventually that fails as well, %NULL is
 returned.
@@ -29708,6 +30003,8 @@ already been locked by the same thread results in undefined behaviour
 <description>
 Unlock @locker's mutex. See g_mutex_locker_new() for details.
 
+No memory is freed, it is equivalent to a g_mutex_unlock() call.
+
 Since: 2.44
 
 </description>
@@ -29726,6 +30023,8 @@ Lock @mutex and return a new #GMutexLocker. Unlock with
 g_mutex_locker_free(). Using g_mutex_unlock() on @mutex
 while a #GMutexLocker exists can lead to undefined behaviour.
 
+No allocation is performed, it is equivalent to a g_mutex_lock() call.
+
 This is intended to be used with g_autoptr().  Note that g_autoptr()
 is only available when using GCC or clang, so the following example
 will only work with those compilers:
@@ -31373,16 +31672,18 @@ Here is an example of using g_object_get() to get the contents
 of three properties: an integer, a string and an object:
 |[&lt;!-- language=&quot;C&quot; --&gt; 
 gint intval;
+guint64 uint64val;
 gchar *strval;
 GObject *objval;
 
 g_object_get (my_object,
 &quot;int-property&quot;, &amp;intval,
+&quot;uint64-property&quot;, &amp;uint64val,
 &quot;str-property&quot;, &amp;strval,
 &quot;obj-property&quot;, &amp;objval,
 NULL);
 
-// Do something with intval, strval, objval
+// Do something with intval, uint64val, strval, objval
 
 g_free (strval);
 g_object_unref (objval);
@@ -31667,6 +31968,20 @@ Creates a new instance of a #GObject subtype and sets its properties.
 Construction parameters (see #G_PARAM_CONSTRUCT, #G_PARAM_CONSTRUCT_ONLY)
 which are not explicitly specified are set to their default values.
 
+Note that in C, small integer types in variable argument lists are promoted
+up to #gint or #guint as appropriate, and read back accordingly. #gint is 32
+bits on every platform on which GLib is currently supported. This means that
+you can use C expressions of type #gint with g_object_new() and properties of
+type #gint or #guint or smaller. Specifically, you can use integer literals
+with these property types.
+
+When using property types of #gint64 or #guint64, you must ensure that the
+value that you provide is 64 bit. This means that you should use a cast or
+make use of the %G_GINT64_CONSTANT or %G_GUINT64_CONSTANT macros.
+
+Similarly, #gfloat is promoted to #gdouble, so you must ensure that the value
+you provide is a #gdouble, even for a property of type #gfloat.
+
 
 </description>
 <parameters>
@@ -32091,6 +32406,11 @@ This function should only be called from object system implementations.
 <description>
 Sets properties on an object.
 
+The same caveats about passing integer literals as varargs apply as with
+g_object_new(). In particular, any integer literals set as the values for
+properties of type #gint64 or #guint64 must be 64 bits wide, using the
+%G_GINT64_CONSTANT or %G_GUINT64_CONSTANT macros.
+
 Note that the &quot;notify&quot; signals are queued and only emitted (in
 reverse order) after all properties have been set. See
 g_object_freeze_notify().
@@ -34094,15 +34414,9 @@ See g_param_spec_internal() for details on property names.
 <description>
 Creates a new #GParamSpec instance.
 
-A property name consists of segments consisting of ASCII letters and
-digits, separated by either the '-' or '_' character. The first
-character of a property name must be a letter. Names which violate these
-rules lead to undefined behaviour.
-
-When creating and looking up a #GParamSpec, either separator can be
-used, but they cannot be mixed. Using '-' is considerably more
-efficient and in fact required when using property names as detail
-strings for signals.
+See [canonical parameter names][canonical-parameter-names] for details of
+the rules for @name. Names which violate these rules lead to undefined
+behaviour.
 
 Beyond the name, #GParamSpecs have two more descriptive
 strings associated with them, the @nick, which should be suitable
@@ -35005,7 +35319,8 @@ Sets @value to its default value as specified in @pspec.
 </parameter_description>
 </parameter>
 <parameter name="value">
-<parameter_description> a #GValue of correct type for @pspec
+<parameter_description> a #GValue of correct type for @pspec; since 2.64, you
+can also pass an empty #GValue, initialized with %G_VALUE_INIT
 </parameter_description>
 </parameter>
 </parameters>
@@ -36339,7 +36654,32 @@ greater than second arg).
 
 Note that the comparison function for g_ptr_array_sort() doesn't
 take the pointers from the array as arguments, it takes pointers to
-the pointers in the array.
+the pointers in the array. Here is a full example of usage:
+
+|[&lt;!-- language=&quot;C&quot; --&gt;
+typedef struct
+{
+gchar *name;
+gint size;
+} FileListEntry;
+
+static gint
+sort_filelist (gconstpointer a, gconstpointer b)
+{
+const FileListEntry *entry1 = *((FileListEntry **) a);
+const FileListEntry *entry2 = *((FileListEntry **) b);
+
+return g_ascii_strcasecmp (entry1-&gt;name, entry2-&gt;name);
+}
+
+…
+g_autoptr (GPtrArray) file_list = NULL;
+
+// initialize file_list array and load with many FileListEntry entries
+...
+// now sort it with
+g_ptr_array_sort (file_list, sort_filelist);
+]|
 
 This is guaranteed to be a stable sort since version 2.32.
 
@@ -36364,7 +36704,52 @@ user data argument.
 
 Note that the comparison function for g_ptr_array_sort_with_data()
 doesn't take the pointers from the array as arguments, it takes
-pointers to the pointers in the array.
+pointers to the pointers in the array. Here is a full example of use:
+
+|[&lt;!-- language=&quot;C&quot; --&gt;
+typedef enum { SORT_NAME, SORT_SIZE } SortMode;
+
+typedef struct
+{
+gchar *name;
+gint size;
+} FileListEntry;
+
+static gint
+sort_filelist (gconstpointer a, gconstpointer b, gpointer user_data)
+{
+gint order;
+const SortMode sort_mode = GPOINTER_TO_INT (user_data);
+const FileListEntry *entry1 = *((FileListEntry **) a);
+const FileListEntry *entry2 = *((FileListEntry **) b);
+
+switch (sort_mode)
+{
+case SORT_NAME:
+order = g_ascii_strcasecmp (entry1-&gt;name, entry2-&gt;name);
+break;
+case SORT_SIZE:
+order = entry1-&gt;size - entry2-&gt;size;
+break;
+default:
+order = 0;
+break;
+}
+return order;
+}
+
+...
+g_autoptr (GPtrArray) file_list = NULL;
+SortMode sort_mode;
+
+// initialize file_list array and load with many FileListEntry entries
+...
+// now sort it with
+sort_mode = SORT_NAME;
+g_ptr_array_sort_with_data (file_list,
+sort_filelist,
+GINT_TO_POINTER (sort_mode));
+]|
 
 This is guaranteed to be a stable sort since version 2.32.
 
@@ -36386,6 +36771,69 @@ This is guaranteed to be a stable sort since version 2.32.
 <return></return>
 </function>
 
+<function name="g_ptr_array_steal">
+<description>
+Frees the data in the array and resets the size to zero, while
+the underlying array is preserved for use elsewhere and returned
+to the caller.
+
+Even if set, the #GDestroyNotify function will never be called
+on the current contents of the array and the caller is
+responsible for freeing the array elements.
+
+An example of use:
+|[&lt;!-- language=&quot;C&quot; --&gt;
+g_autoptr(GPtrArray) chunk_buffer = g_ptr_array_new_with_free_func (g_bytes_unref);
+
+// Some part of your application appends a number of chunks to the pointer array.
+g_ptr_array_add (chunk_buffer, g_bytes_new_static (&quot;hello&quot;, 5));
+g_ptr_array_add (chunk_buffer, g_bytes_new_static (&quot;world&quot;, 5));
+
+…
+
+// Periodically, the chunks need to be sent as an array-and-length to some
+// other part of the program.
+GBytes **chunks;
+gsize n_chunks;
+
+chunks = g_ptr_array_steal (chunk_buffer, &amp;n_chunks);
+for (gsize i = 0; i &lt; n_chunks; i++)
+{
+// Do something with each chunk here, and then free them, since
+// g_ptr_array_steal() transfers ownership of all the elements and the
+// array to the caller.
+…
+
+g_bytes_unref (chunks[i]);
+}
+
+g_free (chunks);
+
+// After calling g_ptr_array_steal(), the pointer array can be reused for the
+// next set of chunks.
+g_assert (chunk_buffer-&gt;len == 0);
+]|
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="array">
+<parameter_description> a #GPtrArray.
+</parameter_description>
+</parameter>
+<parameter name="len">
+<parameter_description> pointer to retrieve the number of
+elements of the original array
+</parameter_description>
+</parameter>
+</parameters>
+<return> the element data, which should be
+freed using g_free().
+
+</return>
+</function>
+
 <function name="g_ptr_array_steal_index">
 <description>
 Removes the pointer at the given index from the pointer array.
@@ -38175,6 +38623,8 @@ Since: 2.32
 <description>
 Unlock @locker's recursive mutex. See g_rec_mutex_locker_new() for details.
 
+No memory is freed, it is equivalent to a g_rec_mutex_unlock() call.
+
 Since: 2.60
 
 </description>
@@ -38193,6 +38643,8 @@ Lock @rec_mutex and return a new #GRecMutexLocker. Unlock with
 g_rec_mutex_locker_free(). Using g_rec_mutex_unlock() on @rec_mutex
 while a #GRecMutexLocker exists can lead to undefined behaviour.
 
+No allocation is performed, it is equivalent to a g_rec_mutex_lock() call.
+
 This is intended to be used with g_autoptr().  Note that g_autoptr()
 is only available when using GCC or clang, so the following example
 will only work with those compilers:
@@ -40042,6 +40494,8 @@ Since: 2.32
 Release a read lock on @locker's read-write lock. See
 g_rw_lock_reader_locker_new() for details.
 
+No memory is freed, it is equivalent to a g_rw_lock_reader_unlock() call.
+
 Since: 2.62
 
 </description>
@@ -40061,6 +40515,8 @@ Unlock with g_rw_lock_reader_locker_free(). Using g_rw_lock_reader_unlock()
 on @rw_lock while a #GRWLockReaderLocker exists can lead to undefined
 behaviour.
 
+No allocation is performed, it is equivalent to a g_rw_lock_reader_lock() call.
+
 This is intended to be used with g_autoptr(). For a code sample, see
 g_rw_lock_writer_locker_new().
 
@@ -40139,6 +40595,8 @@ Since: 2.32
 Release a write lock on @locker's read-write lock. See
 g_rw_lock_writer_locker_new() for details.
 
+No memory is freed, it is equivalent to a g_rw_lock_writer_unlock() call.
+
 Since: 2.62
 
 </description>
@@ -40158,6 +40616,8 @@ Unlock with g_rw_lock_writer_locker_free(). Using g_rw_lock_writer_unlock()
 on @rw_lock while a #GRWLockWriterLocker exists can lead to undefined
 behaviour.
 
+No allocation is performed, it is equivalent to a g_rw_lock_writer_lock() call.
+
 This is intended to be used with g_autoptr().  Note that g_autoptr()
 is only available when using GCC or clang, so the following example
 will only work with those compilers:
@@ -43243,6 +43703,10 @@ somewhat faster than using the name each time.
 
 Also tries the ancestors of the given type.
 
+The type class passed as @itype must already have been instantiated (for
+example, using g_type_class_ref()) for this function to work, as signals are
+always installed during class initialization.
+
 See g_signal_new() for details on allowed signal names.
 
 
@@ -43284,12 +43748,14 @@ Two different signals may have the same name, if they have differing types.
 Creates a new signal. (This is usually done in the class initializer.)
 
 A signal name consists of segments consisting of ASCII letters and
-digits, separated by either the '-' or '_' character. The first
+digits, separated by either the `-` or `_` character. The first
 character of a signal name must be a letter. Names which violate these
-rules lead to undefined behaviour of the GSignal system.
+rules lead to undefined behaviour. These are the same rules as for property
+naming (see g_param_spec_internal()).
 
 When registering a signal and looking up a signal, either separator can
-be used, but they cannot be mixed.
+be used, but they cannot be mixed. Using `-` is considerably more efficient.
+Using `_` is discouraged.
 
 If 0 is used for @class_offset subclasses cannot override the class handler
 in their class_init method by doing super_class-&gt;signal_handler = my_signal_handler.
@@ -44406,6 +44872,13 @@ If list elements contain dynamically-allocated memory,
 you should either use g_slist_free_full() or free them manually
 first.
 
+It can be combined with g_steal_pointer() to ensure the list head pointer
+is not left dangling:
+|[&lt;!-- language=&quot;C&quot; --&gt;
+GSList *list_of_borrowed_things = …;  /&lt;!-- --&gt;* (transfer container) *&lt;!-- --&gt;/
+g_slist_free (g_steal_pointer (&amp;list_of_borrowed_things));
+]|
+
 </description>
 <parameters>
 <parameter name="list">
@@ -44451,6 +44924,15 @@ calls the specified destroy function on every element's data.
 @free_func must not modify the list (eg, by removing the freed
 element from it).
 
+It can be combined with g_steal_pointer() to ensure the list head pointer
+is not left dangling ­— this also has the nice property that the head pointer
+is cleared before any of the list elements are freed, to prevent double frees
+from @free_func:
+|[&lt;!-- language=&quot;C&quot; --&gt;
+GSList *list_of_owned_things = …;  /&lt;!-- --&gt;* (transfer full) (element-type GObject) *&lt;!-- --&gt;/
+g_slist_free_full (g_steal_pointer (&amp;list_of_owned_things), g_object_unref);
+]|
+
 Since: 2.28
 
 </description>
@@ -45046,6 +45528,9 @@ Since: 2.36
 Adds a #GSource to a @context so that it will be executed within
 that context. Remove it by calling g_source_destroy().
 
+This function is safe to call from any thread, regardless of which thread
+the @context is running in.
+
 
 </description>
 <parameters>
@@ -45073,6 +45558,9 @@ removed from their context.
 This does not unref the #GSource: if you still hold a reference, use
 g_source_unref() to drop it.
 
+This function is safe to call from any thread, regardless of which thread
+the #GMainContext is running in.
+
 </description>
 <parameters>
 <parameter name="source">
@@ -45707,6 +46195,41 @@ filled in with pointers to appropriate functions.
 <return></return>
 </function>
 
+<function name="g_source_set_dispose_function">
+<description>
+Set @dispose as dispose function on @source. @dispose will be called once
+the reference count of @source reaches 0 but before any of the state of the
+source is freed, especially before the finalize function is called.
+
+This means that at this point @source is still a valid #GSource and it is
+allow for the reference count to increase again until @dispose returns.
+
+The dispose function can be used to clear any &quot;weak&quot; references to the
+@source in other data structures in a thread-safe way where it is possible
+for another thread to increase the reference count of @source again while
+it is being freed.
+
+The finalize function can not be used for this purpose as at that point
+@source is already partially freed and not valid anymore.
+
+This should only ever be called from #GSource implementations.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="source">
+<parameter_description> A #GSource to set the dispose function on
+</parameter_description>
+</parameter>
+<parameter name="dispose">
+<parameter_description> #GSourceDisposeFunc to set on the source
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="g_source_set_dummy_callback">
 <description>
 Sets a dummy callback for @source. The callback will do nothing, and
@@ -47706,6 +48229,10 @@ calculates the maximum space required and allocates memory to hold
 the result. The returned string should be freed with g_free() when no
 longer needed.
 
+The returned string is guaranteed to be non-NULL, unless @format
+contains `%lc` or `%ls` conversions, which can fail if no multibyte
+representation is available for the given character.
+
 
 </description>
 <parameters>
@@ -47749,6 +48276,10 @@ calculates the maximum space required and allocates memory to hold
 the result. The returned string should be freed with g_free() when
 no longer needed.
 
+The returned string is guaranteed to be non-NULL, unless @format
+contains `%lc` or `%ls` conversions, which can fail if no multibyte
+representation is available for the given character.
+
 See also g_vasprintf(), which offers the same functionality, but
 additionally returns the length of the allocated string.
 
@@ -51297,6 +51828,14 @@ multiple #GThreads.
 To free the struct returned by this function, use g_thread_unref().
 Note that g_thread_join() implicitly unrefs the #GThread as well.
 
+New threads by default inherit their scheduler policy (POSIX) or thread
+priority (Windows) of the thread creating the new thread.
+
+This behaviour changed in GLib 2.64: before threads on Windows were not
+inheriting the thread priority but were spawned with the default priority.
+Starting with GLib 2.64 the behaviour is now consistent between Windows and
+POSIX and all threads inherit their parent thread's priority.
+
 Since: 2.32
 
 </description>
@@ -52165,7 +52704,8 @@ time values to be added to Coordinated Universal Time (UTC) to get
 the local time.
 
 In UNIX, the `TZ` environment variable typically corresponds
-to the name of a file in the zoneinfo database, or string in
+to the name of a file in the zoneinfo database, an absolute path to a file
+somewhere else, or a string in
 &quot;std offset [dst [offset],start[/time],end[/time]]&quot; (POSIX) format.
 There  are  no spaces in the specification. The name of standard
 and daylight savings time zone must be three or more alphabetic
@@ -52352,6 +52892,8 @@ the callback will be invoked in whichever thread is running that main
 context. You can do these steps manually if you need greater control or to
 use a custom main context.
 
+It is safe to call this function from any thread.
+
 The interval given is in terms of monotonic time, not wall clock
 time.  See g_get_monotonic_time().
 
@@ -52445,6 +52987,8 @@ g_timeout_source_new_seconds() and attaches it to the main loop context
 using g_source_attach(). You can do these steps manually if you need
 greater control. Also see g_timeout_add_seconds_full().
 
+It is safe to call this function from any thread.
+
 Note that the first call of the timer may not be precise for timeouts
 of one second. If you need finer precision and have such a timeout,
 you may want to use g_timeout_add() instead.
@@ -52513,6 +53057,8 @@ g_timeout_source_new_seconds() and attaches it to the main loop context
 using g_source_attach(). You can do these steps manually if you need 
 greater control.
 
+It is safe to call this function from any thread.
+
 The interval given is in terms of monotonic time, not wall clock
 time.  See g_get_monotonic_time().
 
@@ -53580,7 +54126,7 @@ is initialized
 
 <function name="g_type_add_interface_dynamic">
 <description>
-Adds the dynamic @interface_type to @instantiable_type. The information
+Adds @interface_type to the dynamic @instantiable_type. The information
 contained in the #GTypePlugin structure pointed to by @plugin
 is used to manage the relationship.
 
@@ -53604,7 +54150,7 @@ is used to manage the relationship.
 
 <function name="g_type_add_interface_static">
 <description>
-Adds the static @interface_type to @instantiable_type.
+Adds @interface_type to the static @instantiable_type.
 The information contained in the #GInterfaceInfo structure
 pointed to by @info is used to manage the relationship.
 
@@ -56154,6 +56700,38 @@ Since: 2.36
 </return>
 </function>
 
+<function name="g_unix_get_passwd_entry">
+<description>
+Get the `passwd` file entry for the given @user_name using `getpwnam_r()`.
+This can fail if the given @user_name doesn’t exist.
+
+The returned `struct passwd` has been allocated using g_malloc() and should
+be freed using g_free(). The strings referenced by the returned struct are
+included in the same allocation, so are valid until the `struct passwd` is
+freed.
+
+This function is safe to call from multiple threads concurrently.
+
+You will need to include `pwd.h` to get the definition of `struct passwd`.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="user_name">
+<parameter_description> the username to get the passwd file entry for
+</parameter_description>
+</parameter>
+<parameter name="error">
+<parameter_description> return location for a #GError, or %NULL
+</parameter_description>
+</parameter>
+</parameters>
+<return> passwd entry, or %NULL on error; free the returned
+value with g_free()
+</return>
+</function>
+
 <function name="g_unix_open_pipe">
 <description>
 Similar to the UNIX pipe() call, but on modern systems like Linux
@@ -57504,7 +58082,9 @@ Since: 2.52
 
 <function name="g_uuid_string_random">
 <description>
-Generates a random UUID (RFC 4122 version 4) as a string.
+Generates a random UUID (RFC 4122 version 4) as a string. It has the same
+randomness guarantees as #GRand, so must not be used for cryptographic
+purposes such as key generation, nonces, salts or one-time pads.
 
 Since: 2.52
 
@@ -62429,6 +63009,10 @@ then it will be set to reflect the error that occurred.
 Officially, the language understood by the parser is &quot;any string
 produced by g_variant_print()&quot;.
 
+There may be implementation specific restrictions on deeply nested values,
+which would result in a %G_VARIANT_PARSE_ERROR_RECURSION error. #GVariant is
+guaranteed to handle nesting up to at least 64 levels.
+
 
 </description>
 <parameters>
@@ -63428,6 +64012,10 @@ This function is similar to g_vsprintf(), except that it allocates a
 string to hold the output, instead of putting the output in a buffer 
 you allocate in advance.
 
+The returned value in @string is guaranteed to be non-NULL, unless
+@format contains `%lc` or `%ls` conversions, which can fail if no
+multibyte representation is available for the given character.
+
 `glib/gprintf.h` must be explicitly included in order to use this function.
 
 Since: 2.4
@@ -63794,6 +64382,29 @@ into the format string (as with printf())
 <return></return>
 </function>
 
+<function name="g_warning_once">
+<description>
+Logs a warning only once.
+
+g_warning_once() calls g_warning() with the passed message the first time
+the statement is executed; subsequent times it is a no-op.
+
+Note! On platforms where the compiler doesn't support variadic macros, the
+warning is printed each time instead of only once.
+
+Since: 2.64
+
+</description>
+<parameters>
+<parameter name="Varargs">
+<parameter_description> format string, followed by parameters to insert
+into the format string (as with printf())
+</parameter_description>
+</parameter>
+</parameters>
+<return></return>
+</function>
+
 <function name="g_weak_ref_clear">
 <description>
 Frees resources associated with a non-statically-allocated #GWeakRef.
diff --git a/glib/src/glib_enums.defs b/glib/src/glib_enums.defs
index b0876fa9..dc17af71 100644
--- a/glib/src/glib_enums.defs
+++ b/glib/src/glib_enums.defs
@@ -2078,7 +2078,8 @@
 ;;   G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN,
 ;;   G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD,
 ;;   G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT,
-;;   G_VARIANT_PARSE_ERROR_VALUE_EXPECTED
+;;   G_VARIANT_PARSE_ERROR_VALUE_EXPECTED,
+;;   G_VARIANT_PARSE_ERROR_RECURSION
 ;; } GVariantParseError;
 
 (define-enum-extended VariantParseError
@@ -2103,6 +2104,7 @@
     '("unknown-keyword" "G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD" "15")
     '("unterminated-string-constant" "G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT" "16")
     '("value-expected" "G_VARIANT_PARSE_ERROR_VALUE_EXPECTED" "17")
+    '("recursion" "G_VARIANT_PARSE_ERROR_RECURSION" "18")
   )
 )
 
diff --git a/glib/src/glib_functions.defs b/glib/src/glib_functions.defs
index 1885ee08..27f8680e 100644
--- a/glib/src/glib_functions.defs
+++ b/glib/src/glib_functions.defs
@@ -1079,6 +1079,7 @@
     '("unknown-keyword" "G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD")
     '("unterminated-string-constant" "G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT")
     '("value-expected" "G_VARIANT_PARSE_ERROR_VALUE_EXPECTED")
+    '("recursion" "G_VARIANT_PARSE_ERROR_RECURSION")
   )
 )
 
@@ -1119,6 +1120,15 @@
   )
 )
 
+(define-method steal
+  (of-object "GArray")
+  (c-name "g_array_steal")
+  (return-type "gpointer")
+  (parameters
+    '("gsize*" "len")
+  )
+)
+
 (define-function g_array_sized_new
   (c-name "g_array_sized_new")
   (is-constructor-of "GArraySized")
@@ -1285,6 +1295,15 @@
   )
 )
 
+(define-method steal
+  (of-object "GPtrArray")
+  (c-name "g_ptr_array_steal")
+  (return-type "gpointer*")
+  (parameters
+    '("gsize*" "len")
+  )
+)
+
 (define-method copy
   (of-object "GPtrArray")
   (c-name "g_ptr_array_copy")
@@ -1520,6 +1539,15 @@
   )
 )
 
+(define-method steal
+  (of-object "GByteArray")
+  (c-name "g_byte_array_steal")
+  (return-type "guint8*")
+  (parameters
+    '("gsize*" "len")
+  )
+)
+
 (define-function g_byte_array_sized_new
   (c-name "g_byte_array_sized_new")
   (is-constructor-of "GByteArraySized")
@@ -6674,6 +6702,15 @@
   )
 )
 
+(define-function g_clear_list
+  (c-name "g_clear_list")
+  (return-type "none")
+  (parameters
+    '("GList**" "list_ptr")
+    '("GDestroyNotify" "destroy")
+  )
+)
+
 
 
 ;; From gmacros.h
@@ -6886,6 +6923,18 @@
   (return-type "GMainContext*")
 )
 
+(define-method pusher_new
+  (of-object "GMainContext")
+  (c-name "g_main_context_pusher_new")
+  (return-type "GMainContextPusher*")
+)
+
+(define-method free
+  (of-object "GMainContextPusher")
+  (c-name "g_main_context_pusher_free")
+  (return-type "none")
+)
+
 (define-function g_main_loop_new
   (c-name "g_main_loop_new")
   (is-constructor-of "GMainLoop")
@@ -6942,6 +6991,15 @@
   )
 )
 
+(define-method set_dispose_function
+  (of-object "GSource")
+  (c-name "g_source_set_dispose_function")
+  (return-type "none")
+  (parameters
+    '("GSourceDisposeFunc" "dispose")
+  )
+)
+
 (define-method ref
   (of-object "GSource")
   (c-name "g_source_ref")
@@ -10747,6 +10805,15 @@
   )
 )
 
+(define-function g_clear_slist
+  (c-name "g_clear_slist")
+  (return-type "none")
+  (parameters
+    '("GSList**" "slist_ptr")
+    '("GDestroyNotify" "destroy")
+  )
+)
+
 
 
 ;; From gspawn.h
@@ -10995,6 +11062,14 @@
   )
 )
 
+(define-function g_fsync
+  (c-name "g_fsync")
+  (return-type "gint")
+  (parameters
+    '("gint" "fd")
+  )
+)
+
 (define-function g_utime
   (c-name "g_utime")
   (return-type "int")
@@ -13863,6 +13938,14 @@
   )
 )
 
+(define-function g_get_os_info
+  (c-name "g_get_os_info")
+  (return-type "gchar*")
+  (parameters
+    '("const-gchar*" "key_name")
+  )
+)
+
 (define-function g_reload_user_special_dirs_cache
   (c-name "g_reload_user_special_dirs_cache")
   (return-type "none")
diff --git a/glib/src/gobject_functions.defs b/glib/src/gobject_functions.defs
index acb86489..77f00960 100644
--- a/glib/src/gobject_functions.defs
+++ b/glib/src/gobject_functions.defs
@@ -2096,7 +2096,7 @@
   (return-type "gboolean")
   (parameters
     '("GParamSpec*" "pspec")
-    '("GValue*" "value")
+    '("const-GValue*" "value")
   )
 )
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]