Updating branch refs/heads/master to 896a6127b6d8be738ac8f77f2223f5543f324490 (commit) from 17c775f39484400fc56c129fcf8ed7aabb8e90ab (commit)
commit 896a6127b6d8be738ac8f77f2223f5543f324490 Author: Sean Davis <smd.seanda...@gmail.com> Date: Tue Jan 22 21:56:11 2013 -0500 Fix playlist storage in UTF-8. src/misc/parole-pl-parser.c | 37 +++++++++++++++++++++++++++++++++---- 1 files changed, 33 insertions(+), 4 deletions(-) diff --git a/src/misc/parole-pl-parser.c b/src/misc/parole-pl-parser.c index d846ac0..e7f992f 100644 --- a/src/misc/parole-pl-parser.c +++ b/src/misc/parole-pl-parser.c @@ -56,6 +56,20 @@ typedef struct } ParoleParserData; +static gchar* +parole_filename_to_utf8(const gchar* filename) +{ + gsize read, written; + + gchar *utf8; + gchar *tmp = g_strdup(filename); + tmp = g_strconcat(tmp, "\0", NULL); + + utf8 = g_filename_to_utf8(tmp, -1, &read, &written, NULL); + g_free(tmp); + return utf8; +} + static void parole_xspf_xml_start (GMarkupParseContext *context, const gchar *element_name, const gchar **attribute_names, const gchar **attribute_values, @@ -486,18 +500,33 @@ parole_pl_parser_save_m3u (FILE *f, GSList *files) guint len; guint i; + gchar *display_name = NULL; + gchar *file_name = NULL; + fputs ("#EXTM3U\n\n", f); len = g_slist_length (files); for ( i = 0; i < len; i++) { - ParoleFile *file; - file = g_slist_nth_data (files, i); - fprintf (f, "#EXTINF:-1,%s\n", parole_file_get_display_name (file)); - fprintf (f, "%s\n\n", parole_file_get_file_name (file)); + ParoleFile *file; + file = g_slist_nth_data (files, i); + display_name = g_strdup(parole_file_get_display_name (file)); + file_name = parole_filename_to_utf8(parole_file_get_file_name (file)); + + if (display_name && file_name) + { + fprintf (f, "#EXTINF:-1,%s\n", display_name); + fprintf (f, "%s\n\n", file_name); + } } + if (display_name) + g_free(display_name); + + if (file_name) + g_free(file_name); + return TRUE; } _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits