mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 03:16:17 +01:00
Collation keys are not encoded in UTF-8
The value returned when generating a collation key is an opaque binary blob that is only meant to be used for byte-wise comparisons; we should not imply it's a nul-terminated, UTF-8 string. This is especially true for language bindings that try to convert C strings returned by GLib into UTF-8 encoded strings. Ideally, the collation functions should return a byte array, but the closest thing we have is the OS native encoding type that we use for paths and environment variables. See: https://github.com/gtk-rs/gtk-rs-core/issues/1504
This commit is contained in:
parent
2ec62d638d
commit
0630b8145d
@ -375,8 +375,13 @@ carbon_collate_key_for_filename (const gchar *str,
|
||||
*
|
||||
* Note that this function depends on the [current locale][setlocale].
|
||||
*
|
||||
* Returns: a newly allocated string. This string should
|
||||
* be freed with g_free() when you are done with it.
|
||||
* Note that the returned string is not guaranteed to be in any
|
||||
* encoding, especially UTF-8. The returned value is meant to be
|
||||
* used only for comparisons.
|
||||
*
|
||||
* Returns: (transfer full) (type filename): a newly allocated string.
|
||||
* The contents of the string are only meant to be used when sorting.
|
||||
* This string should be freed with g_free() when you are done with it.
|
||||
**/
|
||||
gchar *
|
||||
g_utf8_collate_key (const gchar *str,
|
||||
@ -504,8 +509,13 @@ g_utf8_collate_key (const gchar *str,
|
||||
*
|
||||
* Note that this function depends on the [current locale][setlocale].
|
||||
*
|
||||
* Returns: a newly allocated string. This string should
|
||||
* be freed with g_free() when you are done with it.
|
||||
* Note that the returned string is not guaranteed to be in any
|
||||
* encoding, especially UTF-8. The returned value is meant to be
|
||||
* used only for comparisons.
|
||||
*
|
||||
* Returns: (transfer full) (type filename): a newly allocated string.
|
||||
* The contents of the string are only meant to be used when sorting.
|
||||
* This string should be freed with g_free() when you are done with it.
|
||||
*
|
||||
* Since: 2.8
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user