From: longpanda Date: Tue, 7 Apr 2020 16:06:23 +0000 (+0800) Subject: bug fix X-Git-Tag: v1.0.06~7 X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/commitdiff_plain/ef80baf150f48e2b318e1e60fb95bf61a0555c72 bug fix --- diff --git a/INSTALL/Ventoy2Disk.exe b/INSTALL/Ventoy2Disk.exe index 5d3c551..38d912e 100644 Binary files a/INSTALL/Ventoy2Disk.exe and b/INSTALL/Ventoy2Disk.exe differ diff --git a/INSTALL/grub/grub.cfg b/INSTALL/grub/grub.cfg index 6872363..444a337 100644 --- a/INSTALL/grub/grub.cfg +++ b/INSTALL/grub/grub.cfg @@ -79,6 +79,10 @@ function uefi_windows_menu_func { vt_windows_chain_data ${1}${chosen_path} + if [ -n "${vtdebug_flag}" ]; then + sleep 5 + fi + if [ -n "$vtoy_chain_mem_addr" ]; then terminal_output console chainloader ${vtoy_path}/ventoy_x64.efi env_param=${env_param} isoefi=${LoadIsoEfiDriver} ${vtdebug_flag} mem:${vtoy_chain_mem_addr}:size:${vtoy_chain_mem_size} @@ -158,6 +162,10 @@ function uefi_iso_menu_func { vt_img_sector ${1}${chosen_path} if [ "$vtoy_os" = "Windows" ]; then + if [ "$ventoy_fs_probe" = "iso9660" ]; then + set ventoy_compatible=YES + fi + uefi_windows_menu_func $1 else uefi_linux_menu_func $1 @@ -271,8 +279,11 @@ function legacy_iso_menu_func { vt_check_compatible (loop) vt_img_sector ${1}${chosen_path} - + if [ "$vtoy_os" = "Windows" ]; then + if [ "$ventoy_fs_probe" = "iso9660" ]; then + set ventoy_compatible=YES + fi legacy_windows_menu_func $1 else legacy_linux_menu_func $1 @@ -291,7 +302,7 @@ function legacy_iso_menu_func { ############################################################# ############################################################# -set VENTOY_VERSION="1.0.00" +set VENTOY_VERSION="1.0.01" #disable timeout unset timeout diff --git a/INSTALL/ventoy/vtoyjump32.exe b/INSTALL/ventoy/vtoyjump32.exe index 24cd8ab..6213ed5 100644 Binary files a/INSTALL/ventoy/vtoyjump32.exe and b/INSTALL/ventoy/vtoyjump32.exe differ diff --git a/INSTALL/ventoy/vtoyjump64.exe b/INSTALL/ventoy/vtoyjump64.exe index f6bb947..c28c7fd 100644 Binary files a/INSTALL/ventoy/vtoyjump64.exe and b/INSTALL/ventoy/vtoyjump64.exe differ diff --git a/Ventoy2Disk/Ventoy2Disk/Language.c b/Ventoy2Disk/Ventoy2Disk/Language.c index ce6bf9e..66a1e56 100644 --- a/Ventoy2Disk/Ventoy2Disk/Language.c +++ b/Ventoy2Disk/Ventoy2Disk/Language.c @@ -38,9 +38,9 @@ const TCHAR * g_Str_English[STR_ID_MAX] = TEXT("The disk will be formatted and all the data will be lost.\r\nContinue?"), TEXT("The disk will be formatted and all the data will be lost.\r\nContinue? (Double Check)"), TEXT("Congratulations!\r\nVentoy has been successfully installed to the device."), - TEXT("An error occurred during the installation. Please check log.txt for detail."), + TEXT("An error occurred during the installation. You can try again and check log.txt for detail."), TEXT("Congratulations!\r\nVentoy has been successfully updated to the device."), - TEXT("An error occurred during the update. Please check log.txt for detail."), + TEXT("An error occurred during the update. You can try again and check log.txt for detail."), TEXT("A thread is running, please wait..."), }; @@ -61,9 +61,9 @@ const TCHAR * g_Str_ChineseSimple[STR_ID_MAX] = TEXT("´ÅÅ̻ᱻ¸ñʽ»¯, ËùÓÐÊý¾Ý¶¼»á¶ªÊ§!\r\nÊÇ·ñ¼ÌÐø£¿"), TEXT("´ÅÅ̻ᱻ¸ñʽ»¯, ËùÓÐÊý¾Ý¶¼»á¶ªÊ§!\r\nÔÙ´ÎÈ·ÈÏÊÇ·ñ¼ÌÐø£¿"), TEXT("¹§Ï²Äã! Ventoy ÒѾ­³É¹¦°²×°µ½´ËÉ豸ÖÐ."), - TEXT("°²×° Ventoy ¹ý³ÌÖз¢Éú´íÎó. ÏêϸÐÅÏ¢Çë²éÔÄ log.txt Îļþ."), + TEXT("°²×° Ventoy ¹ý³ÌÖз¢Éú´íÎó. Äã¿ÉÒÔÖØÊÔÒ»´Î, ÏêϸÐÅÏ¢Çë²éÔÄ log.txt Îļþ."), TEXT("¹§Ï²Äã! а汾µÄ Ventoy ÒѾ­³É¹¦¸üе½´ËÉ豸ÖÐ."), - TEXT("¸üРVentoy ¹ý³ÌÖÐÓöµ½´íÎó. ÏêϸÐÅÏ¢Çë²éÔÄ log.txt Îļþ."), + TEXT("¸üРVentoy ¹ý³ÌÖÐÓöµ½´íÎó. Äã¿ÉÒÔÖØÊÔÒ»´Î, ÏêϸÐÅÏ¢Çë²éÔÄ log.txt Îļþ."), TEXT("µ±Ç°ÓÐÈÎÎñÕýÔÚÔËÐÐ, ÇëµÈ´ý..."), }; diff --git a/vtoyjump/vtoyjump/vtoyjump.c b/vtoyjump/vtoyjump/vtoyjump.c index 221de48..1054ef0 100644 --- a/vtoyjump/vtoyjump/vtoyjump.c +++ b/vtoyjump/vtoyjump/vtoyjump.c @@ -754,6 +754,25 @@ static int VentoyHook(ventoy_os_param *param) return 0; } +const char * GetFileNameInPath(const char *fullpath) +{ + int i; + const char *pos = NULL; + + if (strstr(fullpath, ":")) + { + for (i = (int)strlen(fullpath); i > 0; i--) + { + if (fullpath[i - 1] == '/' || fullpath[i - 1] == '\\') + { + return fullpath + i; + } + } + } + + return fullpath; +} + int VentoyJump(INT argc, CHAR **argv, CHAR *LunchFile) { int rc = 1; @@ -764,9 +783,6 @@ int VentoyJump(INT argc, CHAR **argv, CHAR *LunchFile) ventoy_os_param os_param; CHAR ExeFileName[MAX_PATH]; - Log("######## VentoyJump ##########"); - Log("argc = %d argv[0] = <%s>", argc, argv[0]); - sprintf_s(ExeFileName, sizeof(ExeFileName), "%s", argv[0]); if (!IsPathExist(FALSE, "%s", ExeFileName)) { @@ -816,7 +832,7 @@ int VentoyJump(INT argc, CHAR **argv, CHAR *LunchFile) } PeStart += sizeof(ventoy_os_param); - sprintf_s(LunchFile, MAX_PATH, "ventoy\\%s", ExeFileName); + sprintf_s(LunchFile, MAX_PATH, "ventoy\\%s", GetFileNameInPath(ExeFileName)); SaveBuffer2File(LunchFile, Buffer + PeStart, FileSize - PeStart); break; } @@ -849,12 +865,46 @@ End: int main(int argc, char **argv) { + CHAR *Pos = NULL; + CHAR CurDir[MAX_PATH]; CHAR LunchFile[MAX_PATH]; STARTUPINFOA Si; PROCESS_INFORMATION Pi; + if (argv[0] && argv[0][0] && argv[0][1] == ':') + { + GetCurrentDirectoryA(sizeof(CurDir), CurDir); + + strcpy_s(LunchFile, sizeof(LunchFile), argv[0]); + Pos = (char *)GetFileNameInPath(LunchFile); + + strcat_s(CurDir, sizeof(CurDir), "\\"); + strcat_s(CurDir, sizeof(CurDir), Pos); + + if (_stricmp(argv[0], CurDir) != 0) + { + *Pos = 0; + SetCurrentDirectoryA(LunchFile); + } + } + + Log("######## VentoyJump ##########"); + Log("argc = %d argv[0] = <%s>", argc, argv[0]); + + if (Pos && *Pos == 0) + { + Log("Old current directory = <%s>", CurDir); + Log("New current directory = <%s>", LunchFile); + } + else + { + GetCurrentDirectoryA(sizeof(CurDir), CurDir); + Log("Current directory = <%s>", CurDir); + } + GetStartupInfoA(&Si); + memset(LunchFile, 0, sizeof(LunchFile)); if (VentoyJump(argc, argv, LunchFile) == 0) { Log("Ventoy jump success ...");