From ec187ec3a0e58da090184cbcdfc592d821291c45 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Rafa=C3=ABl=20Carr=C3=A9?= Date: Fri, 12 Oct 2007 14:20:48 +0000 Subject: [PATCH] xspf: try to produce valid XSPF files (there's still a problem with URI %-encoding) --- modules/demux/playlist/xspf.c | 4 +++- modules/misc/playlist/xspf.c | 21 ++++++++++----------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/modules/demux/playlist/xspf.c b/modules/demux/playlist/xspf.c index 1bdf9e118d..50c88bfb3d 100644 --- a/modules/demux/playlist/xspf.c +++ b/modules/demux/playlist/xspf.c @@ -636,7 +636,9 @@ static vlc_bool_t set_item_info SIMPLE_INTERFACE } else if( !strcmp( psz_name, "image" ) ) { - input_item_SetArtURL( p_input, psz_value ); + const char *psz_uri = decode_URI_duplicate( psz_value ); + input_item_SetArtURL( p_input, psz_uri ); + free( psz_uri ); } return VLC_TRUE; } diff --git a/modules/misc/playlist/xspf.c b/modules/misc/playlist/xspf.c index df7ada0801..5f337d1376 100644 --- a/modules/misc/playlist/xspf.c +++ b/modules/misc/playlist/xspf.c @@ -84,7 +84,7 @@ int E_(xspf_export_playlist)( vlc_object_t *p_this ) fprintf( p_export->p_file, "\t\n" ); /* export the tree structure in */ - fprintf( p_export->p_file, "\t\n" ); + fprintf( p_export->p_file, "\t\n" ); i_count = 0; for( i = 0; i < p_node->i_children; i++ ) { @@ -191,12 +191,11 @@ static void xspf_export_item( playlist_item_t *p_item, FILE *p_file, /* -> the track number */ psz = input_item_GetTrackNum( p_item->p_input ); if( psz == NULL ) psz = strdup( "" ); - if( psz ) + if( psz && *psz ) { - if( *psz ) - { - fprintf( p_file, "\t\t\t%i\n", atoi( psz ) ); - } + int i_tracknum = atoi( psz ); + if( i_tracknum > 0 ) + fprintf( p_file, "\t\t\t%i\n", i_tracknum ); } free( psz ); @@ -213,13 +212,13 @@ static void xspf_export_item( playlist_item_t *p_item, FILE *p_file, psz = input_item_GetArtURL( p_item->p_input ); if( psz == NULL ) psz = strdup( "" ); - psz_temp = convert_xml_special_chars( psz ); - free( psz ); - if( !EMPTY_STR( psz_temp ) ) + if( !EMPTY_STR( psz ) ) { - fprintf( p_file, "\t\t\t%s\n", psz_temp ); + psz_uri = assertUTF8URI( psz ); + fprintf( p_file, "\t\t\t%s\n", psz_uri ); + free( psz_uri ); } - free( psz_temp ); + free( psz ); xspfexportitem_end: /* -> the duration */ -- 2.20.1