mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[misc] update to VS2015 and fix VS code analysis issues
* Also update Bled to latest, as well as build scripts * Note: Considering that Visual Studio 2015 is both freely and legally available for anyone who wants to use it to compile Rufus, starting with this commit, I will NOT be supporting any other version of Visual Studio but 2015.
This commit is contained in:
		
							parent
							
								
									b854f70bae
								
							
						
					
					
						commit
						5004374277
					
				
					 37 changed files with 199 additions and 141 deletions
				
			
		| 
						 | 
					@ -5,6 +5,7 @@ TARGET  = rufus
 | 
				
			||||||
# NB: UPX v3.09 or later is needed for LZMA compression (http://upx.sourceforge.net/)
 | 
					# NB: UPX v3.09 or later is needed for LZMA compression (http://upx.sourceforge.net/)
 | 
				
			||||||
release: all
 | 
					release: all
 | 
				
			||||||
	@mv src/$(TARGET)$(EXEEXT) .
 | 
						@mv src/$(TARGET)$(EXEEXT) .
 | 
				
			||||||
 | 
						@sleep 1
 | 
				
			||||||
	@$(STRIP) $(TARGET)$(EXEEXT)
 | 
						@$(STRIP) $(TARGET)$(EXEEXT)
 | 
				
			||||||
	@upx --lzma $(TARGET)$(EXEEXT)
 | 
						@upx --lzma $(TARGET)$(EXEEXT)
 | 
				
			||||||
	@mv $(TARGET)$(EXEEXT) $(TARGET)-$(VERSION)$(SUFFIX)$(EXEEXT)
 | 
						@mv $(TARGET)$(EXEEXT) $(TARGET)-$(VERSION)$(SUFFIX)$(EXEEXT)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -502,6 +502,7 @@ uninstall-am:
 | 
				
			||||||
# NB: UPX v3.09 or later is needed for LZMA compression (http://upx.sourceforge.net/)
 | 
					# NB: UPX v3.09 or later is needed for LZMA compression (http://upx.sourceforge.net/)
 | 
				
			||||||
release: all
 | 
					release: all
 | 
				
			||||||
	@mv src/$(TARGET)$(EXEEXT) .
 | 
						@mv src/$(TARGET)$(EXEEXT) .
 | 
				
			||||||
 | 
						@sleep 1
 | 
				
			||||||
	@$(STRIP) $(TARGET)$(EXEEXT)
 | 
						@$(STRIP) $(TARGET)$(EXEEXT)
 | 
				
			||||||
	@upx --lzma $(TARGET)$(EXEEXT)
 | 
						@upx --lzma $(TARGET)$(EXEEXT)
 | 
				
			||||||
	@mv $(TARGET)$(EXEEXT) $(TARGET)-$(VERSION)$(SUFFIX)$(EXEEXT)
 | 
						@mv $(TARGET)$(EXEEXT) $(TARGET)-$(VERSION)$(SUFFIX)$(EXEEXT)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
rm -f rufus*.exe
 | 
					rm -f rufus*.exe
 | 
				
			||||||
./configure --disable-debug "$@"
 | 
					./configure --disable-debug "$@"
 | 
				
			||||||
make -j4 clean
 | 
					make -j12 clean
 | 
				
			||||||
make -j4 release
 | 
					make -j12 release
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Microsoft Visual Studio Solution File, Format Version 12.00
 | 
					Microsoft Visual Studio Solution File, Format Version 12.00
 | 
				
			||||||
# Visual Studio 2013
 | 
					# Visual Studio 14
 | 
				
			||||||
VisualStudioVersion = 12.0.31101.0
 | 
					VisualStudioVersion = 14.0.23107.0
 | 
				
			||||||
MinimumVisualStudioVersion = 10.0.40219.1
 | 
					MinimumVisualStudioVersion = 10.0.40219.1
 | 
				
			||||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rufus", "src\.msvc\rufus.vcxproj", "{731858A7-0303-4988-877B-9C0DD6471864}"
 | 
					Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "rufus", "src\.msvc\rufus.vcxproj", "{731858A7-0303-4988-877B-9C0DD6471864}"
 | 
				
			||||||
EndProject
 | 
					EndProject
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
  <ItemGroup Label="ProjectConfigurations">
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
      <Configuration>Debug</Configuration>
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
| 
						 | 
					@ -29,23 +29,23 @@
 | 
				
			||||||
    <ConfigurationType>Application</ConfigurationType>
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <PlatformToolset>v120_xp</PlatformToolset>
 | 
					    <PlatformToolset>v140_xp</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>Application</ConfigurationType>
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120_xp</PlatformToolset>
 | 
					    <PlatformToolset>v140_xp</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>Application</ConfigurationType>
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>Application</ConfigurationType>
 | 
					    <ConfigurationType>Application</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionSettings">
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
| 
						 | 
					@ -88,6 +88,7 @@
 | 
				
			||||||
      <CompileAs>CompileAsC</CompileAs>
 | 
					      <CompileAs>CompileAsC</CompileAs>
 | 
				
			||||||
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
      <ExceptionHandling>false</ExceptionHandling>
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>4091;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <Link>
 | 
					    <Link>
 | 
				
			||||||
      <AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
					      <AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
| 
						 | 
					@ -115,6 +116,7 @@
 | 
				
			||||||
      <CompileAs>CompileAsC</CompileAs>
 | 
					      <CompileAs>CompileAsC</CompileAs>
 | 
				
			||||||
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
      <ExceptionHandling>false</ExceptionHandling>
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>4091;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <Link>
 | 
					    <Link>
 | 
				
			||||||
      <AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
					      <AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
| 
						 | 
					@ -138,6 +140,7 @@
 | 
				
			||||||
      <CompileAs>CompileAsC</CompileAs>
 | 
					      <CompileAs>CompileAsC</CompileAs>
 | 
				
			||||||
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
      <ExceptionHandling>false</ExceptionHandling>
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>4091;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <Link>
 | 
					    <Link>
 | 
				
			||||||
      <AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
					      <AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
