[MPlayer-cvslog] r25556 - trunk/libmenu/menu_filesel.c
Zuxy Meng
zuxy.meng at gmail.com
Wed Jan 9 14:02:24 CET 2008
Hi,
"ulion" <subversion at mplayerhq.hu> 写入消息新闻:20071231012050.DE8553B1ED at natsuki.mplayerhq.hu...
> Author: ulion
> Date: Mon Dec 31 02:20:50 2007
> New Revision: 25556
>
> Log:
> Default use the dir where the current playing file located if path not set.
>
>
> Modified:
> trunk/libmenu/menu_filesel.c
>
> Modified: trunk/libmenu/menu_filesel.c
> ==============================================================================
> --- trunk/libmenu/menu_filesel.c (original)
> +++ trunk/libmenu/menu_filesel.c Mon Dec 31 02:20:50 2007
> @@ -31,6 +31,7 @@
>
> int menu_keepdir = 0;
> char *menu_chroot = NULL;
> +extern char *filename;
>
> struct list_entry_s {
> struct list_entry p;
> @@ -425,8 +426,21 @@ static int open_fs(menu_t* menu, char* a
> }
>
> getcwd(wd,PATH_MAX);
> - if (!path || path[0] == '\0')
> - path = wd;
> + if (!path || path[0] == '\0') {
> + char *slash = NULL;
> + if (filename && !strstr(filename, "://") && (path=realpath(filename, b))) {
realpath() breaks MinGW build and what's more, it's by design unsafe. Please find a better way to deal with this.
> + slash = strrchr(path, '/');
> +#if defined(__MINGW32__) || defined(__CYGWIN__)
> + // FIXME: Do we need and can convert all '\\' in path to '/' on win32?
> + if (!slash)
> + slash = strrchr(path, '\\');
> +#endif
> + }
> + if (slash)
> + slash[1] = '\0';
> + else
> + path = wd;
> + }
> if (path[0] != '/') {
> if(path[strlen(path)-1] != '/')
> snprintf(b,sizeof(b),"%s/%s/",wd,path);
Anyway, has this patch been reviewed ever?
--
Zuxy
More information about the MPlayer-cvslog
mailing list