mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 11:26:16 +01:00
gvariant: Fix documentation for g_variant_get_string() to match reality
The implementation didn’t match the documentation. The implementation has the right behaviour (wrt not allowing embedded nuls, validating UTF-8, and returning a default value if an invalid string is detected), so keep that and fix the documentation to match. The [`GVariant` specification](https://people.gnome.org/~desrt/gvariant-serialisation.pdf) is incorrect on this point, and the implementation of GLib was purposefully changed after the specification was published (but before `GVariant` became API-stable in GLib). The behaviour in GLib (specifically concerning all strings being in UTF-8) is consistent with D-Bus. Spotted by William Manley. Signed-off-by: Philip Withnall <withnall@endlessm.com>
This commit is contained in:
parent
c6ccff0ef4
commit
1519962792
@ -1440,11 +1440,15 @@ g_variant_is_signature (const gchar *string)
|
||||
* type. This includes the types %G_VARIANT_TYPE_STRING,
|
||||
* %G_VARIANT_TYPE_OBJECT_PATH and %G_VARIANT_TYPE_SIGNATURE.
|
||||
*
|
||||
* The string will always be UTF-8 encoded, and will never be %NULL.
|
||||
* The string will always be UTF-8 encoded, will never be %NULL, and will never
|
||||
* contain nul bytes.
|
||||
*
|
||||
* If @length is non-%NULL then the length of the string (in bytes) is
|
||||
* returned there. For trusted values, this information is already
|
||||
* known. For untrusted values, a strlen() will be performed.
|
||||
* known. Untrusted values will be validated and, if valid, a strlen() will be
|
||||
* performed. If invalid, a default value will be returned — for
|
||||
* %G_VARIANT_TYPE_OBJECT_PATH, this is `"/"`, and for other types it is the
|
||||
* empty string.
|
||||
*
|
||||
* It is an error to call this function with a @value of any type
|
||||
* other than those three.
|
||||
|
Loading…
Reference in New Issue
Block a user