diff --git a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_plugin.c b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_plugin.c index abecbb9e..f3e3bc22 100644 --- a/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_plugin.c +++ b/GRUB2/MOD_SRC/grub-2.04/grub-core/ventoy/ventoy_plugin.c @@ -3549,7 +3549,11 @@ grub_err_t ventoy_cmd_cur_menu_lang(grub_extcmd_context_t ctxt, int argc, char * { (void)ctxt; (void)argc; - (void)args; + + if (argc > 0) + { + grub_env_set(args[0], g_cur_menu_language); + } grub_printf("%s\n", g_cur_menu_language); grub_printf("%s\n", g_ventoy_hotkey_tip); diff --git a/INSTALL/grub/grub.cfg b/INSTALL/grub/grub.cfg index 64b4fcdc..f8ac91d8 100644 --- a/INSTALL/grub/grub.cfg +++ b/INSTALL/grub/grub.cfg @@ -103,8 +103,9 @@ function ventoy_show_help { fi loopback vt_help_tarfs mem:${vtoy_help_txt_mem_addr}:size:${vtoy_help_txt_mem_size} - if [ -f "(vt_help_tarfs)/help/${VTOY_HELP_TXT_LANGUAGE}.txt" ]; then - cat "(vt_help_tarfs)/help/${VTOY_HELP_TXT_LANGUAGE}.txt" + vt_cur_menu_lang vtCurLang + if [ -f "(vt_help_tarfs)/help/${vtCurLang}.txt" ]; then + cat "(vt_help_tarfs)/help/${vtCurLang}.txt" else cat "(vt_help_tarfs)/help/en_US.txt" fi diff --git a/INSTALL/ventoy_pack.sh b/INSTALL/ventoy_pack.sh index a7d3062e..bcb10615 100644 --- a/INSTALL/ventoy_pack.sh +++ b/INSTALL/ventoy_pack.sh @@ -221,6 +221,7 @@ cp $OPT VentoyVlnk.exe $tmpdir/ cp $OPT FOR_X64_ARM.txt $tmpdir/ mkdir -p $tmpdir/altexe cp $OPT Ventoy2Disk_*.exe $tmpdir/altexe/ +cp $OPT VentoyPlugson_*.exe $tmpdir/altexe/ diff --git a/Plugson/pack.sh b/Plugson/pack.sh index 52bc9e5d..340a79fa 100644 --- a/Plugson/pack.sh +++ b/Plugson/pack.sh @@ -13,6 +13,11 @@ if [ ! -f ./vs/VentoyPlugson/Release/VentoyPlugson.exe ]; then exit 1 fi +if [ ! -f ./vs/VentoyPlugson/x64/Release/VentoyPlugson_X64.exe ]; then + echo "NO VentoyPlugson_X64.exe found" + exit 1 +fi + if [ -f ./www.tar.xz ]; then rm -f ./www.tar.xz fi @@ -33,6 +38,10 @@ xz --check=crc32 www.tar rm -f ../INSTALL/VentoyPlugson.exe cp -a ./vs/VentoyPlugson/Release/VentoyPlugson.exe ../INSTALL/VentoyPlugson.exe +rm -f ../INSTALL/VentoyPlugson_X64.exe +cp -a ./vs/VentoyPlugson/x64/Release/VentoyPlugson_X64.exe ../INSTALL/VentoyPlugson_X64.exe + + rm -f ../INSTALL/tool/plugson.tar.xz mv ./www.tar.xz ../INSTALL/tool/plugson.tar.xz diff --git a/Plugson/src/Core/ventoy_json.c b/Plugson/src/Core/ventoy_json.c index 2403e652..346a9d9d 100644 --- a/Plugson/src/Core/ventoy_json.c +++ b/Plugson/src/Core/ventoy_json.c @@ -425,7 +425,7 @@ int vtoy_json_parse(VTOY_JSON *pstJson, const char *szJsonData) char *pcNewBuf = NULL; const char *pcEnd = NULL; - uiMemSize = strlen(szJsonData) + 1; + uiMemSize = (uint32_t)strlen(szJsonData) + 1; pcNewBuf = (char *)malloc(uiMemSize); if (NULL == pcNewBuf) { diff --git a/Plugson/src/Web/ventoy_http.c b/Plugson/src/Web/ventoy_http.c index 900045eb..6de2159a 100644 --- a/Plugson/src/Web/ventoy_http.c +++ b/Plugson/src/Web/ventoy_http.c @@ -71,7 +71,6 @@ static const char *g_plugin_name[plugin_type_max] = "auto_memdisk", "dud" }; -static char g_ventoy_help_lang[MAX_LANGUAGE][8]; static char g_ventoy_menu_lang[MAX_LANGUAGE][8]; static char g_pub_path[2 * MAX_PATH]; @@ -522,7 +521,6 @@ void ventoy_data_default_control(data_control *data) data->secondary_menu_timeout = 0; strlcpy(data->default_kbd_layout, "QWERTY_USA"); - strlcpy(data->help_text_language, "en_US"); strlcpy(data->menu_language, "en_US"); } @@ -553,7 +551,6 @@ int ventoy_data_cmp_control(data_control *data1, data_control *data2) if (strcmp(data1->default_search_root, data2->default_search_root) || strcmp(data1->default_image, data2->default_image) || strcmp(data1->default_kbd_layout, data2->default_kbd_layout) || - strcmp(data1->help_text_language, data2->help_text_language) || strcmp(data1->menu_language, data2->menu_language)) { return 1; @@ -597,7 +594,6 @@ int ventoy_data_save_control(data_control *data, const char *title, char *buf, i 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_CTRL_STRN(L2, "VTOY_MENU_LANGUAGE", menu_language); if (strcmp(def->default_search_root, data->default_search_root)) @@ -645,7 +641,6 @@ int ventoy_data_json_control(data_control *ctrl, char *buf, int buflen) 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_FMT_STRN("menu_language", ctrl->menu_language); valid = 0; @@ -665,15 +660,6 @@ int ventoy_data_json_control(data_control *ctrl, char *buf, int buflen) VTOY_JSON_FMT_STRN("default_image", ctrl->default_image); VTOY_JSON_FMT_SINT("default_image_valid", valid); - VTOY_JSON_FMT_KEY("help_list"); - VTOY_JSON_FMT_ARY_BEGIN(); - - for (i = 0; g_ventoy_help_lang[i][0]; i++) - { - VTOY_JSON_FMT_ITEM(g_ventoy_help_lang[i]); - } - VTOY_JSON_FMT_ARY_ENDEX(); - VTOY_JSON_FMT_KEY("menu_list"); VTOY_JSON_FMT_ARY_BEGIN(); @@ -725,7 +711,6 @@ static int ventoy_api_save_control(struct mg_connection *conn, VTOY_JSON *json) VTOY_JSON_STR("default_image", ctrl->default_image); VTOY_JSON_STR("default_search_root", ctrl->default_search_root); - VTOY_JSON_STR("help_text_language", ctrl->help_text_language); VTOY_JSON_STR("menu_language", ctrl->menu_language); VTOY_JSON_STR("default_kbd_layout", ctrl->default_kbd_layout); @@ -3706,7 +3691,7 @@ static int ventoy_api_preview_json(struct mg_connection *conn, VTOY_JSON *json) goto json; } - utf16enclen = utf8_to_utf16((unsigned char *)JSON_SAVE_BUFFER, len, utf16buf, len + 2); + utf16enclen = (int)utf8_to_utf16((unsigned char *)JSON_SAVE_BUFFER, len, utf16buf, len + 2); encodebuf = (char *)malloc(utf16enclen * 4 + 16); if (!encodebuf) @@ -4088,17 +4073,6 @@ static int ventoy_parse_control(VTOY_JSON *json, void *p) } } } - else if (strcmp(child->pcName, "VTOY_HELP_TXT_LANGUAGE") == 0) - { - for (i = 0; g_ventoy_help_lang[i][0]; i++) - { - if (strcmp(child->unData.pcStrVal, g_ventoy_help_lang[i]) == 0) - { - strlcpy(data->help_text_language, child->unData.pcStrVal); - break; - } - } - } else if (strcmp(child->pcName, "VTOY_MENU_LANGUAGE") == 0) { for (i = 0; g_ventoy_menu_lang[i][0]; i++) @@ -5341,19 +5315,6 @@ int ventoy_http_init(void) char *Buffer = NULL; int BufLen = 0; - ventoy_read_file_to_buf("www/helplist", 4, (void **)&Buffer, &BufLen); - if (Buffer) - { - for (i = 0; i < BufLen / 5; i++) - { - memcpy(g_ventoy_help_lang[i], Buffer + i * 5, 5); - g_ventoy_help_lang[i][5] = 0; - } - free(Buffer); - } - - Buffer = NULL; - BufLen = 0; ventoy_read_file_to_buf("www/menulist", 4, (void **)&Buffer, &BufLen); if (Buffer) { @@ -5366,15 +5327,6 @@ int ventoy_http_init(void) } #else ventoy_file *file; - file = ventoy_tar_find_file("www/helplist"); - if (file) - { - for (i = 0; i < file->size / 5; i++) - { - memcpy(g_ventoy_help_lang[i], (char *)(file->addr) + i * 5, 5); - g_ventoy_help_lang[i][5] = 0; - } - } file = ventoy_tar_find_file("www/menulist"); if (file) diff --git a/Plugson/src/Web/ventoy_http.h b/Plugson/src/Web/ventoy_http.h index 27b7508f..18e4198a 100644 --- a/Plugson/src/Web/ventoy_http.h +++ b/Plugson/src/Web/ventoy_http.h @@ -83,7 +83,6 @@ typedef struct data_control char default_search_root[MAX_PATH]; char default_image[MAX_PATH]; char default_kbd_layout[32]; - char help_text_language[32]; char menu_language[32]; }data_control; @@ -389,7 +388,7 @@ else\ #define ventoy_parse_json(name) \ {\ int __loop;\ - int __len = strlen(#name);\ + int __len = (int)strlen(#name);\ if (strncmp(#name, node->pcName, __len) == 0)\ {\ for (__loop = 0; __loop < bios_max; __loop++)\ diff --git a/Plugson/vs/VentoyPlugson/Release/VentoyPlugson.exe b/Plugson/vs/VentoyPlugson/Release/VentoyPlugson.exe index 4267b012..d0f55609 100644 Binary files a/Plugson/vs/VentoyPlugson/Release/VentoyPlugson.exe and b/Plugson/vs/VentoyPlugson/Release/VentoyPlugson.exe differ diff --git a/Plugson/vs/VentoyPlugson/VentoyPlugson.sln b/Plugson/vs/VentoyPlugson/VentoyPlugson.sln index f4e7ca1a..6888b6ea 100644 --- a/Plugson/vs/VentoyPlugson/VentoyPlugson.sln +++ b/Plugson/vs/VentoyPlugson/VentoyPlugson.sln @@ -1,22 +1,31 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.21005.1 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.31729.503 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VentoyPlugson", "VentoyPlugson\VentoyPlugson.vcxproj", "{321D6EE2-2AB3-4103-9F05-EC4EC67A75E1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {321D6EE2-2AB3-4103-9F05-EC4EC67A75E1}.Debug|Win32.ActiveCfg = Debug|Win32 {321D6EE2-2AB3-4103-9F05-EC4EC67A75E1}.Debug|Win32.Build.0 = Debug|Win32 + {321D6EE2-2AB3-4103-9F05-EC4EC67A75E1}.Debug|x64.ActiveCfg = Debug|x64 + {321D6EE2-2AB3-4103-9F05-EC4EC67A75E1}.Debug|x64.Build.0 = Debug|x64 {321D6EE2-2AB3-4103-9F05-EC4EC67A75E1}.Release|Win32.ActiveCfg = Release|Win32 {321D6EE2-2AB3-4103-9F05-EC4EC67A75E1}.Release|Win32.Build.0 = Release|Win32 + {321D6EE2-2AB3-4103-9F05-EC4EC67A75E1}.Release|x64.ActiveCfg = Release|x64 + {321D6EE2-2AB3-4103-9F05-EC4EC67A75E1}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {D15C2D76-198B-4FE5-8232-D57D911FB022} + EndGlobalSection EndGlobal diff --git a/Plugson/vs/VentoyPlugson/VentoyPlugson/VentoyPlugson.vcxproj b/Plugson/vs/VentoyPlugson/VentoyPlugson/VentoyPlugson.vcxproj index 2e2845ba..c1a19798 100644 --- a/Plugson/vs/VentoyPlugson/VentoyPlugson/VentoyPlugson.vcxproj +++ b/Plugson/vs/VentoyPlugson/VentoyPlugson/VentoyPlugson.vcxproj @@ -5,10 +5,18 @@ Debug Win32 + + Debug + x64 + Release Win32 + + Release + x64 + {321D6EE2-2AB3-4103-9F05-EC4EC67A75E1} @@ -23,6 +31,12 @@ v142 MultiByte + + Application + true + v142 + MultiByte + Application false @@ -30,24 +44,46 @@ true MultiByte + + Application + false + v142 + true + MultiByte + + + + + + + true ..\..\..\src\Core;..\..\..\src\Web;..\..\..\src\Include;..\..\..\src\Lib\xz-embedded\linux\include;..\..\..\src\Lib\xz-embedded\linux\include\linux;..\..\..\src\Lib\xz-embedded\userspace;..\..\..\src\Lib\fat_io_lib;..\..\..\src\Lib\libhttp\include;$(ProjectDir);$(IncludePath) + + true + ..\..\..\src\Core;..\..\..\src\Web;..\..\..\src\Include;..\..\..\src\Lib\xz-embedded\linux\include;..\..\..\src\Lib\xz-embedded\linux\include\linux;..\..\..\src\Lib\xz-embedded\userspace;..\..\..\src\Lib\fat_io_lib;..\..\..\src\Lib\libhttp\include;$(ProjectDir);$(IncludePath) + false ..\..\..\src\Core;..\..\..\src\Web;..\..\..\src\Include;..\..\..\src\Lib\xz-embedded\linux\include;..\..\..\src\Lib\xz-embedded\linux\include\linux;..\..\..\src\Lib\xz-embedded\userspace;..\..\..\src\Lib\fat_io_lib;..\..\..\src\Lib\libhttp\include;$(ProjectDir);$(IncludePath);$(VC_IncludePath);$(WindowsSDK_IncludePath) + + false + ..\..\..\src\Core;..\..\..\src\Web;..\..\..\src\Include;..\..\..\src\Lib\xz-embedded\linux\include;..\..\..\src\Lib\xz-embedded\linux\include\linux;..\..\..\src\Lib\xz-embedded\userspace;..\..\..\src\Lib\fat_io_lib;..\..\..\src\Lib\libhttp\include;$(ProjectDir);$(IncludePath);$(VC_IncludePath);$(WindowsSDK_IncludePath) + VentoyPlugson_X64 + @@ -68,6 +104,26 @@ $(ProjectDir)\Res\Plugson32.manifest %(AdditionalManifestFiles) + + + + + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;INIT;STATIC=static;%(PreprocessorDefinitions) + true + MultiThreadedDebug + + + Windows + true + RequireAdministrator + gdi32.dll;winspool.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;uuid.dll;odbc32.dll;odbccp32.dll + + + $(ProjectDir)\Res\Plugson32.manifest %(AdditionalManifestFiles) + + Level3 @@ -92,6 +148,30 @@ $(ProjectDir)\Res\Plugson32.manifest %(AdditionalManifestFiles) + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;INIT;STATIC=static;%(PreprocessorDefinitions) + true + MultiThreaded + + + Windows + true + true + true + RequireAdministrator + gdi32.dll;winspool.dll;comdlg32.dll;advapi32.dll;shell32.dll;ole32.dll;oleaut32.dll;uuid.dll;odbc32.dll;odbccp32.dll + + + $(ProjectDir)\Res\Plugson32.manifest %(AdditionalManifestFiles) + + diff --git a/Plugson/vs/VentoyPlugson/VentoyPlugson/VentoyPlugson.vcxproj.user b/Plugson/vs/VentoyPlugson/VentoyPlugson/VentoyPlugson.vcxproj.user index de064567..c3aae620 100644 --- a/Plugson/vs/VentoyPlugson/VentoyPlugson/VentoyPlugson.vcxproj.user +++ b/Plugson/vs/VentoyPlugson/VentoyPlugson/VentoyPlugson.vcxproj.user @@ -6,8 +6,17 @@ + + E:\ + WindowsLocalDebugger + + E:\ WindowsLocalDebugger + + E:\ + WindowsLocalDebugger + \ No newline at end of file diff --git a/Plugson/vs/VentoyPlugson/x64/Release/VentoyPlugson_X64.exe b/Plugson/vs/VentoyPlugson/x64/Release/VentoyPlugson_X64.exe new file mode 100644 index 00000000..548287f1 Binary files /dev/null and b/Plugson/vs/VentoyPlugson/x64/Release/VentoyPlugson_X64.exe differ diff --git a/Plugson/www/plugson_control.html b/Plugson/www/plugson_control.html index 7e1e624d..1e9a258c 100644 --- a/Plugson/www/plugson_control.html +++ b/Plugson/www/plugson_control.html @@ -1031,43 +1031,6 @@ - -
-
-

VTOY_HELP_TXT_LANGUAGE - —— 帮助信息语言

-
- -
-
-
- - - - - - - - - - - - - -
选项设置 - -
选项说明 - 快捷键 h 显示的帮助信息的语言版本。默认是 "en_US"。 - 具体请参考 Ventoy 帮助信息 -
Option Description - The language of the help text when press h. Default is "en_US", - refer Ventoy Help Text for details. -
-
-
- @@ -1127,7 +1090,6 @@ data.filter_vhd = parseInt($('input:radio[name=id_ctrl_radio_filt_vhd]:checked').val()); data.filter_vtoy = parseInt($('input:radio[name=id_ctrl_radio_filt_vtoy]:checked').val()); - data.help_text_language = $('select[id=id_ctrl_sel_help_lang').val(); data.menu_language = $('select[id=id_ctrl_sel_menu_lang').val(); } @@ -1220,17 +1182,6 @@ //VTOY_FILE_FLT_VTOY $('input:radio[name=id_ctrl_radio_filt_vtoy]')[data.filter_vtoy].checked = true; - //VTOY_HELP_TXT_LANGUAGE - if ($("select[id=id_ctrl_sel_help_lang")[0].options.length === 0) - { - for (var i = 0; i < data.help_list.length; i++) { - var hlang = data.help_list[i]; - var opt = ''; - $('select[id=id_ctrl_sel_help_lang').append(opt); - } - } - $('select[id=id_ctrl_sel_help_lang').val(data.help_text_language); - //VTOY_MENU_LANGUAGE if ($("select[id=id_ctrl_sel_menu_lang")[0].options.length === 0) { @@ -1271,7 +1222,6 @@ filter_img: data.filter_img, filter_vhd: data.filter_vhd, filter_vtoy: data.filter_vtoy, - help_text_language: data.help_text_language, menu_language: data.menu_language }, function(e) { Message.success(g_vtoy_cur_language.STR_SAVE_SUCCESS); @@ -1376,7 +1326,6 @@ }); $('select[id=id_ctrl_sel_max_depth]').change(VtoySaveCurrentPage); $('select[id=id_ctrl_sel_kbd]').change(VtoySaveCurrentPage); - $('select[id=id_ctrl_sel_help_lang]').change(VtoySaveCurrentPage); $('select[id=id_ctrl_sel_menu_lang]').change(VtoySaveCurrentPage); $('input[id=id_ctrl_text_timeout]').change(function() { var value = $('input:text[id=id_ctrl_text_timeout]').val();