.ventoyignore also works in F2 browser mode.

This commit is contained in:
longpanda 2022-06-30 23:28:14 +08:00
parent 3c621e4aca
commit 0b81845e42
1 changed files with 29 additions and 0 deletions

View File

@ -171,6 +171,11 @@ static int ventoy_browser_iterate_partition(struct grub_disk *disk, const grub_p
fs->fs_label(dev, &Label); fs->fs_label(dev, &Label);
if (ventoy_check_file_exist("(%s)/.ventoyignore", partname))
{
return 0;
}
if (g_tree_view_menu_style == 0) if (g_tree_view_menu_style == 0)
{ {
grub_snprintf(title, sizeof(title), "%-10s (%s,%s%d) [%s] %s %s", grub_snprintf(title, sizeof(title), "%-10s (%s,%s%d) [%s] %s %s",
@ -311,6 +316,25 @@ static int ventoy_browser_valid_filename(const char *filename, int len, int *typ
return 1; return 1;
} }
static int ventoy_browser_check_ignore(const char *device, const char *root, const char *dir)
{
grub_file_t file;
char fullpath[1024] = {0};
grub_snprintf(fullpath, 1023, "(%s)%s/%s/.ventoyignore", device, root, dir);
file = grub_file_open(fullpath, GRUB_FILE_TYPE_NONE);
if (!file)
{
grub_errno = 0;
return 0;
}
else
{
grub_file_close(file);
return 1;
}
}
static int ventoy_browser_iterate_dir(const char *filename, const struct grub_dirhook_info *info, void *data) static int ventoy_browser_iterate_dir(const char *filename, const struct grub_dirhook_info *info, void *data)
{ {
int type; int type;
@ -328,6 +352,11 @@ static int ventoy_browser_iterate_dir(const char *filename, const struct grub_di
return 0; return 0;
} }
if (ventoy_browser_check_ignore(g_menu_device, g_menu_path_buf, filename))
{
return 0;
}
node = grub_zalloc(sizeof(browser_node)); node = grub_zalloc(sizeof(browser_node));
if (!node) if (!node)
{ {