[MPlayer-cvslog] r25556 - trunk/libmenu/menu_filesel.c
Ulion
ulion2002 at gmail.com
Thu Jan 10 13:47:47 CET 2008
2008/1/9, Zuxy Meng <zuxy.meng at gmail.com>:
> 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?
OK, that part of code was denied now. Then you may implement it in a
better way if you'd like to. By now I have little time work on it and
also have no idea of a better implementation.
--
Ulion
More information about the MPlayer-cvslog
mailing list