Mercurial > mplayer.hg
changeset 13010:047bbb973011
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
author | joey |
---|---|
date | Thu, 12 Aug 2004 22:33:21 +0000 |
parents | e50313e4b899 |
children | 5dc4583b1901 |
files | mplayer.c playtreeparser.c |
diffstat | 2 files changed, 13 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- 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) {
--- 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);