summaryrefslogtreecommitdiffstats
path: root/src/libs/7zip/unix/CPP/Common/StringConvert.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/7zip/unix/CPP/Common/StringConvert.cpp')
-rw-r--r--src/libs/7zip/unix/CPP/Common/StringConvert.cpp217
1 files changed, 0 insertions, 217 deletions
diff --git a/src/libs/7zip/unix/CPP/Common/StringConvert.cpp b/src/libs/7zip/unix/CPP/Common/StringConvert.cpp
deleted file mode 100644
index 78f3d90ef..000000000
--- a/src/libs/7zip/unix/CPP/Common/StringConvert.cpp
+++ /dev/null
@@ -1,217 +0,0 @@
-// Common/StringConvert.cpp
-
-#include "StdAfx.h"
-
-#include "StringConvert.h"
-extern "C"
-{
-int global_use_utf16_conversion = 0;
-}
-
-#ifdef LOCALE_IS_UTF8
-
-#ifdef __APPLE_CC__
-#define UInt32 macUIn32
-#include <CoreFoundation/CoreFoundation.h>
-#undef UInt32
-
-UString MultiByteToUnicodeString(const AString &srcString, UINT codePage)
-{
- if (!srcString.IsEmpty())
- {
- UString resultString;
- const char * path = &srcString[0];
-
-// FIXME size_t n = strlen(path);
-
- CFStringRef cfpath = CFStringCreateWithCString(NULL,path,kCFStringEncodingUTF8);
-
- if (cfpath)
- {
-
- CFMutableStringRef cfpath2 = CFStringCreateMutableCopy(NULL,0,cfpath);
- CFRelease(cfpath);
- CFStringNormalize(cfpath2,kCFStringNormalizationFormC);
-
- size_t n = CFStringGetLength(cfpath2);
- for(size_t i = 0 ; i< n ;i++) {
- resultString += CFStringGetCharacterAtIndex(cfpath2,i);
- }
-
- CFRelease(cfpath2);
-
- return resultString;
- }
- }
-
- UString resultString;
- for (int i = 0; i < srcString.Len(); i++)
- resultString += wchar_t(srcString[i] & 255);
-
- return resultString;
-}
-
-AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage)
-{
- if (!srcString.IsEmpty())
- {
- const wchar_t * wcs = &srcString[0];
- char utf8[4096];
- UniChar unipath[4096];
-
- size_t n = wcslen(wcs);
-
- for(size_t i = 0 ; i<= n ;i++) {
- unipath[i] = wcs[i];
- }
-
- CFStringRef cfpath = CFStringCreateWithCharacters(NULL,unipath,n);
-
- CFMutableStringRef cfpath2 = CFStringCreateMutableCopy(NULL,0,cfpath);
- CFRelease(cfpath);
- CFStringNormalize(cfpath2,kCFStringNormalizationFormD);
-
- CFStringGetCString(cfpath2,(char *)utf8,4096,kCFStringEncodingUTF8);
-
- CFRelease(cfpath2);
-
- return AString(utf8);
- }
-
- AString resultString;
- for (int i = 0; i < srcString.Len(); i++)
- {
- if (srcString[i] >= 256) resultString += '?';
- else resultString += char(srcString[i]);
- }
- return resultString;
-}
-
-#else /* __APPLE_CC__ */
-
-
-#include "UTFConvert.h"
-
-UString MultiByteToUnicodeString(const AString &srcString, UINT codePage)
-{
- if ((global_use_utf16_conversion) && (!srcString.IsEmpty()))
- {
- UString resultString;
- bool bret = ConvertUTF8ToUnicode(srcString,resultString);
- if (bret) return resultString;
- }
-
- UString resultString;
- for (int i = 0; i < srcString.Len(); i++)
- resultString += wchar_t(srcString[i] & 255);
-
- return resultString;
-}
-
-AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage)
-{
- if ((global_use_utf16_conversion) && (!srcString.IsEmpty()))
- {
- AString resultString;
- bool bret = ConvertUnicodeToUTF8(srcString,resultString);
- if (bret) return resultString;
- }
-
- AString resultString;
- for (int i = 0; i < srcString.Len(); i++)
- {
- if (srcString[i] >= 256) resultString += '?';
- else resultString += char(srcString[i]);
- }
- return resultString;
-}
-
-#endif /* __APPLE_CC__ */
-
-#else /* LOCALE_IS_UTF8 */
-
-UString MultiByteToUnicodeString(const AString &srcString, UINT /* codePage */ )
-{
-#ifdef ENV_HAVE_MBSTOWCS
- if ((global_use_utf16_conversion) && (!srcString.IsEmpty()))
- {
- UString resultString;
- int numChars = mbstowcs(resultString.GetBuffer(srcString.Len()),srcString,srcString.Len()+1);
- if (numChars >= 0) {
- resultString.ReleaseBuffer(numChars);
-
-#if WCHAR_MAX > 0xffff
- for (int i = numChars; i >= 0; i--) {
- if (resultString[i] > 0xffff) {
- wchar_t c = resultString[i] - 0x10000;
- resultString.Delete(i);
- resultString.Insert(i, ((c >> 10) & 0x3ff) + 0xd800);
- resultString.Insert(i + 1, (c & 0x3ff) + 0xdc00);
- numChars++;
- }
- }
-#endif
-
- return resultString;
- }
- }
-#endif
-
- UString resultString;
- for (int i = 0; i < srcString.Len(); i++)
- resultString += wchar_t(srcString[i] & 255);
-
- return resultString;
-}
-
-AString UnicodeStringToMultiByte(const UString &src, UINT /* codePage */ )
-{
-#ifdef ENV_HAVE_WCSTOMBS
-#if WCHAR_MAX > 0xffff
- UString srcString(src);
- for (int i = 0; i < srcString.Len(); i++) {
- if ((0xd800 <= srcString[i] && srcString[i] <= 0xdbff) && ((i + 1) < srcString.Len()) &&
- (0xdc00 <= srcString[i + 1] && srcString[i + 1] <= 0xdf00)) {
- wchar_t c = (((srcString[i] - 0xd800) << 10) | (srcString[i + 1] - 0xdc00)) + 0x10000;
- srcString.Delete(i, 2);
- srcString.Insert(i, c);
- }
- }
-#else
- UString &srcString = src;
-#endif
-
- if ((global_use_utf16_conversion) && (!srcString.IsEmpty()))
- {
- AString resultString;
- int numRequiredBytes = srcString.Len() * 6+1;
- int numChars = wcstombs(resultString.GetBuffer(numRequiredBytes),srcString,numRequiredBytes);
- if (numChars >= 0) {
- resultString.ReleaseBuffer(numChars);
- return resultString;
- }
- }
-#endif
-
- AString resultString;
- for (int i = 0; i < srcString.Len(); i++)
- {
- if (srcString[i] >= 256) resultString += '?';
- else resultString += char(srcString[i]);
- }
- return resultString;
-}
-
-#endif /* LOCALE_IS_UTF8 */
-
-
-void MultiByteToUnicodeString2(UString &dest, const AString &srcString, UINT codePage)
-{
- dest = MultiByteToUnicodeString(srcString,codePage);
-}
-
-void UnicodeStringToMultiByte2(AString &dest, const UString &srcString, UINT codePage)
-{
- dest = UnicodeStringToMultiByte(srcString,codePage);
-}
-