mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-22 00:48:53 +02:00
GKeyFile: make list separators effective again
We must preserve the list_separator across clear;init sequences.
This commit is contained in:
@@ -745,7 +745,8 @@ g_key_file_load_from_fd (GKeyFile *key_file,
|
|||||||
gssize bytes_read;
|
gssize bytes_read;
|
||||||
struct stat stat_buf;
|
struct stat stat_buf;
|
||||||
gchar read_buf[4096];
|
gchar read_buf[4096];
|
||||||
|
gchar list_separator;
|
||||||
|
|
||||||
if (fstat (fd, &stat_buf) < 0)
|
if (fstat (fd, &stat_buf) < 0)
|
||||||
{
|
{
|
||||||
g_set_error_literal (error, G_FILE_ERROR,
|
g_set_error_literal (error, G_FILE_ERROR,
|
||||||
@@ -762,8 +763,10 @@ g_key_file_load_from_fd (GKeyFile *key_file,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
list_separator = key_file->list_separator;
|
||||||
g_key_file_clear (key_file);
|
g_key_file_clear (key_file);
|
||||||
g_key_file_init (key_file);
|
g_key_file_init (key_file);
|
||||||
|
key_file->list_separator = list_separator;
|
||||||
key_file->flags = flags;
|
key_file->flags = flags;
|
||||||
|
|
||||||
do
|
do
|
||||||
@@ -879,6 +882,7 @@ g_key_file_load_from_data (GKeyFile *key_file,
|
|||||||
GError **error)
|
GError **error)
|
||||||
{
|
{
|
||||||
GError *key_file_error = NULL;
|
GError *key_file_error = NULL;
|
||||||
|
gchar list_separator;
|
||||||
|
|
||||||
g_return_val_if_fail (key_file != NULL, FALSE);
|
g_return_val_if_fail (key_file != NULL, FALSE);
|
||||||
g_return_val_if_fail (data != NULL, FALSE);
|
g_return_val_if_fail (data != NULL, FALSE);
|
||||||
@@ -887,8 +891,10 @@ g_key_file_load_from_data (GKeyFile *key_file,
|
|||||||
if (length == (gsize)-1)
|
if (length == (gsize)-1)
|
||||||
length = strlen (data);
|
length = strlen (data);
|
||||||
|
|
||||||
|
list_separator = key_file->list_separator;
|
||||||
g_key_file_clear (key_file);
|
g_key_file_clear (key_file);
|
||||||
g_key_file_init (key_file);
|
g_key_file_init (key_file);
|
||||||
|
key_file->list_separator = list_separator;
|
||||||
key_file->flags = flags;
|
key_file->flags = flags;
|
||||||
|
|
||||||
g_key_file_parse_data (key_file, data, length, &key_file_error);
|
g_key_file_parse_data (key_file, data, length, &key_file_error);
|
||||||
|
Reference in New Issue
Block a user