[MPlayer-cvslog] r25556 - trunk/libmenu/menu_filesel.c

ulion subversion at mplayerhq.hu
Mon Dec 31 02:20:50 CET 2007


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))) {
+      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);



More information about the MPlayer-cvslog mailing list