1
mirror of https://github.com/mpv-player/mpv synced 2024-12-28 06:03:45 +01:00

windows path seperator fixes

mp_basename now looks for \ and / both
new playlist parsing:
  /path/to/thing is treated as a full path
  c:\windows is treated as a full path
  \windows is "near-full" and we prepend drive letter
  file.avi is relative and we prepend path to playlist


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13011 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
joey 2004-08-12 22:33:21 +00:00
parent 9dc5c04bce
commit eabfd291c4
2 changed files with 13 additions and 9 deletions

View File

@ -619,7 +619,8 @@ static int libmpdemux_was_interrupted(int eof) {
return eof;
}
#define mp_basename(s) (strrchr(s,'/')==NULL?(char*)s:(strrchr(s,'/')+1))
#define mp_basename2(s) (strrchr(s,'/')==NULL?(char*)s:(strrchr(s,'/')+1))
#define mp_basename(s) (strrchr(s,'\\')==NULL?(mp_basename2(s)):(strrchr(s,'\\')+1))
int playtree_add_playlist(play_tree_t* entry)
{

View File

@ -20,12 +20,6 @@
#include "mp_msg.h"
#if defined(__CYGWIN__) || defined(__OS2__)
#define PATH_SEP '\\'
#else
#define PATH_SEP '/'
#endif
extern play_tree_t*
asx_parser_build_tree(char* buffer, int ref);
@ -630,8 +624,16 @@ play_tree_add_basepath(play_tree_t* pt, char* bp) {
for(i = 0 ; pt->files[i] != NULL ; i++) {
fl = strlen(pt->files[i]);
if(fl <= 0 || pt->files[i][0] == PATH_SEP || strstr(pt->files[i],"://"))
// if we find url:// or X:\ at the beginning, don't mangle it.
if(fl <= 0 || strstr(pt->files[i],"://") || strstr(pt->files[i],":\\") == pt->files[i] + 1)
continue;
// if the path begins with \ then prepend drive letter to it.
if (pt->files[i][0] == '\\') {
pt->files[i] = (char*)realloc(pt->files[i],2+fl+1);
memmove(pt->files[i] + 2,pt->files[i],fl+1);
memcpy(pt->files[i],bp,2);
return;
}
pt->files[i] = (char*)realloc(pt->files[i],bl+fl+1);
memmove(pt->files[i] + bl,pt->files[i],fl+1);
memcpy(pt->files[i],bp,bl);
@ -648,7 +650,8 @@ void play_tree_add_bpf(play_tree_t* pt, char* filename)
file = strdup(filename);
if (file)
{
ls = strrchr(file,PATH_SEP);
ls = strrchr(file,'/');
if(!ls) ls = strrchr(file,'\\');
if(ls) {
ls[1] = '\0';
play_tree_add_basepath(pt,file);