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/.msvc/rufus.vcxproj b/src/.msvc/rufus.vcxproj
index 2217ab92..b7fef02e 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/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/libcdio/config.h b/src/libcdio/config.h
index 6bad847e..fbbd7259 100644
--- a/src/libcdio/config.h
+++ b/src/libcdio/config.h
@@ -29,15 +29,30 @@
/* 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
+#endif
/* Define to 1 if you have the `ftruncate' function. */
/* #undef HAVE_FTRUNCATE */
@@ -58,11 +73,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.rc b/src/rufus.rc
index 3369f950..296e7d35 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.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,270
- PRODUCTVERSION 1,3,4,270
+ 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.270"
+ 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.270"
+ VALUE "ProductVersion", "1.3.4.275"
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)