From 3901bf0ab88106a5b031cba7bc18d60cdebf7eef Mon Sep 17 00:00:00 2001 From: Igor Pavlov Date: Mon, 5 May 2008 00:00:00 +0000 Subject: 4.58 beta --- CPP/Common/CRC.cpp | 6 +----- CPP/Common/ListFileUtils.cpp | 1 + CPP/Common/StringConvert.cpp | 28 ++++++++++++++++--------- CPP/Common/StringConvert.h | 2 ++ CPP/Common/Types.h | 50 ++------------------------------------------ 5 files changed, 24 insertions(+), 63 deletions(-) (limited to 'CPP/Common') diff --git a/CPP/Common/CRC.cpp b/CPP/Common/CRC.cpp index b768128c..f151471b 100755 --- a/CPP/Common/CRC.cpp +++ b/CPP/Common/CRC.cpp @@ -7,8 +7,4 @@ extern "C" #include "../../C/7zCrc.h" } -class CCRCTableInit -{ -public: - CCRCTableInit() { CrcGenerateTable(); } -} g_CRCTableInit; +struct CCRCTableInit { CCRCTableInit() { CrcGenerateTable(); } } g_CRCTableInit; diff --git a/CPP/Common/ListFileUtils.cpp b/CPP/Common/ListFileUtils.cpp index 4f8a9e59..cf03d324 100755 --- a/CPP/Common/ListFileUtils.cpp +++ b/CPP/Common/ListFileUtils.cpp @@ -2,6 +2,7 @@ #include "StdAfx.h" +#include "MyWindows.h" #include "../Windows/FileIO.h" #include "ListFileUtils.h" diff --git a/CPP/Common/StringConvert.cpp b/CPP/Common/StringConvert.cpp index c0b19e16..762efd8d 100755 --- a/CPP/Common/StringConvert.cpp +++ b/CPP/Common/StringConvert.cpp @@ -26,23 +26,31 @@ UString MultiByteToUnicodeString(const AString &srcString, UINT codePage) return resultString; } -AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage) +AString UnicodeStringToMultiByte(const UString &s, UINT codePage, char defaultChar, bool &defaultCharWasUsed) { - AString resultString; - if(!srcString.IsEmpty()) + AString dest; + defaultCharWasUsed = false; + if (!s.IsEmpty()) { - int numRequiredBytes = srcString.Length() * 2; - char defaultChar = '_'; - int numChars = WideCharToMultiByte(codePage, 0, srcString, - srcString.Length(), resultString.GetBuffer(numRequiredBytes), - numRequiredBytes + 1, &defaultChar, NULL); + int numRequiredBytes = s.Length() * 2; + BOOL defUsed; + int numChars = WideCharToMultiByte(codePage, 0, s, s.Length(), + dest.GetBuffer(numRequiredBytes), numRequiredBytes + 1, + &defaultChar, &defUsed); + defaultCharWasUsed = (defUsed != FALSE); #ifndef _WIN32_WCE if(numChars == 0) throw 282229; #endif - resultString.ReleaseBuffer(numChars); + dest.ReleaseBuffer(numChars); } - return resultString; + return dest; +} + +AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage) +{ + bool defaultCharWasUsed; + return UnicodeStringToMultiByte(srcString, codePage, '_', defaultCharWasUsed); } #ifndef _WIN32_WCE diff --git a/CPP/Common/StringConvert.h b/CPP/Common/StringConvert.h index 32d8a3a1..0c37eb07 100755 --- a/CPP/Common/StringConvert.h +++ b/CPP/Common/StringConvert.h @@ -8,8 +8,10 @@ #include "Types.h" UString MultiByteToUnicodeString(const AString &srcString, UINT codePage = CP_ACP); +AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage, char defaultChar, bool &defaultCharWasUsed); AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage = CP_ACP); + inline const wchar_t* GetUnicodeString(const wchar_t* unicodeString) { return unicodeString; } inline const UString& GetUnicodeString(const UString &unicodeString) diff --git a/CPP/Common/Types.h b/CPP/Common/Types.h index 41d785e9..9365b327 100755 --- a/CPP/Common/Types.h +++ b/CPP/Common/Types.h @@ -3,55 +3,9 @@ #ifndef __COMMON_TYPES_H #define __COMMON_TYPES_H -#ifndef _7ZIP_BYTE_DEFINED -#define _7ZIP_BYTE_DEFINED -typedef unsigned char Byte; -#endif +#include "../../C/Types.h" -#ifndef _7ZIP_INT16_DEFINED -#define _7ZIP_INT16_DEFINED -typedef short Int16; -#endif - -#ifndef _7ZIP_UINT16_DEFINED -#define _7ZIP_UINT16_DEFINED -typedef unsigned short UInt16; -#endif - -#ifndef _7ZIP_INT32_DEFINED -#define _7ZIP_INT32_DEFINED -typedef int Int32; -#endif - -#ifndef _7ZIP_UINT32_DEFINED -#define _7ZIP_UINT32_DEFINED -typedef unsigned int UInt32; -#endif - -#ifdef _MSC_VER - -#ifndef _7ZIP_INT64_DEFINED -#define _7ZIP_INT64_DEFINED -typedef __int64 Int64; -#endif - -#ifndef _7ZIP_UINT64_DEFINED -#define _7ZIP_UINT64_DEFINED -typedef unsigned __int64 UInt64; -#endif - -#else - -#ifndef _7ZIP_INT64_DEFINED -#define _7ZIP_INT64_DEFINED -typedef long long int Int64; -#endif - -#ifndef _7ZIP_UINT64_DEFINED -#define _7ZIP_UINT64_DEFINED -typedef unsigned long long int UInt64; -#endif +typedef int HRes; #endif -#endif -- cgit v1.2.3