Commit 8cc57c7a authored by Rafaël Carré's avatar Rafaël Carré

xspf: fix nodes encoding. big up to yoannp for fully nested xspf !

parent 724f4009
...@@ -635,7 +635,7 @@ static vlc_bool_t set_item_info SIMPLE_INTERFACE ...@@ -635,7 +635,7 @@ static vlc_bool_t set_item_info SIMPLE_INTERFACE
} }
else if( !strcmp( psz_name, "image" ) ) else if( !strcmp( psz_name, "image" ) )
{ {
const char *psz_uri = decode_URI_duplicate( psz_value ); char *psz_uri = decode_URI_duplicate( psz_value );
input_item_SetArtURL( p_input, psz_uri ); input_item_SetArtURL( p_input, psz_uri );
free( psz_uri ); free( psz_uri );
} }
...@@ -676,7 +676,7 @@ static vlc_bool_t parse_extension_node COMPLEX_INTERFACE ...@@ -676,7 +676,7 @@ static vlc_bool_t parse_extension_node COMPLEX_INTERFACE
/* attribute: title */ /* attribute: title */
if( !strcmp( psz_name, "title" ) ) if( !strcmp( psz_name, "title" ) )
{ {
psz_title = unescape_URI_duplicate( psz_value ); psz_title = decode_URI_duplicate( psz_value );
} }
/* extension attribute: application */ /* extension attribute: application */
else if( !strcmp( psz_name, "application" ) ) else if( !strcmp( psz_name, "application" ) )
...@@ -698,9 +698,8 @@ static vlc_bool_t parse_extension_node COMPLEX_INTERFACE ...@@ -698,9 +698,8 @@ static vlc_bool_t parse_extension_node COMPLEX_INTERFACE
msg_Warn( p_demux, "<node> requires \"title\" attribute" ); msg_Warn( p_demux, "<node> requires \"title\" attribute" );
return VLC_FALSE; return VLC_FALSE;
} }
p_new_input = input_ItemNewWithType( VLC_OBJECT( p_playlist ), "",
p_new_input = input_ItemNewWithType( p_playlist, "", psz_title, psz_title, 0, NULL, -1, ITEM_TYPE_DIRECTORY );
0, NULL, -1, ITEM_TYPE_DIRECTORY );
if( p_new_input ) if( p_new_input )
{ {
input_ItemAddSubItem( p_input_item, p_new_input ); input_ItemAddSubItem( p_input_item, p_new_input );
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <vlc_input.h> #include <vlc_input.h>
#include <vlc_meta.h> #include <vlc_meta.h>
#include <vlc_strings.h> #include <vlc_strings.h>
#include <vlc_url.h>
#include <vlc_charset.h> #include <vlc_charset.h>
#include "xspf.h" #include "xspf.h"
...@@ -250,7 +251,7 @@ static void xspf_extension_item( playlist_item_t *p_item, FILE *p_file, ...@@ -250,7 +251,7 @@ static void xspf_extension_item( playlist_item_t *p_item, FILE *p_file,
{ {
int i; int i;
char *psz_temp; char *psz_temp;
psz_temp = convert_xml_special_chars( p_item->p_input->psz_name ); psz_temp = encode_URI_component( p_item->p_input->psz_name );
fprintf( p_file, "\t\t<node title=\"%s\">\n", fprintf( p_file, "\t\t<node title=\"%s\">\n",
*psz_temp ? psz_temp : "" ); *psz_temp ? psz_temp : "" );
free( psz_temp ); free( psz_temp );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment