From e661eff9ae0c5a04dff64c8743049656974e437d Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 18 Jul 2013 00:10:29 +0100 Subject: [PATCH 1/5] [syslinux] silence a MinGW warning in libfat * Also fix a typo in ChangeLog.txt --- ChangeLog.txt | 2 +- src/rufus.rc | 10 +++++----- src/syslinux/libfat/open.c | 2 ++ 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 024e5b5c..e0e88e2c 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -2,7 +2,7 @@ o Version 1.3.4 (2013.07.15) Syslinux v5 support (NEW) UDF formatting support (NEW - Vista and later only) More drive handling improvements, to avoid "Could not open media" errors - Fixed support for ISOs with files larger than 4GB files + Fixed support for ISOs containing files larger than 4GB Fixed elevation request for unprivileged users Fixed download of c32 files into the application directory Better compression algorithm for the executable diff --git a/src/rufus.rc b/src/rufus.rc index 5747c60f..6e6eb96a 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -30,7 +30,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 206, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW -CAPTION "Rufus v1.3.4.270" +CAPTION "Rufus v1.3.4.271" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,94,291,50,14 @@ -278,8 +278,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,4,270 - PRODUCTVERSION 1,3,4,270 + FILEVERSION 1,3,4,271 + PRODUCTVERSION 1,3,4,271 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -296,13 +296,13 @@ BEGIN BEGIN VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "1.3.4.270" + VALUE "FileVersion", "1.3.4.271" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2013 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "1.3.4.270" + VALUE "ProductVersion", "1.3.4.271" END END BLOCK "VarFileInfo" diff --git a/src/syslinux/libfat/open.c b/src/syslinux/libfat/open.c index ebc94f17..c3520ddc 100644 --- a/src/syslinux/libfat/open.c +++ b/src/syslinux/libfat/open.c @@ -98,6 +98,8 @@ libfat_open(int (*readfunc) (intptr_t, void *, size_t, libfat_sector_t), if (minfatsize > fatsize) goto barf; /* The FATs don't fit */ +#else + (void)(minfatsize); /* silence an unused warning in MinGW */ #endif if (fs->fat_type == FAT28) From b24347d47eafe243c119e2b9f5d05fbf09645297 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 18 Jul 2013 00:14:43 +0100 Subject: [PATCH 2/5] [locale] fix multiple issues with DOS localization * The wrong names were being used for the kbd SYS files * Also fix a typo and improve fallback * Closes #160 --- src/dos_locale.c | 66 +++++++++++++++++++++++++++++++++--------------- src/rufus.rc | 10 ++++---- 2 files changed, 50 insertions(+), 26 deletions(-) diff --git a/src/dos_locale.c b/src/dos_locale.c index c131ffd2..a8f09bdf 100644 --- a/src/dos_locale.c +++ b/src/dos_locale.c @@ -159,46 +159,59 @@ static const char* fd_kb4[] = { typedef struct { const char* name; + ULONG default_cp; +} kb_default; + +static kb_default kbdrv_data[] = { + { "keyboard.sys", 437 }, + { "keybrd2.sys", 850 }, + { "keybrd3.sys", 850 }, + { "keybrd4.sys", 853 } +}; + +typedef struct { size_t size; const char** list; } kb_list; static kb_list ms_kb_list[] = { - {"keyboard.sys", ARRAYSIZE(ms_kb1), ms_kb1}, - {"kbrd2.sys", ARRAYSIZE(ms_kb2), ms_kb2}, - {"kbrd3.sys", ARRAYSIZE(ms_kb3), ms_kb3}, - {"kbrd3.sys", ARRAYSIZE(ms_kb4), ms_kb4} }; + { ARRAYSIZE(ms_kb1), ms_kb1 }, + { ARRAYSIZE(ms_kb2), ms_kb2 }, + { ARRAYSIZE(ms_kb3), ms_kb3 }, + { ARRAYSIZE(ms_kb4), ms_kb4 } +}; static kb_list fd_kb_list[] = { - {"keyboard.sys", ARRAYSIZE(fd_kb1), fd_kb1}, - {"kbrd2.sys", ARRAYSIZE(fd_kb2), fd_kb2}, - {"kbrd3.sys", ARRAYSIZE(fd_kb3), fd_kb3}, - {"kbrd3.sys", ARRAYSIZE(fd_kb4), fd_kb4} }; + { ARRAYSIZE(fd_kb1), fd_kb1 }, + { ARRAYSIZE(fd_kb2), fd_kb2 }, + { ARRAYSIZE(fd_kb3), fd_kb3 }, + { ARRAYSIZE(fd_kb4), fd_kb4 } +}; -static const char* ms_get_kbdrv(const char* kb) +static int ms_get_kbdrv(const char* kb) { unsigned int i, j; for (i=0; i NUL\n", (int)cp, egadrv); fprintf(fd, "mode con codepage select=%d > NUL\n", (int)cp); - fprintf(fd, "keyb %s,,\\locale\\%s\n", kb, kbdrv); + fprintf(fd, "keyb %s,,\\locale\\%s\n", kb, kbdrv_data[kbdrv].name); fprintf(fd, ":2\n"); fclose(fd); uprintf("Successfully wrote 'AUTOEXEC.BAT'\n"); diff --git a/src/rufus.rc b/src/rufus.rc index 6e6eb96a..57654333 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -30,7 +30,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 206, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW -CAPTION "Rufus v1.3.4.271" +CAPTION "Rufus v1.3.4.272" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,94,291,50,14 @@ -278,8 +278,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,4,271 - PRODUCTVERSION 1,3,4,271 + FILEVERSION 1,3,4,272 + PRODUCTVERSION 1,3,4,272 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -296,13 +296,13 @@ BEGIN BEGIN VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "1.3.4.271" + VALUE "FileVersion", "1.3.4.272" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2013 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "1.3.4.271" + VALUE "ProductVersion", "1.3.4.272" END END BLOCK "VarFileInfo" From 0defc28b09a9cf7c2d0ef3ba428c7f9ea483dfd0 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Sun, 21 Jul 2013 20:56:20 +0100 Subject: [PATCH 3/5] [wdk] fix _fseeki64 could not be located in msvcrt.dll on XP * Closes #162 * Also remove unwanted SetThreadLocale() in rufus.c --- src/libcdio/config.h | 22 +++++++++++++++------- src/rufus.c | 2 -- src/rufus.rc | 10 +++++----- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/libcdio/config.h b/src/libcdio/config.h index 6bad847e..974b7886 100644 --- a/src/libcdio/config.h +++ b/src/libcdio/config.h @@ -29,13 +29,26 @@ /* Define to 1 if you have the header file. */ #define HAVE_FCNTL_H 1 +/* Define to 1 if you have the `lseek64' function. */ +#define HAVE_LSEEK64 1 +/* The equivalent of lseek64 on MSVC is _lseeki64 */ +#define lseek64 _lseeki64 + /* Define to 1 if you have the `fseeko' function. */ /* #undef HAVE_FSEEKO */ /* Define to 1 if you have the `fseeko64' function. */ #define HAVE_FSEEKO64 1 -/* The equivalent of fseeko64 for MSVC is _fseeki64 */ -#if defined(_MSC_VER) +/* The equivalent of fseeko64 for MSVC is _fseeki64, however this */ +/* is not available on XP when build with WDK (but _lseeki64 is) */ +#if defined(DDKBUILD) +#include +#include +#include +static __inline int fseeko64(FILE *stream, __int64 offset, int origin) { + return (lseek64(_fileno(stream), offset, origin) == -1L)?-1:0; +} +#else #define fseeko64 _fseeki64 #endif @@ -58,11 +71,6 @@ /* Define to 1 if you have the header file. */ #define HAVE_LIMITS_H 1 -/* Define to 1 if you have the `lseek64' function. */ -#define HAVE_LSEEK64 1 -/* The equivalent of lseek64 on MSVC is _lseeki64 */ -#define lseek64 _lseeki64 - /* Define to 1 if you have the `lstat' function. */ /* #undef HAVE_LSTAT */ diff --git a/src/rufus.c b/src/rufus.c index 3d0d3da0..44512988 100644 --- a/src/rufus.c +++ b/src/rufus.c @@ -1930,8 +1930,6 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine uprintf("*** " APPLICATION_NAME " init ***\n"); - SetThreadLocale(MAKELCID(LANG_FRENCH, SUBLANG_FRENCH)); - // Reattach the console, if we were started from commandline if (AttachConsole(ATTACH_PARENT_PROCESS) != 0) { attached_console = TRUE; diff --git a/src/rufus.rc b/src/rufus.rc index 57654333..8d0071b5 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -30,7 +30,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 206, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW -CAPTION "Rufus v1.3.4.272" +CAPTION "Rufus v1.3.4.273" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,94,291,50,14 @@ -278,8 +278,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,4,272 - PRODUCTVERSION 1,3,4,272 + FILEVERSION 1,3,4,273 + PRODUCTVERSION 1,3,4,273 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -296,13 +296,13 @@ BEGIN BEGIN VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "1.3.4.272" + VALUE "FileVersion", "1.3.4.273" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2013 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "1.3.4.272" + VALUE "ProductVersion", "1.3.4.273" END END BLOCK "VarFileInfo" From b5143b0d84d5fbad95fd25547d9471fa6ac66af7 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Sun, 21 Jul 2013 21:13:28 +0100 Subject: [PATCH 4/5] [oops] fix MinGW compilation broken with previous commit --- src/libcdio/config.h | 2 ++ src/rufus.rc | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/libcdio/config.h b/src/libcdio/config.h index 974b7886..fbbd7259 100644 --- a/src/libcdio/config.h +++ b/src/libcdio/config.h @@ -39,6 +39,7 @@ /* Define to 1 if you have the `fseeko64' function. */ #define HAVE_FSEEKO64 1 +#if defined(_MSC_VER) /* The equivalent of fseeko64 for MSVC is _fseeki64, however this */ /* is not available on XP when build with WDK (but _lseeki64 is) */ #if defined(DDKBUILD) @@ -51,6 +52,7 @@ static __inline int fseeko64(FILE *stream, __int64 offset, int origin) { #else #define fseeko64 _fseeki64 #endif +#endif /* Define to 1 if you have the `ftruncate' function. */ /* #undef HAVE_FTRUNCATE */ diff --git a/src/rufus.rc b/src/rufus.rc index 8d0071b5..e054251e 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -30,7 +30,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 206, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW -CAPTION "Rufus v1.3.4.273" +CAPTION "Rufus v1.3.4.274" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,94,291,50,14 @@ -278,8 +278,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,4,273 - PRODUCTVERSION 1,3,4,273 + FILEVERSION 1,3,4,274 + PRODUCTVERSION 1,3,4,274 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -296,13 +296,13 @@ BEGIN BEGIN VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "1.3.4.273" + VALUE "FileVersion", "1.3.4.274" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2013 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "1.3.4.273" + VALUE "ProductVersion", "1.3.4.274" END END BLOCK "VarFileInfo" From 5f161c91b314136757e3eaa121a4b3bb57bc8611 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Sun, 21 Jul 2013 21:30:18 +0100 Subject: [PATCH 5/5] [vs] update VS2012 project settings * Enable XP mode * Set VS compilation to C mode, multiprocessor * Unset culture --- src/.msvc/rufus.vcxproj | 20 ++++++++++++++++---- src/rufus.rc | 10 +++++----- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/src/.msvc/rufus.vcxproj b/src/.msvc/rufus.vcxproj index 1f17df35..a47b2a1f 100644 --- a/src/.msvc/rufus.vcxproj +++ b/src/.msvc/rufus.vcxproj @@ -29,23 +29,23 @@ Application Unicode true - v110 + v110_xp Application Unicode - v110 + v110_xp Application Unicode true - v110 + v110_xp Application Unicode - v110 + v110_xp @@ -85,6 +85,8 @@ MultiThreadedDebug Level3 ..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\libcdio;..\getopt;%(AdditionalIncludeDirectories) + CompileAsC + true setupapi.lib;comctl32.lib;wininet.lib;%(AdditionalDependencies) @@ -95,6 +97,7 @@ _UNICODE;UNICODE;%(PreprocessorDefinitions) + @@ -108,6 +111,8 @@ MultiThreadedDebug Level3 ProgramDatabase + CompileAsC + true setupapi.lib;comctl32.lib;wininet.lib;%(AdditionalDependencies) @@ -118,6 +123,7 @@ _UNICODE;UNICODE;%(PreprocessorDefinitions) + @@ -127,6 +133,8 @@ MultiThreaded Level3 ..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\libcdio;..\getopt;%(AdditionalIncludeDirectories) + CompileAsC + true setupapi.lib;comctl32.lib;wininet.lib;%(AdditionalDependencies) @@ -137,6 +145,7 @@ _UNICODE;UNICODE;%(PreprocessorDefinitions) + @@ -149,6 +158,8 @@ MultiThreaded Level3 ..\msvc-missing;..\ms-sys\inc;..\syslinux\libinstaller;..\syslinux\libfat;..\libcdio;..\getopt;%(AdditionalIncludeDirectories) + CompileAsC + true setupapi.lib;comctl32.lib;wininet.lib;%(AdditionalDependencies) @@ -159,6 +170,7 @@ _UNICODE;UNICODE;%(PreprocessorDefinitions) + diff --git a/src/rufus.rc b/src/rufus.rc index e054251e..af31e11f 100644 --- a/src/rufus.rc +++ b/src/rufus.rc @@ -30,7 +30,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL IDD_DIALOG DIALOGEX 12, 12, 206, 329 STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW -CAPTION "Rufus v1.3.4.274" +CAPTION "Rufus v1.3.4.275" FONT 8, "MS Shell Dlg", 400, 0, 0x1 BEGIN DEFPUSHBUTTON "Start",IDC_START,94,291,50,14 @@ -278,8 +278,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,3,4,274 - PRODUCTVERSION 1,3,4,274 + FILEVERSION 1,3,4,275 + PRODUCTVERSION 1,3,4,275 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -296,13 +296,13 @@ BEGIN BEGIN VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" VALUE "FileDescription", "Rufus" - VALUE "FileVersion", "1.3.4.274" + VALUE "FileVersion", "1.3.4.275" VALUE "InternalName", "Rufus" VALUE "LegalCopyright", "© 2011-2013 Pete Batard (GPL v3)" VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" VALUE "OriginalFilename", "rufus.exe" VALUE "ProductName", "Rufus" - VALUE "ProductVersion", "1.3.4.274" + VALUE "ProductVersion", "1.3.4.275" END END BLOCK "VarFileInfo"