GKeyFile: make list separators effective again

We must preserve the list_separator across clear;init
sequences.
This commit is contained in:
Matthias Clasen 2012-01-25 07:32:39 -05:00
parent aea9951ef0
commit e94a5f4f83

View File

@ -745,6 +745,7 @@ 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)
{ {
@ -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);