mirror of
https://github.com/mpv-player/mpv
synced 2025-03-08 15:18:00 +00:00
new -menu-chroot option that prevent OSD file selection menu to go to an unwanted location (yeah, chroot ;-))
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23409 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
f5b407c210
commit
c31274e8b4
@ -71,6 +71,7 @@ extern int WinID;
|
|||||||
#ifdef HAVE_MENU
|
#ifdef HAVE_MENU
|
||||||
extern int menu_startup;
|
extern int menu_startup;
|
||||||
extern int menu_keepdir;
|
extern int menu_keepdir;
|
||||||
|
extern char *menu_chroot;
|
||||||
#ifdef USE_FRIBIDI
|
#ifdef USE_FRIBIDI
|
||||||
extern char *menu_fribidi_charset;
|
extern char *menu_fribidi_charset;
|
||||||
extern int menu_flip_hebrew;
|
extern int menu_flip_hebrew;
|
||||||
@ -298,6 +299,7 @@ m_option_t mplayer_opts[]={
|
|||||||
{"menu-cfg", &menu_cfg, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL},
|
{"menu-cfg", &menu_cfg, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL},
|
||||||
{"menu-startup", &menu_startup, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
|
{"menu-startup", &menu_startup, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
|
||||||
{"menu-keepdir", &menu_keepdir, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
|
{"menu-keepdir", &menu_keepdir, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
|
||||||
|
{"menu-chroot", &menu_chroot, CONF_TYPE_STRING, 0, 0, 0, NULL},
|
||||||
#ifdef USE_FRIBIDI
|
#ifdef USE_FRIBIDI
|
||||||
{"menu-fribidi-charset", &menu_fribidi_charset, CONF_TYPE_STRING, 0, 0, 0, NULL},
|
{"menu-fribidi-charset", &menu_fribidi_charset, CONF_TYPE_STRING, 0, 0, 0, NULL},
|
||||||
{"menu-flip-hebrew", &menu_flip_hebrew, CONF_TYPE_FLAG, 0, 0, 1, NULL},
|
{"menu-flip-hebrew", &menu_flip_hebrew, CONF_TYPE_FLAG, 0, 0, 1, NULL},
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#define MENU_KEEP_PATH "/tmp/mp_current_path"
|
#define MENU_KEEP_PATH "/tmp/mp_current_path"
|
||||||
|
|
||||||
int menu_keepdir = 0;
|
int menu_keepdir = 0;
|
||||||
|
char *menu_chroot = NULL;
|
||||||
|
|
||||||
struct list_entry_s {
|
struct list_entry_s {
|
||||||
struct list_entry p;
|
struct list_entry p;
|
||||||
@ -222,6 +223,12 @@ static int open_dir(menu_t* menu,char* args) {
|
|||||||
while ((dp = readdir(dirp)) != NULL) {
|
while ((dp = readdir(dirp)) != NULL) {
|
||||||
if(dp->d_name[0] == '.' && strcmp(dp->d_name,"..") != 0)
|
if(dp->d_name[0] == '.' && strcmp(dp->d_name,"..") != 0)
|
||||||
continue;
|
continue;
|
||||||
|
if (menu_chroot && !strcmp (dp->d_name,"..")) {
|
||||||
|
int len = strlen (menu_chroot);
|
||||||
|
if ((strlen (mpriv->dir) == len || strlen (mpriv->dir) == len + 1)
|
||||||
|
&& !strncmp (mpriv->dir, menu_chroot, len))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
mylstat(args,dp->d_name,&st);
|
mylstat(args,dp->d_name,&st);
|
||||||
if (file_filter && extensions && !S_ISDIR(st.st_mode)) {
|
if (file_filter && extensions && !S_ISDIR(st.st_mode)) {
|
||||||
if((ext = strrchr(dp->d_name,'.')) == NULL)
|
if((ext = strrchr(dp->d_name,'.')) == NULL)
|
||||||
|
Loading…
Reference in New Issue
Block a user