fix to allow absolute entries in m3u/asx files

parent d88917bb
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* m3u.c: a meta demux to parse m3u and asx playlists * m3u.c: a meta demux to parse m3u and asx playlists
***************************************************************************** *****************************************************************************
* Copyright (C) 2001 VideoLAN * Copyright (C) 2001 VideoLAN
* $Id: m3u.c,v 1.5 2002/11/24 01:29:56 sigmunau Exp $ * $Id: m3u.c,v 1.6 2002/11/24 13:02:13 sigmunau Exp $
* *
* Authors: Sigmund Augdal <sigmunau@idi.ntnu.no> * Authors: Sigmund Augdal <sigmunau@idi.ntnu.no>
* Gildas Bazin <gbazin@netcourrier.com> * Gildas Bazin <gbazin@netcourrier.com>
...@@ -245,24 +245,23 @@ static int Demux ( input_thread_t *p_input ) ...@@ -245,24 +245,23 @@ static int Demux ( input_thread_t *p_input )
/* Check if the line has an absolute or relative path */ /* Check if the line has an absolute or relative path */
psz_name = psz_bol; psz_name = psz_bol;
msg_Dbg( p_input, "this is the current item: <%s>", psz_name );
while( *psz_name && strncmp( psz_name, "://", sizeof("://") - 1 ) ) while( *psz_name && strncmp( psz_name, "://", sizeof("://") - 1 ) )
{ {
psz_name++; psz_name++;
} }
if( !*psz_name ) if( !*psz_name && *psz_bol != '/' )
{ {
/* the line doesn't specify a protocol name. /* the line doesn't specify a protocol name.
* If this line doesn't begin with a '/' then assume the path * If this line doesn't begin with a '/' then assume the path
* is relative to the path of the m3u file. */ * is relative to the path of the m3u file. */
char *psz_path = strdup( p_input->psz_name ); char *psz_path = strdup( p_input->psz_name );
psz_name = strrchr( psz_path, '/' ); psz_name = strrchr( psz_path, '/' );
if( psz_name ) *psz_name = '\0'; if( psz_name ) *psz_name = '\0';
else *psz_path = '\0'; else *psz_path = '\0';
psz_name = malloc( strlen(psz_path) + strlen(psz_bol) + 2 ); psz_name = malloc( strlen(psz_path) + strlen(psz_bol) + 2 );
sprintf( psz_name, "%s/%s", psz_path, psz_bol ); sprintf( psz_name, "%s/%s", psz_path, psz_bol );
free( psz_path ); free( psz_path );
} }
else else
{ {
......
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