| 
						 | 
					@ -164,6 +167,7 @@
 | 
				
			||||||
      <CompileAs>CompileAsC</CompileAs>
 | 
					      <CompileAs>CompileAsC</CompileAs>
 | 
				
			||||||
      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
					      <MultiProcessorCompilation>true</MultiProcessorCompilation>
 | 
				
			||||||
      <ExceptionHandling>false</ExceptionHandling>
 | 
					      <ExceptionHandling>false</ExceptionHandling>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>4091;28252;28253;%(DisableSpecificWarnings)</DisableSpecificWarnings>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <Link>
 | 
					    <Link>
 | 
				
			||||||
      <AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
					      <AdditionalDependencies>setupapi.lib;comctl32.lib;wininet.lib;shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
  <ItemGroup Label="ProjectConfigurations">
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
      <Configuration>Debug</Configuration>
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
| 
						 | 
					@ -65,22 +65,22 @@
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionSettings">
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -264,14 +264,15 @@ unpack_lzma_stream(transformer_state_t *xstate)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	while (global_pos + buffer_pos < header.dst_size) {
 | 
						while (global_pos + buffer_pos < header.dst_size) {
 | 
				
			||||||
		int pos_state = (buffer_pos + global_pos) & pos_state_mask;
 | 
							int pos_state = (buffer_pos + global_pos) & pos_state_mask;
 | 
				
			||||||
		uint16_t *prob = p + LZMA_IS_MATCH + (state << LZMA_NUM_POS_BITS_MAX) + pos_state;
 | 
							uintptr_t off1 = LZMA_IS_MATCH + (state << LZMA_NUM_POS_BITS_MAX) + pos_state;
 | 
				
			||||||
 | 
							uint16_t *prob1 = p + off1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (!rc_is_bit_1(rc, prob)) {
 | 
							if (!rc_is_bit_1(rc, prob1)) {
 | 
				
			||||||
			static const char next_state[LZMA_NUM_STATES] =
 | 
								static const char next_state[LZMA_NUM_STATES] =
 | 
				
			||||||
				{ 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5 };
 | 
									{ 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 4, 5 };
 | 
				
			||||||
			int mi = 1;
 | 
								int mi = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			prob = (p + LZMA_LITERAL
 | 
								prob1 = (p + LZMA_LITERAL
 | 
				
			||||||
			        + (LZMA_LIT_SIZE * ((((buffer_pos + global_pos) & literal_pos_mask) << lc)
 | 
								        + (LZMA_LIT_SIZE * ((((buffer_pos + global_pos) & literal_pos_mask) << lc)
 | 
				
			||||||
			                            + (previous_byte >> (8 - lc))
 | 
								                            + (previous_byte >> (8 - lc))
 | 
				
			||||||
			                           )
 | 
								                           )
 | 
				
			||||||
| 
						 | 
					@ -290,13 +291,13 @@ unpack_lzma_stream(transformer_state_t *xstate)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
					match_byte <<= 1;
 | 
										match_byte <<= 1;
 | 
				
			||||||
					bit = match_byte & 0x100;
 | 
										bit = match_byte & 0x100;
 | 
				
			||||||
					bit ^= (rc_get_bit(rc, prob + 0x100 + bit + mi, &mi) << 8); /* 0x100 or 0 */
 | 
										bit ^= (rc_get_bit(rc, prob1 + 0x100 + bit + mi, &mi) << 8); /* 0x100 or 0 */
 | 
				
			||||||
					if (bit)
 | 
										if (bit)
 | 
				
			||||||
						break;
 | 
											break;
 | 
				
			||||||
				} while (mi < 0x100);
 | 
									} while (mi < 0x100);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			while (mi < 0x100) {
 | 
								while (mi < 0x100) {
 | 
				
			||||||
				rc_get_bit(rc, prob + mi, &mi);
 | 
									rc_get_bit(rc, prob1 + mi, &mi);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			state = next_state[state];
 | 
								state = next_state[state];
 | 
				
			||||||
| 
						 | 
					@ -333,10 +334,8 @@ unpack_lzma_stream(transformer_state_t *xstate)
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				prob2 += LZMA_IS_REP_G0 - LZMA_IS_REP;
 | 
									prob2 += LZMA_IS_REP_G0 - LZMA_IS_REP;
 | 
				
			||||||
				if (!rc_is_bit_1(rc, prob2)) {
 | 
									if (!rc_is_bit_1(rc, prob2)) {
 | 
				
			||||||
					prob2 = (p + LZMA_IS_REP_0_LONG
 | 
										uintptr_t off2 = LZMA_IS_REP_0_LONG + (state << LZMA_NUM_POS_BITS_MAX) + pos_state;
 | 
				
			||||||
					        + (state << LZMA_NUM_POS_BITS_MAX)
 | 
										prob2 = p + off2;
 | 
				
			||||||
					        + pos_state
 | 
					 | 
				
			||||||
					);
 | 
					 | 
				
			||||||
					if (!rc_is_bit_1(rc, prob2)) {
 | 
										if (!rc_is_bit_1(rc, prob2)) {
 | 
				
			||||||
#if ENABLE_FEATURE_LZMA_FAST
 | 
					#if ENABLE_FEATURE_LZMA_FAST
 | 
				
			||||||
						uint32_t pos = buffer_pos - rep0;
 | 
											uint32_t pos = buffer_pos - rep0;
 | 
				
			||||||
| 
						 | 
					@ -397,13 +396,13 @@ unpack_lzma_stream(transformer_state_t *xstate)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if (state < 4) {
 | 
								if (state < 4) {
 | 
				
			||||||
				int pos_slot;
 | 
									int pos_slot;
 | 
				
			||||||
 | 
									uintptr_t off3 = LZMA_POS_SLOT +
 | 
				
			||||||
 | 
										((len < LZMA_NUM_LEN_TO_POS_STATES ? len :	LZMA_NUM_LEN_TO_POS_STATES - 1)
 | 
				
			||||||
 | 
											<< LZMA_NUM_POS_SLOT_BITS);
 | 
				
			||||||
				uint16_t *prob3;
 | 
									uint16_t *prob3;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				state += LZMA_NUM_LIT_STATES;
 | 
									state += LZMA_NUM_LIT_STATES;
 | 
				
			||||||
				prob3 = p + LZMA_POS_SLOT +
 | 
									prob3 = p + off3;
 | 
				
			||||||
				       ((len < LZMA_NUM_LEN_TO_POS_STATES ? len :
 | 
					 | 
				
			||||||
				         LZMA_NUM_LEN_TO_POS_STATES - 1)
 | 
					 | 
				
			||||||
				         << LZMA_NUM_POS_SLOT_BITS);
 | 
					 | 
				
			||||||
				rc_bit_tree_decode(rc, prob3,
 | 
									rc_bit_tree_decode(rc, prob3,
 | 
				
			||||||
					LZMA_NUM_POS_SLOT_BITS, &pos_slot);
 | 
										LZMA_NUM_POS_SLOT_BITS, &pos_slot);
 | 
				
			||||||
				rep0 = pos_slot;
 | 
									rep0 = pos_slot;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -541,6 +541,7 @@ INT_PTR CALLBACK ChecksumCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM
 | 
				
			||||||
		SetWindowTextA(GetDlgItem(hDlg, IDC_MD5), md5str);
 | 
							SetWindowTextA(GetDlgItem(hDlg, IDC_MD5), md5str);
 | 
				
			||||||
		SetWindowTextA(GetDlgItem(hDlg, IDC_SHA1), sha1str);
 | 
							SetWindowTextA(GetDlgItem(hDlg, IDC_SHA1), sha1str);
 | 
				
			||||||
		for (i=(int)safe_strlen(image_path); (i>0)&&(image_path[i]!='\\'); i--);
 | 
							for (i=(int)safe_strlen(image_path); (i>0)&&(image_path[i]!='\\'); i--);
 | 
				
			||||||
 | 
							if (image_path != NULL)	// VS code analysis has a false positive on this one
 | 
				
			||||||
			SetWindowTextU(hDlg, &image_path[i+1]);
 | 
								SetWindowTextU(hDlg, &image_path[i+1]);
 | 
				
			||||||
		// Set focus on the OK button
 | 
							// Set focus on the OK button
 | 
				
			||||||
		SendMessage(hDlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hDlg, IDOK), TRUE);
 | 
							SendMessage(hDlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hDlg, IDOK), TRUE);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -299,6 +299,9 @@ static BOOL ExtractMSDOS(const char* path)
 | 
				
			||||||
		"KEYB    COM", "KEYBOARDSYS", "KEYBRD2 SYS", "KEYBRD3 SYS", "KEYBRD4 SYS",
 | 
							"KEYB    COM", "KEYBOARDSYS", "KEYBRD2 SYS", "KEYBRD3 SYS", "KEYBRD4 SYS",
 | 
				
			||||||
		"DISPLAY SYS", "EGA     CPI", "EGA2    CPI", "EGA3    CPI" };
 | 
							"DISPLAY SYS", "EGA     CPI", "EGA2    CPI", "EGA3    CPI" };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (path == NULL)
 | 
				
			||||||
 | 
							return FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Reduce the visible mess by placing all the locale files into a subdir
 | 
						// Reduce the visible mess by placing all the locale files into a subdir
 | 
				
			||||||
	safe_strcpy(locale_path, sizeof(locale_path), path);
 | 
						safe_strcpy(locale_path, sizeof(locale_path), path);
 | 
				
			||||||
	safe_strcat(locale_path, sizeof(locale_path), "LOCALE\\");
 | 
						safe_strcat(locale_path, sizeof(locale_path), "LOCALE\\");
 | 
				
			||||||
| 
						 | 
					@ -386,7 +389,7 @@ BOOL ExtractFreeDOS(const char* path)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		hFile = CreateFileA(filename, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
 | 
							hFile = CreateFileA(filename, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE, NULL,
 | 
				
			||||||
			CREATE_ALWAYS, (i<2)?(FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM):FILE_ATTRIBUTE_NORMAL, NULL);
 | 
								CREATE_ALWAYS, (i<2)?(FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM):FILE_ATTRIBUTE_NORMAL, NULL);
 | 
				
			||||||
		if (hFile == INVALID_HANDLE_VALUE) {
 | 
							if ((hFile == NULL) || (hFile == INVALID_HANDLE_VALUE)) {
 | 
				
			||||||
			uprintf("Unable to create file '%s': %s.\n", filename, WindowsErrorString());
 | 
								uprintf("Unable to create file '%s': %s.\n", filename, WindowsErrorString());
 | 
				
			||||||
			return FALSE;
 | 
								return FALSE;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										29
									
								
								src/drive.c
									
										
									
									
									
								
							
							
						
						
									
										29
									
								
								src/drive.c
									
										
									
									
									
								
							| 
						 | 
					@ -28,6 +28,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "msapi_utf8.h"
 | 
					#include "msapi_utf8.h"
 | 
				
			||||||
#include "rufus.h"
 | 
					#include "rufus.h"
 | 
				
			||||||
 | 
					#include "file.h"
 | 
				
			||||||
#include "drive.h"
 | 
					#include "drive.h"
 | 
				
			||||||
#include "resource.h"
 | 
					#include "resource.h"
 | 
				
			||||||
#include "sys_types.h"
 | 
					#include "sys_types.h"
 | 
				
			||||||
| 
						 | 
					@ -585,21 +586,22 @@ const struct {int (*fn)(FILE *fp); char* str;} known_mbr[] = {
 | 
				
			||||||
BOOL AnalyzeMBR(HANDLE hPhysicalDrive, const char* TargetName)
 | 
					BOOL AnalyzeMBR(HANDLE hPhysicalDrive, const char* TargetName)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	const char* mbr_name = "Master Boot Record";
 | 
						const char* mbr_name = "Master Boot Record";
 | 
				
			||||||
	FILE fake_fd = { 0 };
 | 
						FAKE_FD fake_fd = { 0 };
 | 
				
			||||||
 | 
						FILE* fp = (FILE*)&fake_fd;
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fake_fd._ptr = (char*)hPhysicalDrive;
 | 
						fake_fd._handle = (char*)hPhysicalDrive;
 | 
				
			||||||
	fake_fd._bufsiz = SelectedDrive.Geometry.BytesPerSector;
 | 
						fake_fd._sector_size = SelectedDrive.Geometry.BytesPerSector;
 | 
				
			||||||
	// Might need correction, as we use this method for images and we may not have a target UFD yet
 | 
						// Might need correction, as we use this method for images and we may not have a target UFD yet
 | 
				
			||||||
	if (fake_fd._bufsiz < 512)
 | 
						if (fake_fd._sector_size < 512)
 | 
				
			||||||
		fake_fd._bufsiz = 512;
 | 
							fake_fd._sector_size = 512;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!is_br(&fake_fd)) {
 | 
						if (!is_br(fp)) {
 | 
				
			||||||
		uprintf("%s does not have an x86 %s\n", TargetName, mbr_name);
 | 
							uprintf("%s does not have an x86 %s\n", TargetName, mbr_name);
 | 
				
			||||||
		return FALSE;
 | 
							return FALSE;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	for (i=0; i<ARRAYSIZE(known_mbr); i++) {
 | 
						for (i=0; i<ARRAYSIZE(known_mbr); i++) {
 | 
				
			||||||
		if (known_mbr[i].fn(&fake_fd)) {
 | 
							if (known_mbr[i].fn(fp)) {
 | 
				
			||||||
			uprintf("%s has a %s %s\n", TargetName, known_mbr[i].str, mbr_name);
 | 
								uprintf("%s has a %s %s\n", TargetName, known_mbr[i].str, mbr_name);
 | 
				
			||||||
			return TRUE;
 | 
								return TRUE;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -623,20 +625,21 @@ const struct {int (*fn)(FILE *fp); char* str;} known_pbr[] = {
 | 
				
			||||||
BOOL AnalyzePBR(HANDLE hLogicalVolume)
 | 
					BOOL AnalyzePBR(HANDLE hLogicalVolume)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	const char* pbr_name = "Partition Boot Record";
 | 
						const char* pbr_name = "Partition Boot Record";
 | 
				
			||||||
	FILE fake_fd = { 0 };
 | 
						FAKE_FD fake_fd = { 0 };
 | 
				
			||||||
 | 
						FILE* fp = (FILE*)&fake_fd;
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fake_fd._ptr = (char*)hLogicalVolume;
 | 
						fake_fd._handle = (char*)hLogicalVolume;
 | 
				
			||||||
	fake_fd._bufsiz = SelectedDrive.Geometry.BytesPerSector;
 | 
						fake_fd._sector_size = SelectedDrive.Geometry.BytesPerSector;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!is_br(&fake_fd)) {
 | 
						if (!is_br(fp)) {
 | 
				
			||||||
		uprintf("Volume does not have an x86 %s\n", pbr_name);
 | 
							uprintf("Volume does not have an x86 %s\n", pbr_name);
 | 
				
			||||||
		return FALSE;
 | 
							return FALSE;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (is_fat_16_br(&fake_fd) || is_fat_32_br(&fake_fd)) {
 | 
						if (is_fat_16_br(fp) || is_fat_32_br(fp)) {
 | 
				
			||||||
		for (i=0; i<ARRAYSIZE(known_pbr); i++) {
 | 
							for (i=0; i<ARRAYSIZE(known_pbr); i++) {
 | 
				
			||||||
			if (known_pbr[i].fn(&fake_fd)) {
 | 
								if (known_pbr[i].fn(fp)) {
 | 
				
			||||||
				uprintf("Drive has a %s %s\n", known_pbr[i].str, pbr_name);
 | 
									uprintf("Drive has a %s %s\n", known_pbr[i].str, pbr_name);
 | 
				
			||||||
				return TRUE;
 | 
									return TRUE;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										67
									
								
								src/format.c
									
										
									
									
									
								
							
							
						
						
									
										67
									
								
								src/format.c
									
										
									
									
									
								
							| 
						 | 
					@ -857,7 +857,8 @@ static BOOL WriteMBR(HANDLE hPhysicalDrive)
 | 
				
			||||||
	BOOL r = FALSE;
 | 
						BOOL r = FALSE;
 | 
				
			||||||
	DWORD size;
 | 
						DWORD size;
 | 
				
			||||||
	unsigned char* buf = NULL;
 | 
						unsigned char* buf = NULL;
 | 
				
			||||||
	FILE fake_fd = { 0 };
 | 
						FAKE_FD fake_fd = { 0 };
 | 
				
			||||||
 | 
						FILE* fp = (FILE*)&fake_fd;
 | 
				
			||||||
	const char* using_msg = "Using %s MBR\n";
 | 
						const char* using_msg = "Using %s MBR\n";
 | 
				
			||||||
	int fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
 | 
						int fs = (int)ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem));
 | 
				
			||||||
	int bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
 | 
						int bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
 | 
				
			||||||
| 
						 | 
					@ -911,8 +912,8 @@ static BOOL WriteMBR(HANDLE hPhysicalDrive)
 | 
				
			||||||
		goto out;
 | 
							goto out;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fake_fd._ptr = (char*)hPhysicalDrive;
 | 
						fake_fd._handle = (char*)hPhysicalDrive;
 | 
				
			||||||
	fake_fd._bufsiz = SelectedDrive.Geometry.BytesPerSector;
 | 
						fake_fd._sector_size = SelectedDrive.Geometry.BytesPerSector;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// What follows is really a case statement with complex conditions listed
 | 
						// What follows is really a case statement with complex conditions listed
 | 
				
			||||||
	// by order of preference
 | 
						// by order of preference
 | 
				
			||||||
| 
						 | 
					@ -922,7 +923,7 @@ static BOOL WriteMBR(HANDLE hPhysicalDrive)
 | 
				
			||||||
	// Forced UEFI (by zeroing the MBR)
 | 
						// Forced UEFI (by zeroing the MBR)
 | 
				
			||||||
	if (tt == TT_UEFI) {
 | 
						if (tt == TT_UEFI) {
 | 
				
			||||||
		uprintf(using_msg, "zeroed");
 | 
							uprintf(using_msg, "zeroed");
 | 
				
			||||||
		r = write_zero_mbr(&fake_fd);
 | 
							r = write_zero_mbr(fp);
 | 
				
			||||||
		goto notify;
 | 
							goto notify;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
| 
						 | 
					@ -930,35 +931,35 @@ static BOOL WriteMBR(HANDLE hPhysicalDrive)
 | 
				
			||||||
	if ( (bt == BT_SYSLINUX_V4) || (bt == BT_SYSLINUX_V6) ||
 | 
						if ( (bt == BT_SYSLINUX_V4) || (bt == BT_SYSLINUX_V6) ||
 | 
				
			||||||
		 ((bt == BT_ISO) && (HAS_SYSLINUX(iso_report)) && (IS_FAT(fs))) ) {
 | 
							 ((bt == BT_ISO) && (HAS_SYSLINUX(iso_report)) && (IS_FAT(fs))) ) {
 | 
				
			||||||
		uprintf(using_msg, "Syslinux");
 | 
							uprintf(using_msg, "Syslinux");
 | 
				
			||||||
		r = write_syslinux_mbr(&fake_fd);
 | 
							r = write_syslinux_mbr(fp);
 | 
				
			||||||
		goto notify;
 | 
							goto notify;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Grub 2.0
 | 
						// Grub 2.0
 | 
				
			||||||
	if ( ((bt == BT_ISO) && (iso_report.has_grub2)) || (bt == BT_GRUB2) ) {
 | 
						if ( ((bt == BT_ISO) && (iso_report.has_grub2)) || (bt == BT_GRUB2) ) {
 | 
				
			||||||
		uprintf(using_msg, "Grub 2.0");
 | 
							uprintf(using_msg, "Grub 2.0");
 | 
				
			||||||
		r = write_grub2_mbr(&fake_fd);
 | 
							r = write_grub2_mbr(fp);
 | 
				
			||||||
		goto notify;
 | 
							goto notify;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Grub4DOS
 | 
						// Grub4DOS
 | 
				
			||||||
	if ( ((bt == BT_ISO) && (iso_report.has_grub4dos)) || (bt == BT_GRUB4DOS) ) {
 | 
						if ( ((bt == BT_ISO) && (iso_report.has_grub4dos)) || (bt == BT_GRUB4DOS) ) {
 | 
				
			||||||
		uprintf(using_msg, "Grub4DOS");
 | 
							uprintf(using_msg, "Grub4DOS");
 | 
				
			||||||
		r = write_grub_mbr(&fake_fd);
 | 
							r = write_grub_mbr(fp);
 | 
				
			||||||
		goto notify;
 | 
							goto notify;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// ReactOS
 | 
						// ReactOS
 | 
				
			||||||
	if (bt == BT_REACTOS) {
 | 
						if (bt == BT_REACTOS) {
 | 
				
			||||||
		uprintf(using_msg, "ReactOS");
 | 
							uprintf(using_msg, "ReactOS");
 | 
				
			||||||
		r = write_reactos_mbr(&fake_fd);
 | 
							r = write_reactos_mbr(fp);
 | 
				
			||||||
		goto notify;
 | 
							goto notify;
 | 
				
			||||||
	} 
 | 
						} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// KolibriOS
 | 
						// KolibriOS
 | 
				
			||||||
	if ( (bt == BT_ISO) && (iso_report.has_kolibrios) && (IS_FAT(fs))) {
 | 
						if ( (bt == BT_ISO) && (iso_report.has_kolibrios) && (IS_FAT(fs))) {
 | 
				
			||||||
		uprintf(using_msg, "KolibriOS");
 | 
							uprintf(using_msg, "KolibriOS");
 | 
				
			||||||
		r = write_kolibri_mbr(&fake_fd);
 | 
							r = write_kolibri_mbr(fp);
 | 
				
			||||||
		goto notify;
 | 
							goto notify;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -966,10 +967,10 @@ static BOOL WriteMBR(HANDLE hPhysicalDrive)
 | 
				
			||||||
windows_mbr:
 | 
					windows_mbr:
 | 
				
			||||||
	if ((IS_WINPE(iso_report.winpe) && !iso_report.uses_minint) || (IsChecked(IDC_RUFUS_MBR))) {
 | 
						if ((IS_WINPE(iso_report.winpe) && !iso_report.uses_minint) || (IsChecked(IDC_RUFUS_MBR))) {
 | 
				
			||||||
		uprintf(using_msg, APPLICATION_NAME);
 | 
							uprintf(using_msg, APPLICATION_NAME);
 | 
				
			||||||
		r = write_rufus_mbr(&fake_fd);
 | 
							r = write_rufus_mbr(fp);
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		uprintf(using_msg, "Windows 7");
 | 
							uprintf(using_msg, "Windows 7");
 | 
				
			||||||
		r = write_win7_mbr(&fake_fd);
 | 
							r = write_win7_mbr(fp);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
notify:
 | 
					notify:
 | 
				
			||||||
| 
						 | 
					@ -991,10 +992,11 @@ static BOOL WriteSBR(HANDLE hPhysicalDrive)
 | 
				
			||||||
	DWORD size, max_size, mbr_size = 0x200;
 | 
						DWORD size, max_size, mbr_size = 0x200;
 | 
				
			||||||
	int r, bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
 | 
						int r, bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
 | 
				
			||||||
	unsigned char* buf = NULL;
 | 
						unsigned char* buf = NULL;
 | 
				
			||||||
	FILE fake_fd = { 0 };
 | 
						FAKE_FD fake_fd = { 0 };
 | 
				
			||||||
 | 
						FILE* fp = (FILE*)&fake_fd;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fake_fd._ptr = (char*)hPhysicalDrive;
 | 
						fake_fd._handle = (char*)hPhysicalDrive;
 | 
				
			||||||
	fake_fd._bufsiz = SelectedDrive.Geometry.BytesPerSector;
 | 
						fake_fd._sector_size = SelectedDrive.Geometry.BytesPerSector;
 | 
				
			||||||
	// Ensure that we have sufficient space for the SBR
 | 
						// Ensure that we have sufficient space for the SBR
 | 
				
			||||||
	max_size = IsChecked(IDC_EXTRA_PARTITION) ?
 | 
						max_size = IsChecked(IDC_EXTRA_PARTITION) ?
 | 
				
			||||||
		(DWORD)(SelectedDrive.Geometry.BytesPerSector * SelectedDrive.Geometry.SectorsPerTrack) : 1024 * 1024;
 | 
							(DWORD)(SelectedDrive.Geometry.BytesPerSector * SelectedDrive.Geometry.SectorsPerTrack) : 1024 * 1024;
 | 
				
			||||||
| 
						 | 
					@ -1041,7 +1043,7 @@ static BOOL WriteSBR(HANDLE hPhysicalDrive)
 | 
				
			||||||
		uprintf("  SBR size is too large - You may need to uncheck 'Add fixes for old BIOSes'.");
 | 
							uprintf("  SBR size is too large - You may need to uncheck 'Add fixes for old BIOSes'.");
 | 
				
			||||||
		return FALSE;
 | 
							return FALSE;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	r = write_data(&fake_fd, mbr_size, buf, (uint64_t)size);
 | 
						r = write_data(fp, mbr_size, buf, (uint64_t)size);
 | 
				
			||||||
	safe_free(grub2_buf);
 | 
						safe_free(grub2_buf);
 | 
				
			||||||
	return (r != 0);
 | 
						return (r != 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1060,66 +1062,67 @@ static __inline const char* bt_to_name(int bt) {
 | 
				
			||||||
static BOOL WritePBR(HANDLE hLogicalVolume)
 | 
					static BOOL WritePBR(HANDLE hLogicalVolume)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
	FILE fake_fd = { 0 };
 | 
						FAKE_FD fake_fd = { 0 };
 | 
				
			||||||
 | 
						FILE* fp = (FILE*)&fake_fd;
 | 
				
			||||||
	int bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
 | 
						int bt = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType));
 | 
				
			||||||
	const char* using_msg = "Using %s %s partition boot record\n";
 | 
						const char* using_msg = "Using %s %s partition boot record\n";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fake_fd._ptr = (char*)hLogicalVolume;
 | 
						fake_fd._handle = (char*)hLogicalVolume;
 | 
				
			||||||
	fake_fd._bufsiz = SelectedDrive.Geometry.BytesPerSector;
 | 
						fake_fd._sector_size = SelectedDrive.Geometry.BytesPerSector;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	switch (ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem))) {
 | 
						switch (ComboBox_GetItemData(hFileSystem, ComboBox_GetCurSel(hFileSystem))) {
 | 
				
			||||||
	case FS_FAT16:
 | 
						case FS_FAT16:
 | 
				
			||||||
		uprintf(using_msg, bt_to_name(bt), "FAT16");
 | 
							uprintf(using_msg, bt_to_name(bt), "FAT16");
 | 
				
			||||||
		if (!is_fat_16_fs(&fake_fd)) {
 | 
							if (!is_fat_16_fs(fp)) {
 | 
				
			||||||
			uprintf("New volume does not have a FAT16 boot sector - aborting\n");
 | 
								uprintf("New volume does not have a FAT16 boot sector - aborting\n");
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		uprintf("Confirmed new volume has a FAT16 boot sector\n");
 | 
							uprintf("Confirmed new volume has a FAT16 boot sector\n");
 | 
				
			||||||
		if (bt == BT_FREEDOS) {
 | 
							if (bt == BT_FREEDOS) {
 | 
				
			||||||
			if (!write_fat_16_fd_br(&fake_fd, 0)) break;
 | 
								if (!write_fat_16_fd_br(fp, 0)) break;
 | 
				
			||||||
		} else if (bt == BT_REACTOS) {
 | 
							} else if (bt == BT_REACTOS) {
 | 
				
			||||||
			if (!write_fat_16_ros_br(&fake_fd, 0)) break;
 | 
								if (!write_fat_16_ros_br(fp, 0)) break;
 | 
				
			||||||
		} else if ((bt == BT_ISO) && (iso_report.has_kolibrios)) {
 | 
							} else if ((bt == BT_ISO) && (iso_report.has_kolibrios)) {
 | 
				
			||||||
			uprintf("FAT16 is not supported for KolibriOS\n"); break;
 | 
								uprintf("FAT16 is not supported for KolibriOS\n"); break;
 | 
				
			||||||
		} else {
 | 
							} else {
 | 
				
			||||||
			if (!write_fat_16_br(&fake_fd, 0)) break;
 | 
								if (!write_fat_16_br(fp, 0)) break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		// Disk Drive ID needs to be corrected on XP
 | 
							// Disk Drive ID needs to be corrected on XP
 | 
				
			||||||
		if (!write_partition_physical_disk_drive_id_fat16(&fake_fd))
 | 
							if (!write_partition_physical_disk_drive_id_fat16(fp))
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		return TRUE;
 | 
							return TRUE;
 | 
				
			||||||
	case FS_FAT32:
 | 
						case FS_FAT32:
 | 
				
			||||||
		uprintf(using_msg, bt_to_name(bt), "FAT32");
 | 
							uprintf(using_msg, bt_to_name(bt), "FAT32");
 | 
				
			||||||
		for (i=0; i<2; i++) {
 | 
							for (i=0; i<2; i++) {
 | 
				
			||||||
			if (!is_fat_32_fs(&fake_fd)) {
 | 
								if (!is_fat_32_fs(fp)) {
 | 
				
			||||||
				uprintf("New volume does not have a %s FAT32 boot sector - aborting\n", i?"secondary":"primary");
 | 
									uprintf("New volume does not have a %s FAT32 boot sector - aborting\n", i?"secondary":"primary");
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			uprintf("Confirmed new volume has a %s FAT32 boot sector\n", i?"secondary":"primary");
 | 
								uprintf("Confirmed new volume has a %s FAT32 boot sector\n", i?"secondary":"primary");
 | 
				
			||||||
			uprintf("Setting %s FAT32 boot sector for boot...\n", i?"secondary":"primary");
 | 
								uprintf("Setting %s FAT32 boot sector for boot...\n", i?"secondary":"primary");
 | 
				
			||||||
			if (bt == BT_FREEDOS) {
 | 
								if (bt == BT_FREEDOS) {
 | 
				
			||||||
				if (!write_fat_32_fd_br(&fake_fd, 0)) break;
 | 
									if (!write_fat_32_fd_br(fp, 0)) break;
 | 
				
			||||||
			} else if (bt == BT_REACTOS) {
 | 
								} else if (bt == BT_REACTOS) {
 | 
				
			||||||
				if (!write_fat_32_ros_br(&fake_fd, 0)) break;
 | 
									if (!write_fat_32_ros_br(fp, 0)) break;
 | 
				
			||||||
			} else if ((bt == BT_ISO) && (iso_report.has_kolibrios)) {
 | 
								} else if ((bt == BT_ISO) && (iso_report.has_kolibrios)) {
 | 
				
			||||||
				if (!write_fat_32_kos_br(&fake_fd, 0)) break;
 | 
									if (!write_fat_32_kos_br(fp, 0)) break;
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				if (!write_fat_32_br(&fake_fd, 0)) break;
 | 
									if (!write_fat_32_br(fp, 0)) break;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			// Disk Drive ID needs to be corrected on XP
 | 
								// Disk Drive ID needs to be corrected on XP
 | 
				
			||||||
			if (!write_partition_physical_disk_drive_id_fat32(&fake_fd))
 | 
								if (!write_partition_physical_disk_drive_id_fat32(fp))
 | 
				
			||||||
				break;
 | 
									break;
 | 
				
			||||||
			fake_fd._cnt += 6 * SelectedDrive.Geometry.BytesPerSector;
 | 
								fake_fd._offset += 6 * SelectedDrive.Geometry.BytesPerSector;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return TRUE;
 | 
							return TRUE;
 | 
				
			||||||
	case FS_NTFS:
 | 
						case FS_NTFS:
 | 
				
			||||||
		uprintf(using_msg, bt_to_name(bt), "NTFS");
 | 
							uprintf(using_msg, bt_to_name(bt), "NTFS");
 | 
				
			||||||
		if (!is_ntfs_fs(&fake_fd)) {
 | 
							if (!is_ntfs_fs(fp)) {
 | 
				
			||||||
			uprintf("New volume does not have an NTFS boot sector - aborting\n");
 | 
								uprintf("New volume does not have an NTFS boot sector - aborting\n");
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		uprintf("Confirmed new volume has an NTFS boot sector\n");
 | 
							uprintf("Confirmed new volume has an NTFS boot sector\n");
 | 
				
			||||||
		if (!write_ntfs_br(&fake_fd)) break;
 | 
							if (!write_ntfs_br(fp)) break;
 | 
				
			||||||
		// Note: NTFS requires a full remount after writing the PBR. We dismount when we lock
 | 
							// Note: NTFS requires a full remount after writing the PBR. We dismount when we lock
 | 
				
			||||||
		// and also go through a forced remount, so that shouldn't be an issue.
 | 
							// and also go through a forced remount, so that shouldn't be an issue.
 | 
				
			||||||
		// But with NTFS, if you don't remount, you don't boot!
 | 
							// But with NTFS, if you don't remount, you don't boot!
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
  <ItemGroup Label="ProjectConfigurations">
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
      <Configuration>Debug</Configuration>
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
| 
						 | 
					@ -27,23 +27,23 @@
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionSettings">
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
| 
						 | 
					@ -79,6 +79,7 @@
 | 
				
			||||||
      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
 | 
					      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
 | 
				
			||||||
      <WarningLevel>Level3</WarningLevel>
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
					      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <Lib>
 | 
					    <Lib>
 | 
				
			||||||
      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
| 
						 | 
					@ -93,6 +94,7 @@
 | 
				
			||||||
      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
 | 
					      <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
 | 
				
			||||||
      <WarningLevel>Level3</WarningLevel>
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
					      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <Lib>
 | 
					    <Lib>
 | 
				
			||||||
      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
| 
						 | 
					@ -104,6 +106,7 @@
 | 
				
			||||||
      <PreprocessorDefinitions>HAVE_STRING_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
					      <PreprocessorDefinitions>HAVE_STRING_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
					      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
				
			||||||
      <WarningLevel>Level3</WarningLevel>
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <Lib>
 | 
					    <Lib>
 | 
				
			||||||
      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
| 
						 | 
					@ -117,6 +120,7 @@
 | 
				
			||||||
      <PreprocessorDefinitions>HAVE_STRING_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
					      <PreprocessorDefinitions>HAVE_STRING_H;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
 | 
				
			||||||
      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
					      <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
 | 
				
			||||||
      <WarningLevel>Level3</WarningLevel>
 | 
					      <WarningLevel>Level3</WarningLevel>
 | 
				
			||||||
 | 
					      <DisableSpecificWarnings>28252;28253</DisableSpecificWarnings>
 | 
				
			||||||
    </ClCompile>
 | 
					    </ClCompile>
 | 
				
			||||||
    <Lib>
 | 
					    <Lib>
 | 
				
			||||||
      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
					      <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
 | 
				
			||||||
| 
						 | 
					@ -129,6 +133,9 @@
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ClInclude Include="..\getopt.h" />
 | 
					    <ClInclude Include="..\getopt.h" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <None Include="ClassDiagram.cd" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionTargets">
 | 
					  <ImportGroup Label="ExtensionTargets">
 | 
				
			||||||
  </ImportGroup>
 | 
					  </ImportGroup>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,4 +23,7 @@
 | 
				
			||||||
      <Filter>Header Files</Filter>
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
 | 
					  <ItemGroup>
 | 
				
			||||||
 | 
					    <None Include="ClassDiagram.cd" />
 | 
				
			||||||
 | 
					  </ItemGroup>
 | 
				
			||||||
</Project>
 | 
					</Project>
 | 
				
			||||||
| 
						 | 
					@ -194,7 +194,7 @@ static BOOL check_iso_props(const char* psz_dirname, int64_t i_file_length, cons
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Check for "install.wim" or "install.swm" in "/sources"
 | 
							// Check for "install.wim" or "install.swm" in "/sources"
 | 
				
			||||||
		if (safe_stricmp(psz_dirname, install_wim_path) == 0) {
 | 
							if ((install_wim_path != NULL) && (safe_stricmp(psz_dirname, install_wim_path) == 0)) {
 | 
				
			||||||
			for (i=0; i<ARRAYSIZE(install_wim_name); i++)
 | 
								for (i=0; i<ARRAYSIZE(install_wim_name); i++)
 | 
				
			||||||
				if (safe_stricmp(psz_basename, install_wim_name[i]) == 0)
 | 
									if (safe_stricmp(psz_basename, install_wim_name[i]) == 0)
 | 
				
			||||||
					static_sprintf(iso_report.install_wim_path, "?:\\%s\\%s", &install_wim_path[1], install_wim_name[i]);
 | 
										static_sprintf(iso_report.install_wim_path, "?:\\%s\\%s", &install_wim_path[1], install_wim_name[i]);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -111,9 +111,14 @@ static __inline int fseeko64(FILE *stream, __int64 offset, int origin) {
 | 
				
			||||||
/* #undef HAVE_SLEEP */
 | 
					/* #undef HAVE_SLEEP */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Define to 1 if you have the `snprintf' function. */
 | 
					/* Define to 1 if you have the `snprintf' function. */
 | 
				
			||||||
 | 
					#if defined(_MSC_VER) && (_MSC_VER >= 1900)
 | 
				
			||||||
#define HAVE_SNPRINTF 1
 | 
					#define HAVE_SNPRINTF 1
 | 
				
			||||||
/* The equivalent of snprintf on MSVC is _snprintf */
 | 
					#endif
 | 
				
			||||||
#define snprintf _snprintf
 | 
					
 | 
				
			||||||
 | 
					/* Define to 1 if you have the `vsnprintf' function. */
 | 
				
			||||||
 | 
					#if defined(_MSC_VER) && (_MSC_VER >= 1900)
 | 
				
			||||||
 | 
					#define HAVE_VSNPRINTF
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Define to 1 if you have the <stdarg.h> header file. */
 | 
					/* Define to 1 if you have the <stdarg.h> header file. */
 | 
				
			||||||
#define HAVE_STDARG_H 1
 | 
					#define HAVE_STDARG_H 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
  <ItemGroup Label="ProjectConfigurations">
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
      <Configuration>Debug</Configuration>
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
| 
						 | 
					@ -36,6 +36,7 @@
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\ds.h" />
 | 
					    <ClInclude Include="..\..\cdio\ds.h" />
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\logging.h" />
 | 
					    <ClInclude Include="..\..\cdio\logging.h" />
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\memory.h" />
 | 
					    <ClInclude Include="..\..\cdio\memory.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\cdio\portable.h" />
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\sector.h" />
 | 
					    <ClInclude Include="..\..\cdio\sector.h" />
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\types.h" />
 | 
					    <ClInclude Include="..\..\cdio\types.h" />
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\util.h" />
 | 
					    <ClInclude Include="..\..\cdio\util.h" />
 | 
				
			||||||
| 
						 | 
					@ -44,7 +45,6 @@
 | 
				
			||||||
    <ClInclude Include="..\cdio_assert.h" />
 | 
					    <ClInclude Include="..\cdio_assert.h" />
 | 
				
			||||||
    <ClInclude Include="..\cdio_private.h" />
 | 
					    <ClInclude Include="..\cdio_private.h" />
 | 
				
			||||||
    <ClInclude Include="..\filemode.h" />
 | 
					    <ClInclude Include="..\filemode.h" />
 | 
				
			||||||
    <ClInclude Include="..\portable.h" />
 | 
					 | 
				
			||||||
    <ClInclude Include="..\_cdio_stdio.h" />
 | 
					    <ClInclude Include="..\_cdio_stdio.h" />
 | 
				
			||||||
    <ClInclude Include="..\_cdio_stream.h" />
 | 
					    <ClInclude Include="..\_cdio_stream.h" />
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
| 
						 | 
					@ -59,27 +59,27 @@
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionSettings">
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -79,9 +79,6 @@
 | 
				
			||||||
    <ClInclude Include="..\..\config.h">
 | 
					    <ClInclude Include="..\..\config.h">
 | 
				
			||||||
      <Filter>Header Files</Filter>
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
    <ClInclude Include="..\portable.h">
 | 
					 | 
				
			||||||
      <Filter>Header Files</Filter>
 | 
					 | 
				
			||||||
    </ClInclude>
 | 
					 | 
				
			||||||
    <ClInclude Include="..\..\cdio\sector.h">
 | 
					    <ClInclude Include="..\..\cdio\sector.h">
 | 
				
			||||||
      <Filter>Header Files</Filter>
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
| 
						 | 
					@ -91,5 +88,8 @@
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\memory.h">
 | 
					    <ClInclude Include="..\..\cdio\memory.h">
 | 
				
			||||||
      <Filter>Header Files</Filter>
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\cdio\portable.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
</Project>
 | 
					</Project>
 | 
				
			||||||
| 
						 | 
					@ -33,8 +33,8 @@
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <cdio/logging.h>
 | 
					#include <cdio/logging.h>
 | 
				
			||||||
 | 
					#include <cdio/portable.h>
 | 
				
			||||||
#include "cdio_assert.h"
 | 
					#include "cdio_assert.h"
 | 
				
			||||||
#include "portable.h"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
cdio_log_level_t cdio_loglevel_default = CDIO_LOG_WARN;
 | 
					cdio_log_level_t cdio_loglevel_default = CDIO_LOG_WARN;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -24,8 +24,8 @@
 | 
				
			||||||
#include <cdio/sector.h>
 | 
					#include <cdio/sector.h>
 | 
				
			||||||
#include <cdio/util.h>
 | 
					#include <cdio/util.h>
 | 
				
			||||||
#include <cdio/logging.h>
 | 
					#include <cdio/logging.h>
 | 
				
			||||||
 | 
					#include <cdio/portable.h>
 | 
				
			||||||
#include "cdio_assert.h"
 | 
					#include "cdio_assert.h"
 | 
				
			||||||
#include "portable.h"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef HAVE_STDIO_H
 | 
					#ifdef HAVE_STDIO_H
 | 
				
			||||||
#include <stdio.h>
 | 
					#include <stdio.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
  <ItemGroup Label="ProjectConfigurations">
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
      <Configuration>Debug</Configuration>
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
| 
						 | 
					@ -24,6 +24,7 @@
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\cdtext.h" />
 | 
					    <ClInclude Include="..\..\cdio\cdtext.h" />
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\iso9660.h" />
 | 
					    <ClInclude Include="..\..\cdio\iso9660.h" />
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\logging.h" />
 | 
					    <ClInclude Include="..\..\cdio\logging.h" />
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\cdio\portable.h" />
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\utf8.h" />
 | 
					    <ClInclude Include="..\..\cdio\utf8.h" />
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\util.h" />
 | 
					    <ClInclude Include="..\..\cdio\util.h" />
 | 
				
			||||||
    <ClInclude Include="..\..\config.h" />
 | 
					    <ClInclude Include="..\..\config.h" />
 | 
				
			||||||
| 
						 | 
					@ -50,27 +51,27 @@
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionSettings">
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -50,6 +50,9 @@
 | 
				
			||||||
    <ClInclude Include="..\..\cdio\cdtext.h">
 | 
					    <ClInclude Include="..\..\cdio\cdtext.h">
 | 
				
			||||||
      <Filter>Header Files</Filter>
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
    </ClInclude>
 | 
					    </ClInclude>
 | 
				
			||||||
 | 
					    <ClInclude Include="..\..\cdio\portable.h">
 | 
				
			||||||
 | 
					      <Filter>Header Files</Filter>
 | 
				
			||||||
 | 
					    </ClInclude>
 | 
				
			||||||
  </ItemGroup>
 | 
					  </ItemGroup>
 | 
				
			||||||
  <ItemGroup>
 | 
					  <ItemGroup>
 | 
				
			||||||
    <ClCompile Include="..\iso9660_fs.c">
 | 
					    <ClCompile Include="..\iso9660_fs.c">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -31,6 +31,7 @@ const char ISO_STANDARD_ID[] = {'C', 'D', '0', '0', '1'};
 | 
				
			||||||
#include <cdio/bytesex.h>
 | 
					#include <cdio/bytesex.h>
 | 
				
			||||||
#include <cdio/iso9660.h>
 | 
					#include <cdio/iso9660.h>
 | 
				
			||||||
#include <cdio/util.h>
 | 
					#include <cdio/util.h>
 | 
				
			||||||
 | 
					#include <cdio/portable.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <time.h>
 | 
					#include <time.h>
 | 
				
			||||||
#include <ctype.h>
 | 
					#include <ctype.h>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -47,6 +47,7 @@
 | 
				
			||||||
#include <cdio/iso9660.h>
 | 
					#include <cdio/iso9660.h>
 | 
				
			||||||
#include <cdio/util.h>
 | 
					#include <cdio/util.h>
 | 
				
			||||||
#include <cdio/utf8.h>
 | 
					#include <cdio/utf8.h>
 | 
				
			||||||
 | 
					#include <cdio/portable.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Private headers */
 | 
					/* Private headers */
 | 
				
			||||||
#include "cdio_assert.h"
 | 
					#include "cdio_assert.h"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
  <ItemGroup Label="ProjectConfigurations">
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
      <Configuration>Debug</Configuration>
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
| 
						 | 
					@ -45,27 +45,27 @@
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionSettings">
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
  <ItemGroup Label="ProjectConfigurations">
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
      <Configuration>Debug</Configuration>
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
| 
						 | 
					@ -81,27 +81,27 @@
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionSettings">
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -174,10 +174,10 @@ int is_zero_mbr(FILE *fp)
 | 
				
			||||||
static int write_bootmark(FILE *fp)
 | 
					static int write_bootmark(FILE *fp)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	unsigned char aucRef[] = {0x55, 0xAA};
 | 
						unsigned char aucRef[] = {0x55, 0xAA};
 | 
				
			||||||
	int pos = 0x1FE;
 | 
						uint32_t pos = 0x1FE;
 | 
				
			||||||
 | 
						FAKE_FD* fd = (FAKE_FD*)fp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* We use fp->_bufsiz as our sector size indicator */
 | 
						for (pos = 0x1FE; pos < fd->_sector_size; pos += 0x200) {
 | 
				
			||||||
	for (pos = 0x1FE; pos < fp->_bufsiz; pos += 0x200) {
 | 
					 | 
				
			||||||
		if (!write_data(fp, pos, aucRef, sizeof(aucRef)))
 | 
							if (!write_data(fp, pos, aucRef, sizeof(aucRef)))
 | 
				
			||||||
			return 0;
 | 
								return 0;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -89,19 +89,20 @@ int64_t read_sectors(HANDLE hDrive, uint64_t SectorSize,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * The following calls use a bastardized fp on Windows that contains:
 | 
					 * The following calls use a hijacked fp on Windows that contains:
 | 
				
			||||||
 * fp->_ptr: a Windows handle
 | 
					 * fp->_handle: a Windows handle
 | 
				
			||||||
 * fp->_bufsiz: the sector size
 | 
					 * fp->_sector_size: the sector size
 | 
				
			||||||
 * fp->_cnt: a file offset
 | 
					 * fp->_offset: a file offset
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
int contains_data(FILE *fp, uint64_t Position,
 | 
					int contains_data(FILE *fp, uint64_t Position,
 | 
				
			||||||
                  const void *pData, uint64_t Len)
 | 
					                  const void *pData, uint64_t Len)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
   unsigned char aucBuf[MAX_DATA_LEN];
 | 
					   unsigned char aucBuf[MAX_DATA_LEN];
 | 
				
			||||||
   HANDLE hDrive = (HANDLE)fp->_ptr;
 | 
					   FAKE_FD* fd = (FAKE_FD*)fp;
 | 
				
			||||||
   uint64_t SectorSize = (uint64_t)fp->_bufsiz;
 | 
					   HANDLE hDrive = (HANDLE)fd->_handle;
 | 
				
			||||||
 | 
					   uint64_t SectorSize = (uint64_t)fd->_sector_size;
 | 
				
			||||||
   uint64_t StartSector, EndSector, NumSectors;
 | 
					   uint64_t StartSector, EndSector, NumSectors;
 | 
				
			||||||
   Position += (uint64_t)fp->_cnt;
 | 
					   Position += fd->_offset;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   StartSector = Position/SectorSize;
 | 
					   StartSector = Position/SectorSize;
 | 
				
			||||||
   EndSector   = (Position+Len+SectorSize-1)/SectorSize;
 | 
					   EndSector   = (Position+Len+SectorSize-1)/SectorSize;
 | 
				
			||||||
| 
						 | 
					@ -133,10 +134,11 @@ int write_data(FILE *fp, uint64_t Position,
 | 
				
			||||||
               const void *pData, uint64_t Len)
 | 
					               const void *pData, uint64_t Len)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
   unsigned char aucBuf[MAX_DATA_LEN];
 | 
					   unsigned char aucBuf[MAX_DATA_LEN];
 | 
				
			||||||
   HANDLE hDrive = (HANDLE)fp->_ptr;
 | 
					   FAKE_FD* fd = (FAKE_FD*)fp;
 | 
				
			||||||
   uint64_t SectorSize = (uint64_t)fp->_bufsiz;
 | 
					   HANDLE hDrive = (HANDLE)fd->_handle;
 | 
				
			||||||
 | 
					   uint64_t SectorSize = (uint64_t)fd->_sector_size;
 | 
				
			||||||
   uint64_t StartSector, EndSector, NumSectors;
 | 
					   uint64_t StartSector, EndSector, NumSectors;
 | 
				
			||||||
   Position += (uint64_t)fp->_cnt;
 | 
					   Position += fd->_offset;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
   StartSector = Position/SectorSize;
 | 
					   StartSector = Position/SectorSize;
 | 
				
			||||||
   EndSector   = (Position+Len+SectorSize-1)/SectorSize;
 | 
					   EndSector   = (Position+Len+SectorSize-1)/SectorSize;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,6 +6,13 @@
 | 
				
			||||||
/* Max valid value of uiLen for contains_data */
 | 
					/* Max valid value of uiLen for contains_data */
 | 
				
			||||||
#define MAX_DATA_LEN 32768
 | 
					#define MAX_DATA_LEN 32768
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* We hijack the FILE structure for our own needs */
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
						void *_handle;
 | 
				
			||||||
 | 
						uint64_t _offset;
 | 
				
			||||||
 | 
						uint32_t _sector_size;
 | 
				
			||||||
 | 
					} FAKE_FD;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Checks if a file contains a data pattern of length Len at position
 | 
					/* Checks if a file contains a data pattern of length Len at position
 | 
				
			||||||
   Position. The file pointer will change when calling this function! */
 | 
					   Position. The file pointer will change when calling this function! */
 | 
				
			||||||
int contains_data(FILE *fp, uint64_t Position,
 | 
					int contains_data(FILE *fp, uint64_t Position,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -270,6 +270,9 @@ DWORD DownloadFile(const char* url, const char* file, HWND hProgressDialog)
 | 
				
			||||||
		SendMessage(hProgressDialog, UM_PROGRESS_INIT, 0, 0);
 | 
							SendMessage(hProgressDialog, UM_PROGRESS_INIT, 0, 0);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (file == NULL)
 | 
				
			||||||
 | 
							goto out;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (last_slash = safe_strlen(file); last_slash != 0; last_slash--) {
 | 
						for (last_slash = safe_strlen(file); last_slash != 0; last_slash--) {
 | 
				
			||||||
		if ((file[last_slash] == '/') || (file[last_slash] == '\\')) {
 | 
							if ((file[last_slash] == '/') || (file[last_slash] == '\\')) {
 | 
				
			||||||
			last_slash++;
 | 
								last_slash++;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,15 +59,20 @@ static __inline BOOL _GetRegistryKey(HKEY key_root, const char* key_name, DWORD
 | 
				
			||||||
	LONG s;
 | 
						LONG s;
 | 
				
			||||||
	HKEY hSoftware = NULL, hApp = NULL;
 | 
						HKEY hSoftware = NULL, hApp = NULL;
 | 
				
			||||||
	DWORD dwDisp, dwType = -1, dwSize = dest_size;
 | 
						DWORD dwDisp, dwType = -1, dwSize = dest_size;
 | 
				
			||||||
	char long_key_name[256] = "SOFTWARE\\";
 | 
						// VS Code Analysis complains if we don't break our initialization into chars
 | 
				
			||||||
 | 
						char long_key_name[256] = { 0 };
 | 
				
			||||||
	memset(dest, 0, dest_size);
 | 
						memset(dest, 0, dest_size);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if (key_name == NULL)
 | 
				
			||||||
 | 
							return FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i=safe_strlen(key_name); i>0; i--) {
 | 
						for (i=safe_strlen(key_name); i>0; i--) {
 | 
				
			||||||
		if (key_name[i] == '\\')
 | 
							if (key_name[i] == '\\')
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (i != 0) {
 | 
						if (i != 0) {
 | 
				
			||||||
 | 
							strcpy(long_key_name, "SOFTWARE\\");
 | 
				
			||||||
		safe_strcat(long_key_name, sizeof(long_key_name), key_name);
 | 
							safe_strcat(long_key_name, sizeof(long_key_name), key_name);
 | 
				
			||||||
		long_key_name[sizeof("SOFTWARE\\") + i-1] = 0;
 | 
							long_key_name[sizeof("SOFTWARE\\") + i-1] = 0;
 | 
				
			||||||
		i++;
 | 
							i++;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2918,14 +2918,14 @@ relaunch:
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		// Alt-I => Toggle ISO support
 | 
							// Alt-I => Toggle ISO support
 | 
				
			||||||
		// This is useful if you have a dual ISO/DD image and you want to force Rufus to use
 | 
							// This is useful if you have an ISOHybrid image and you want to force Rufus to use
 | 
				
			||||||
		// DD-mode when writing the data.
 | 
							// DD-mode when writing the data.
 | 
				
			||||||
		if ((msg.message == WM_SYSKEYDOWN) && (msg.wParam == 'I')) {
 | 
							if ((msg.message == WM_SYSKEYDOWN) && (msg.wParam == 'I')) {
 | 
				
			||||||
			enable_iso = !enable_iso;
 | 
								enable_iso = !enable_iso;
 | 
				
			||||||
			PrintStatus2000(lmprintf(MSG_262), enable_iso);
 | 
								PrintStatus2000(lmprintf(MSG_262), enable_iso);
 | 
				
			||||||
			if (image_path != NULL) {
 | 
								if (image_path != NULL) {
 | 
				
			||||||
				iso_provided = TRUE;
 | 
									iso_provided = TRUE;
 | 
				
			||||||
				PostMessage(hDlg, WM_COMMAND, IDC_SELECT_ISO, 0);
 | 
									SendMessage(hDlg, WM_COMMAND, IDC_SELECT_ISO, 0);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			continue;
 | 
								continue;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							| 
						 | 
					@ -32,7 +32,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
IDD_DIALOG DIALOGEX 12, 12, 242, 376
 | 
					IDD_DIALOG DIALOGEX 12, 12, 242, 376
 | 
				
			||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
 | 
					STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
 | 
				
			||||||
CAPTION "Rufus 2.3.695"
 | 
					CAPTION "Rufus 2.3.696"
 | 
				
			||||||
FONT 8, "Segoe UI Symbol", 400, 0, 0x0
 | 
					FONT 8, "Segoe UI Symbol", 400, 0, 0x0
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
    LTEXT           "Device",IDS_DEVICE_TXT,9,6,200,8
 | 
					    LTEXT           "Device",IDS_DEVICE_TXT,9,6,200,8
 | 
				
			||||||
| 
						 | 
					@ -298,8 +298,8 @@ END
 | 
				
			||||||
//
 | 
					//
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VS_VERSION_INFO VERSIONINFO
 | 
					VS_VERSION_INFO VERSIONINFO
 | 
				
			||||||
 FILEVERSION 2,3,695,0
 | 
					 FILEVERSION 2,3,696,0
 | 
				
			||||||
 PRODUCTVERSION 2,3,695,0
 | 
					 PRODUCTVERSION 2,3,696,0
 | 
				
			||||||
 FILEFLAGSMASK 0x3fL
 | 
					 FILEFLAGSMASK 0x3fL
 | 
				
			||||||
#ifdef _DEBUG
 | 
					#ifdef _DEBUG
 | 
				
			||||||
 FILEFLAGS 0x1L
 | 
					 FILEFLAGS 0x1L
 | 
				
			||||||
| 
						 | 
					@ -316,13 +316,13 @@ BEGIN
 | 
				
			||||||
        BEGIN
 | 
					        BEGIN
 | 
				
			||||||
            VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
 | 
					            VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)"
 | 
				
			||||||
            VALUE "FileDescription", "Rufus"
 | 
					            VALUE "FileDescription", "Rufus"
 | 
				
			||||||
            VALUE "FileVersion", "2.3.695"
 | 
					            VALUE "FileVersion", "2.3.696"
 | 
				
			||||||
            VALUE "InternalName", "Rufus"
 | 
					            VALUE "InternalName", "Rufus"
 | 
				
			||||||
            VALUE "LegalCopyright", "© 2011-2015 Pete Batard (GPL v3)"
 | 
					            VALUE "LegalCopyright", "© 2011-2015 Pete Batard (GPL v3)"
 | 
				
			||||||
            VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
 | 
					            VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html"
 | 
				
			||||||
            VALUE "OriginalFilename", "rufus.exe"
 | 
					            VALUE "OriginalFilename", "rufus.exe"
 | 
				
			||||||
            VALUE "ProductName", "Rufus"
 | 
					            VALUE "ProductName", "Rufus"
 | 
				
			||||||
            VALUE "ProductVersion", "2.3.695"
 | 
					            VALUE "ProductVersion", "2.3.696"
 | 
				
			||||||
        END
 | 
					        END
 | 
				
			||||||
    END
 | 
					    END
 | 
				
			||||||
    BLOCK "VarFileInfo"
 | 
					    BLOCK "VarFileInfo"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
  <ItemGroup Label="ProjectConfigurations">
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
      <Configuration>Debug</Configuration>
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
| 
						 | 
					@ -41,27 +41,27 @@
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionSettings">
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
<?xml version="1.0" encoding="utf-8"?>
 | 
					<?xml version="1.0" encoding="utf-8"?>
 | 
				
			||||||
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
					<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 | 
				
			||||||
  <ItemGroup Label="ProjectConfigurations">
 | 
					  <ItemGroup Label="ProjectConfigurations">
 | 
				
			||||||
    <ProjectConfiguration Include="Debug|Win32">
 | 
					    <ProjectConfiguration Include="Debug|Win32">
 | 
				
			||||||
      <Configuration>Debug</Configuration>
 | 
					      <Configuration>Debug</Configuration>
 | 
				
			||||||
| 
						 | 
					@ -43,27 +43,27 @@
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>true</UseDebugLibraries>
 | 
					    <UseDebugLibraries>true</UseDebugLibraries>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
					  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
 | 
				
			||||||
    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
					    <ConfigurationType>StaticLibrary</ConfigurationType>
 | 
				
			||||||
    <UseDebugLibraries>false</UseDebugLibraries>
 | 
					    <UseDebugLibraries>false</UseDebugLibraries>
 | 
				
			||||||
    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
					    <WholeProgramOptimization>true</WholeProgramOptimization>
 | 
				
			||||||
    <CharacterSet>Unicode</CharacterSet>
 | 
					    <CharacterSet>Unicode</CharacterSet>
 | 
				
			||||||
    <PlatformToolset>v120</PlatformToolset>
 | 
					    <PlatformToolset>v140</PlatformToolset>
 | 
				
			||||||
  </PropertyGroup>
 | 
					  </PropertyGroup>
 | 
				
			||||||
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
					  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
 | 
				
			||||||
  <ImportGroup Label="ExtensionSettings">
 | 
					  <ImportGroup Label="ExtensionSettings">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -444,8 +444,12 @@ static BOOL WimExtractFile_7z(const char* image, int index, const char* src, con
 | 
				
			||||||
	char tmpdst[MAX_PATH];
 | 
						char tmpdst[MAX_PATH];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	uprintf("Opening: %s:[%d] (7-Zip)", image, index);
 | 
						uprintf("Opening: %s:[%d] (7-Zip)", image, index);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if ((image == NULL) || (src == NULL) || (dst == NULL))
 | 
				
			||||||
 | 
							return FALSE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	safe_strcpy(tmpdst, sizeof(tmpdst), dst);
 | 
						safe_strcpy(tmpdst, sizeof(tmpdst), dst);
 | 
				
			||||||
	for (i=safe_strlen(tmpdst); i>0; i--) {
 | 
						for (i=strlen(tmpdst)-1; i>0; i--) {
 | 
				
			||||||
		if (tmpdst[i] == '\\')
 | 
							if (tmpdst[i] == '\\')
 | 
				
			||||||
			break;
 | 
								break;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,7 +3,7 @@
 | 
				
			||||||
if Test%BUILD_ALT_DIR%==Test goto usage
 | 
					if Test%BUILD_ALT_DIR%==Test goto usage
 | 
				
			||||||
 | 
					
 | 
				
			||||||
::# /M 2 for multiple cores
 | 
					::# /M 2 for multiple cores
 | 
				
			||||||
set BUILD_CMD=build -bcwgZ -M2
 | 
					set BUILD_CMD=build -bcwgZ -M12
 | 
				
			||||||
set PWD=%~dp0
 | 
					set PWD=%~dp0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
::# Set target platform type
 | 
					::# Set target platform type
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue