VTOY_JSON_FMT_SINT("invalid_config", g_sysinfo.invalid_config);
g_sysinfo.invalid_config = 0;
-
-
+
#if defined(_MSC_VER) || defined(WIN32)
VTOY_JSON_FMT_STRN("os", "windows");
#else
VTOY_JSON_FMT_BEGIN(pos, JSON_BUFFER, JSON_BUF_MAX);
VTOY_JSON_FMT_OBJ_BEGIN();
VTOY_JSON_FMT_SINT("status", 0);
+ VTOY_JSON_FMT_SINT("save_error", g_sysinfo.config_save_error);
+ g_sysinfo.config_save_error = 0;
VTOY_JSON_FMT_OBJ_END();
VTOY_JSON_FMT_END(pos);
{
memset(data, 0, sizeof(data_control));
- data->default_menu_mode = 1;
+ data->secondary_menu = 1;
data->filter_dot_underscore = 1;
- data->treeview_style = 1;
data->max_search_level = -1;
data->menu_timeout = 0;
+ data->secondary_menu_timeout = 0;
strlcpy(data->default_kbd_layout, "QWERTY_USA");
strlcpy(data->help_text_language, "en_US");
data1->filter_vtoy != data2->filter_vtoy ||
data1->win11_bypass_check != data2->win11_bypass_check ||
data1->linux_remount != data2->linux_remount ||
- data1->menu_timeout != data2->menu_timeout)
+ data1->secondary_menu != data2->secondary_menu ||
+ data1->menu_timeout != data2->menu_timeout ||
+ data1->secondary_menu_timeout != data2->secondary_menu_timeout)
{
return 1;
}
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_FILE_FLT_VTOY", filter_vtoy);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_WIN11_BYPASS_CHECK", win11_bypass_check);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_LINUX_REMOUNT", linux_remount);
+ VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SECONDARY_BOOT_MENU", secondary_menu);
VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_MENU_TIMEOUT", menu_timeout);
+ VTOY_JSON_FMT_CTRL_INT(L2, "VTOY_SECONDARY_TIMEOUT", secondary_menu_timeout);
VTOY_JSON_FMT_CTRL_STRN(L2, "VTOY_DEFAULT_KBD_LAYOUT", default_kbd_layout);
VTOY_JSON_FMT_CTRL_STRN(L2, "VTOY_HELP_TXT_LANGUAGE", help_text_language);
VTOY_JSON_FMT_SINT("filter_vtoy", ctrl->filter_vtoy);
VTOY_JSON_FMT_SINT("win11_bypass_check", ctrl->win11_bypass_check);
VTOY_JSON_FMT_SINT("linux_remount", ctrl->linux_remount);
+ VTOY_JSON_FMT_SINT("secondary_menu", ctrl->secondary_menu);
VTOY_JSON_FMT_SINT("menu_timeout", ctrl->menu_timeout);
+ VTOY_JSON_FMT_SINT("secondary_menu_timeout", ctrl->secondary_menu_timeout);
VTOY_JSON_FMT_STRN("default_kbd_layout", ctrl->default_kbd_layout);
VTOY_JSON_FMT_STRN("help_text_language", ctrl->help_text_language);
VTOY_JSON_INT("filter_vtoy", ctrl->filter_vtoy);
VTOY_JSON_INT("win11_bypass_check", ctrl->win11_bypass_check);
VTOY_JSON_INT("linux_remount", ctrl->linux_remount);
+ VTOY_JSON_INT("secondary_menu", ctrl->secondary_menu);
VTOY_JSON_INT("menu_timeout", ctrl->menu_timeout);
+ VTOY_JSON_INT("secondary_menu_timeout", ctrl->secondary_menu_timeout);
VTOY_JSON_STR("default_image", ctrl->default_image);
VTOY_JSON_STR("default_search_root", ctrl->default_search_root);
int ventoy_data_save_image_list(data_image_list *data, const char *title, char *buf, int buflen)
{
int pos = 0;
+ int prelen;
path_node *node = NULL;
+ char newtitle[64];
(void)title;
{
return 0;
}
-
+
+ prelen = (int)strlen("image_list");
+
VTOY_JSON_FMT_BEGIN(pos, buf, buflen);
if (data->type == 0)
{
- VTOY_JSON_FMT_KEY_L(L1, "image_list");
+ scnprintf(newtitle, sizeof(newtitle), "image_list%s", title + prelen);
}
else
{
- VTOY_JSON_FMT_KEY_L(L1, "image_blacklist");
+ scnprintf(newtitle, sizeof(newtitle), "image_blacklist%s", title + prelen);
}
+ VTOY_JSON_FMT_KEY_L(L1, newtitle);
VTOY_JSON_FMT_ARY_BEGIN_N();
if (ret)
{
vlog("Failed to write ventoy.json file.\n");
+ g_sysinfo.config_save_error = 1;
}
return 0;
{
CONTROL_PARSE_INT(child, data->linux_remount);
}
+ else if (strcmp(child->pcName, "VTOY_SECONDARY_BOOT_MENU") == 0)
+ {
+ CONTROL_PARSE_INT(child, data->secondary_menu);
+ }
else if (strcmp(child->pcName, "VTOY_TREE_VIEW_MENU_STYLE") == 0)
{
CONTROL_PARSE_INT(child, data->treeview_style);
{
data->menu_timeout = (int)strtol(child->unData.pcStrVal, NULL, 10);
}
+ else if (strcmp(child->pcName, "VTOY_SECONDARY_TIMEOUT") == 0)
+ {
+ data->secondary_menu_timeout = (int)strtol(child->unData.pcStrVal, NULL, 10);
+ }
else if (strcmp(child->pcName, "VTOY_VHD_NO_WARNING") == 0)
{
CONTROL_PARSE_INT(child, data->vhd_no_warning);