[Xfce4-commits] <parole:master> Use g_path_dirname instead of own implementation, fix crash with remember playlist (bug 10166)
Sean Davis
noreply at xfce.org
Mon Jul 8 03:48:01 CEST 2013
Updating branch refs/heads/master
to 034878cebee2aa29d00d259bac53ca1d7181becd (commit)
from b939f43939d56f7b2060658bbf2ccff3250752cd (commit)
commit 034878cebee2aa29d00d259bac53ca1d7181becd
Author: Sean Davis <smd.seandavis at gmail.com>
Date: Sun Jul 7 21:45:53 2013 -0400
Use g_path_dirname instead of own implementation, fix crash with remember playlist (bug 10166)
src/misc/parole-pl-parser.c | 48 ++++++++++--------------------------------
1 files changed, 12 insertions(+), 36 deletions(-)
diff --git a/src/misc/parole-pl-parser.c b/src/misc/parole-pl-parser.c
index 70dde3a..4e483ac 100644
--- a/src/misc/parole-pl-parser.c
+++ b/src/misc/parole-pl-parser.c
@@ -58,8 +58,6 @@ typedef struct
gchar *g_substr (const gchar* string, gint start, gint end);
-gchar *g_char_dirname (const gchar *filename);
-
static gchar*
parole_filename_to_utf8(const gchar* filename)
{
@@ -320,27 +318,6 @@ g_substr (const gchar* string,
return g_utf8_strncpy (output, &string[start], len);
}
-gchar *
-g_char_dirname (const gchar *filename)
-{
- int index;
- const gchar *ptr;
- char *find;
- gchar *f_name;
-
- f_name = g_strdup(filename);
-
- find = "/";
- ptr = strrchr((char *) f_name, find[0]);
-
- if (ptr)
- {
- index = ptr - f_name;
- return g_substr(filename, 0, index);
- }
- return NULL;
-}
-
static GSList *
parole_pl_parser_parse_m3u (const gchar *filename)
{
@@ -355,7 +332,7 @@ parole_pl_parser_parse_m3u (const gchar *filename)
guint i;
file = g_file_new_for_path (filename);
- path = g_char_dirname(filename);
+ path = g_path_get_dirname(filename);
if ( !g_file_load_contents (file, NULL, &contents, &size, NULL, NULL) )
goto out;
@@ -388,27 +365,26 @@ parole_pl_parser_parse_m3u (const gchar *filename)
for ( i = 0; lines[i] != NULL; i++)
{
- if ( lines[i][0] == '\0' || lines[i][0] == '#')
- continue;
+ if ( lines[i][0] == '\0' || lines[i][0] == '#')
+ continue;
- if ( lines[i][0] != '/' )
- {
- pl_filename = g_strjoin("", path, lines[i], NULL);
- list = g_slist_append (list, parole_file_new (pl_filename));
- }
+ if ( lines[i][0] == '/' ) {
+ pl_filename = g_strdup(lines[i]);
+ }
- else {
- list = g_slist_append (list, parole_file_new (lines[i]));
- }
+ else {
+ pl_filename = g_strjoin("", path, lines[i], NULL);
+ }
+
+ list = g_slist_append (list, parole_file_new (pl_filename));
}
if (pl_filename)
g_free(pl_filename);
g_strfreev (lines);
out:
-
+
g_object_unref (file);
-
return list;
}
More information about the Xfce4-commits
mailing list