# HG changeset patch # User joey # Date 1092350001 0 # Node ID 047bbb97301147ef18f166c2b97052c86b0255a0 # Parent e50313e4b899ca7876ec1d96a9dcc55c2b2221d8 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 diff -r e50313e4b899 -r 047bbb973011 mplayer.c --- a/mplayer.c Thu Aug 12 21:48:44 2004 +0000 +++ b/mplayer.c Thu Aug 12 22:33:21 2004 +0000 @@ -619,7 +619,8 @@ 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) { diff -r e50313e4b899 -r 047bbb973011 playtreeparser.c --- a/playtreeparser.c Thu Aug 12 21:48:44 2004 +0000 +++ b/playtreeparser.c Thu Aug 12 22:33:21 2004 +0000 @@ -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 @@ 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 @@ 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);