# HG changeset patch # User William Pitcock # Date 1184318257 18000 # Node ID 551f76613eb263812196620c2f49ab6655fd0b7a # Parent 9addc8bc98d6d336b5e47c09753482ea4cf4a4fb Fix m3u loading for real. diff -r 9addc8bc98d6 -r 551f76613eb2 src/m3u/m3u.c --- a/src/m3u/m3u.c Fri Jul 13 03:01:57 2007 +0100 +++ b/src/m3u/m3u.c Fri Jul 13 04:17:37 2007 -0500 @@ -85,10 +85,16 @@ gint ext_len = -1; gboolean is_extm3u = FALSE; Playlist *playlist = playlist_get_active(); + gchar *uri; + + uri = g_filename_to_uri(filename, NULL, NULL); - if ((file = vfs_fopen(filename, "rb")) == NULL) + if ((file = vfs_fopen(uri ? uri : filename, "rb")) == NULL) return; + if (uri) + g_free(uri); + line = g_malloc(line_len); while (vfs_fgets(line, line_len, file)) { while (strlen(line) == line_len - 1 && line[strlen(line) - 1] != '\n') { @@ -126,7 +132,11 @@ ext_info = NULL; } - playlist_load_ins_file(playlist, line, filename, pos, ext_title, ext_len); + uri = g_filename_to_uri(line, NULL, NULL); + playlist_load_ins_file(playlist, uri ? uri : line, filename, pos, ext_title, ext_len); + + if (uri) + g_free(uri); str_replace_in(&ext_title, NULL); ext_len = -1; @@ -146,6 +156,7 @@ gchar *outstr = NULL; VFSFile *file; Playlist *playlist = playlist_get_active(); + gchar *fn; g_return_if_fail(filename != NULL); g_return_if_fail(playlist != NULL); @@ -180,7 +191,11 @@ } } - vfs_fprintf(file, "%s\n", entry->filename); + fn = g_filename_from_uri(entry->filename, NULL, NULL); + vfs_fprintf(file, "%s\n", fn ? fn : entry->filename); + + if (fn) + g_free(fn); } PLAYLIST_UNLOCK(playlist->mutex);