From e94a5f4f8394fe6a7160850c12ea8079215e4323 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 25 Jan 2012 07:32:39 -0500 Subject: [PATCH] GKeyFile: make list separators effective again We must preserve the list_separator across clear;init sequences. --- glib/gkeyfile.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/glib/gkeyfile.c b/glib/gkeyfile.c index 440cc5662..33b3c36bb 100644 --- a/glib/gkeyfile.c +++ b/glib/gkeyfile.c @@ -745,7 +745,8 @@ g_key_file_load_from_fd (GKeyFile *key_file, gssize bytes_read; struct stat stat_buf; gchar read_buf[4096]; - + gchar list_separator; + if (fstat (fd, &stat_buf) < 0) { g_set_error_literal (error, G_FILE_ERROR, @@ -762,8 +763,10 @@ g_key_file_load_from_fd (GKeyFile *key_file, return FALSE; } + list_separator = key_file->list_separator; g_key_file_clear (key_file); g_key_file_init (key_file); + key_file->list_separator = list_separator; key_file->flags = flags; do @@ -879,6 +882,7 @@ g_key_file_load_from_data (GKeyFile *key_file, GError **error) { GError *key_file_error = NULL; + gchar list_separator; g_return_val_if_fail (key_file != 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) length = strlen (data); + list_separator = key_file->list_separator; g_key_file_clear (key_file); g_key_file_init (key_file); + key_file->list_separator = list_separator; key_file->flags = flags; g_key_file_parse_data (key_file, data, length, &key_file_error);