1
mirror of https://github.com/mpv-player/mpv synced 2024-08-04 14:59:58 +02:00

this patch fixes latest bug, discovered by .so ... (relative filenames &

playlists) This affects also the gui (filenames with space)
patch by Fabian Franz <FabianFranz@gmx.de>


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9302 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
arpi 2003-02-06 20:57:25 +00:00
parent 705681b0db
commit 3011688180
2 changed files with 36 additions and 7 deletions

View File

@ -582,6 +582,8 @@ static int libmpdemux_was_interrupted(int eof) {
int playtree_add_playlist(play_tree_t* entry)
{
play_tree_add_bpf(entry,filename);
#ifdef HAVE_NEW_GUI
if (use_gui) {
if (entry) {
@ -759,9 +761,22 @@ int gui_no_filename=0;
use_gui=0;
}
if (use_gui && playtree_iter){
char* cwd;
// Remove Playtree and Playtree-Iter from memory as its not used by gui
play_tree_iter_free(playtree_iter);
playtree_iter=NULL;
if ((cwd=get_current_dir_name()))
{
cwd=(char*)realloc(cwd, strlen(cwd)+2);
if (cwd)
{
strcat(cwd, "/");
// Prefix relative paths with current working directory
play_tree_add_bpf(playtree, cwd);
free(cwd);
}
}
// Import initital playtree into gui
import_initial_playtree_into_gui(playtree, mconfig, enqueue);
}

View File

@ -493,6 +493,26 @@ play_tree_add_basepath(play_tree_t* pt, char* bp) {
}
}
// Wrapper for play_tree_add_basepath (add base path from file)
void play_tree_add_bpf(play_tree_t* pt, char* filename)
{
char *ls, *file;
if (pt && filename)
{
file = strdup(filename);
if (file)
{
ls = strrchr(file,PATH_SEP);
if(ls) {
ls[1] = '\0';
play_tree_add_basepath(pt,file);
}
free(file);
}
}
}
play_tree_t*
parse_playlist_file(char* file) {
stream_t *stream;
@ -517,13 +537,7 @@ parse_playlist_file(char* file) {
mp_msg(MSGT_PLAYTREE,MSGL_ERR,"Warning error while closing playlist file %s : %s\n",file,strerror(errno));
free_stream(stream);
if(ret) {
char* ls = strrchr(file,PATH_SEP);
if(ls) {
ls[1] = '\0';
play_tree_add_basepath(ret,file);
}
}
play_tree_add_bpf(ret, file);
return ret;