]> glassweightruler.freedombox.rocks Git - Ventoy.git/blobdiff - Plugson/src/Web/ventoy_http.c
Fixed to select the 1st menu item when switching between upper and lower sub-menus.
[Ventoy.git] / Plugson / src / Web / ventoy_http.c
index 96a6fa51589930db652db33ac674371b74659dfe..c24096d21f15f185d91948670afef864953d1e8c 100644 (file)
@@ -322,6 +322,9 @@ static int ventoy_api_sysinfo(struct mg_connection *conn, VTOY_JSON *json)
     //read clear
     VTOY_JSON_FMT_SINT("syntax_error", g_sysinfo.syntax_error);
     g_sysinfo.syntax_error = 0;
+    
+    VTOY_JSON_FMT_SINT("invalid_config", g_sysinfo.invalid_config);
+    g_sysinfo.invalid_config = 0;
 
 
     #if defined(_MSC_VER) || defined(WIN32)
@@ -482,7 +485,9 @@ void ventoy_data_default_control(data_control *data)
 {
     memset(data, 0, sizeof(data_control));
 
+    data->default_menu_mode = 1;
     data->filter_dot_underscore = 1;
+    data->treeview_style = 1;
     data->max_search_level = -1;
     data->menu_timeout = 0;
     
@@ -4917,6 +4922,7 @@ static int ventoy_load_old_json(const char *filename)
     unsigned char *start = NULL;
     VTOY_JSON *json = NULL;
     VTOY_JSON *node = NULL;
+    VTOY_JSON *next = NULL;
 
     ret = ventoy_read_file_to_buf(filename, 4, (void **)&buffer, &buflen);
     if (ret)
@@ -4950,6 +4956,18 @@ static int ventoy_load_old_json(const char *filename)
     {
         vlog("parse ventoy.json success\n");
 
+        for (node = json->pstChild; node; node = node->pstNext)
+        for (next = node->pstNext; next; next = next->pstNext)
+        {
+            if (node->pcName && next->pcName && strcmp(node->pcName, next->pcName) == 0)
+            {
+                vlog("ventoy.json contains duplicate key <%s>.\n", node->pcName);
+                g_sysinfo.invalid_config = 1;
+                ret = 1;
+                goto end;
+            }
+        }
+
         for (node = json->pstChild; node; node = node->pstNext)
         {
             ventoy_parse_json(control);
@@ -4975,6 +4993,7 @@ static int ventoy_load_old_json(const char *filename)
         ret = 1;
     }
 
+end:
     vtoy_json_destroy(json);
 
     free(buffer);