diff options
Diffstat (limited to 'src/libs/7zip/win/CPP/Common/StringConvert.cpp')
-rw-r--r-- | src/libs/7zip/win/CPP/Common/StringConvert.cpp | 165 |
1 files changed, 0 insertions, 165 deletions
diff --git a/src/libs/7zip/win/CPP/Common/StringConvert.cpp b/src/libs/7zip/win/CPP/Common/StringConvert.cpp deleted file mode 100644 index 0443a06ca..000000000 --- a/src/libs/7zip/win/CPP/Common/StringConvert.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// Common/StringConvert.cpp - -#include "StdAfx.h" - -#include "StringConvert.h" - -#ifndef _WIN32 -#include <stdlib.h> -#endif - -#ifdef _WIN32 -UString MultiByteToUnicodeString(const AString &srcString, UINT codePage) -{ - UString resultString; - if (!srcString.IsEmpty()) - { - int numChars = MultiByteToWideChar(codePage, 0, srcString, - srcString.Len(), resultString.GetBuffer(srcString.Len()), - srcString.Len() + 1); - if (numChars == 0) - throw 282228; - resultString.ReleaseBuffer(numChars); - } - return resultString; -} - -void MultiByteToUnicodeString2(UString &dest, const AString &srcString, UINT codePage) -{ - dest.Empty(); - if (!srcString.IsEmpty()) - { - wchar_t *destBuf = dest.GetBuffer(srcString.Len()); - const char *sp = (const char *)srcString; - unsigned i; - for (i = 0;;) - { - char c = sp[i]; - if ((Byte)c >= 0x80 || c == 0) - break; - destBuf[i++] = (wchar_t)c; - } - - if (i != srcString.Len()) - { - unsigned numChars = MultiByteToWideChar(codePage, 0, sp + i, - srcString.Len() - i, destBuf + i, - srcString.Len() + 1 - i); - if (numChars == 0) - throw 282228; - i += numChars; - } - dest.ReleaseBuffer(i); - } -} - -void UnicodeStringToMultiByte2(AString &dest, const UString &s, UINT codePage, char defaultChar, bool &defaultCharWasUsed) -{ - dest.Empty(); - defaultCharWasUsed = false; - if (!s.IsEmpty()) - { - unsigned numRequiredBytes = s.Len() * 2; - char *destBuf = dest.GetBuffer(numRequiredBytes); - unsigned i; - const wchar_t *sp = (const wchar_t *)s; - for (i = 0;;) - { - wchar_t c = sp[i]; - if (c >= 0x80 || c == 0) - break; - destBuf[i++] = (char)c; - } - defaultCharWasUsed = false; - if (i != s.Len()) - { - BOOL defUsed; - unsigned numChars = WideCharToMultiByte(codePage, 0, sp + i, s.Len() - i, - destBuf + i, numRequiredBytes + 1 - i, - &defaultChar, &defUsed); - defaultCharWasUsed = (defUsed != FALSE); - if (numChars == 0) - throw 282229; - i += numChars; - } - dest.ReleaseBuffer(i); - } -} - -void UnicodeStringToMultiByte2(AString &dest, const UString &srcString, UINT codePage) -{ - bool defaultCharWasUsed; - UnicodeStringToMultiByte2(dest, srcString, codePage, '_', defaultCharWasUsed); -} - -AString UnicodeStringToMultiByte(const UString &s, UINT codePage, char defaultChar, bool &defaultCharWasUsed) -{ - AString dest; - defaultCharWasUsed = false; - if (!s.IsEmpty()) - { - unsigned numRequiredBytes = s.Len() * 2; - BOOL defUsed; - int numChars = WideCharToMultiByte(codePage, 0, s, s.Len(), - dest.GetBuffer(numRequiredBytes), numRequiredBytes + 1, - &defaultChar, &defUsed); - defaultCharWasUsed = (defUsed != FALSE); - if (numChars == 0) - throw 282229; - dest.ReleaseBuffer(numChars); - } - return dest; -} - -AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage) -{ - bool defaultCharWasUsed; - return UnicodeStringToMultiByte(srcString, codePage, '_', defaultCharWasUsed); -} - -#ifndef UNDER_CE -AString SystemStringToOemString(const CSysString &srcString) -{ - AString result; - CharToOem(srcString, result.GetBuffer(srcString.Len() * 2)); - result.ReleaseBuffer(); - return result; -} -#endif - -#else - -UString MultiByteToUnicodeString(const AString &srcString, UINT codePage) -{ - UString resultString; - for (unsigned i = 0; i < srcString.Len(); i++) - resultString += (wchar_t)srcString[i]; - /* - if (!srcString.IsEmpty()) - { - int numChars = mbstowcs(resultString.GetBuffer(srcString.Len()), srcString, srcString.Len() + 1); - if (numChars < 0) throw "Your environment does not support UNICODE"; - resultString.ReleaseBuffer(numChars); - } - */ - return resultString; -} - -AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage) -{ - AString resultString; - for (unsigned i = 0; i < srcString.Len(); i++) - resultString += (char)srcString[i]; - /* - if (!srcString.IsEmpty()) - { - int numRequiredBytes = srcString.Len() * 6 + 1; - int numChars = wcstombs(resultString.GetBuffer(numRequiredBytes), srcString, numRequiredBytes); - if (numChars < 0) throw "Your environment does not support UNICODE"; - resultString.ReleaseBuffer(numChars); - } - */ - return resultString; -} - -#endif |