Annotation of elwix/tools/oldlzma/SRC/Common/StringConvert.cpp, revision 1.1.1.1

1.1       misho       1: // Common/StringConvert.cpp
                      2: 
                      3: #include "StdAfx.h"
                      4: 
                      5: #include "StringConvert.h"
                      6: 
                      7: #ifndef _WIN32
                      8: #include <stdlib.h>
                      9: #endif
                     10: 
                     11: #ifdef _WIN32
                     12: UString MultiByteToUnicodeString(const AString &srcString, UINT codePage)
                     13: {
                     14:   UString resultString;
                     15:   if(!srcString.IsEmpty())
                     16:   {
                     17:     int numChars = MultiByteToWideChar(codePage, 0, srcString, 
                     18:       srcString.Length(), resultString.GetBuffer(srcString.Length()), 
                     19:       srcString.Length() + 1);
                     20:     #ifndef _WIN32_WCE
                     21:     if(numChars == 0)
                     22:       throw 282228;
                     23:     #endif
                     24:     resultString.ReleaseBuffer(numChars);
                     25:   }
                     26:   return resultString;
                     27: }
                     28: 
                     29: AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage)
                     30: {
                     31:   AString resultString;
                     32:   if(!srcString.IsEmpty())
                     33:   {
                     34:     int numRequiredBytes = srcString.Length() * 2;
                     35:     int numChars = WideCharToMultiByte(codePage, 0, srcString, 
                     36:       srcString.Length(), resultString.GetBuffer(numRequiredBytes), 
                     37:       numRequiredBytes + 1, NULL, NULL);
                     38:     #ifndef _WIN32_WCE
                     39:     if(numChars == 0)
                     40:       throw 282229;
                     41:     #endif
                     42:     resultString.ReleaseBuffer(numChars);
                     43:   }
                     44:   return resultString;
                     45: }
                     46: 
                     47: #ifndef _WIN32_WCE
                     48: AString SystemStringToOemString(const CSysString &srcString)
                     49: {
                     50:   AString result;
                     51:   CharToOem(srcString, result.GetBuffer(srcString.Length() * 2));
                     52:   result.ReleaseBuffer();
                     53:   return result;
                     54: }
                     55: #endif
                     56: 
                     57: #else
                     58: 
                     59: UString MultiByteToUnicodeString(const AString &srcString, UINT codePage)
                     60: {
                     61:   UString resultString;
                     62:   for (int i = 0; i < srcString.Length(); i++)
                     63:     resultString += wchar_t(srcString[i]);
                     64:   /*
                     65:   if(!srcString.IsEmpty())
                     66:   {
                     67:     int numChars = mbstowcs(resultString.GetBuffer(srcString.Length()), srcString, srcString.Length() + 1);
                     68:     if (numChars < 0) throw "Your environment does not support UNICODE";
                     69:     resultString.ReleaseBuffer(numChars);
                     70:   }
                     71:   */
                     72:   return resultString;
                     73: }
                     74: 
                     75: AString UnicodeStringToMultiByte(const UString &srcString, UINT codePage)
                     76: {
                     77:   AString resultString;
                     78:   for (int i = 0; i < srcString.Length(); i++)
                     79:     resultString += char(srcString[i]);
                     80:   /*
                     81:   if(!srcString.IsEmpty())
                     82:   {
                     83:     int numRequiredBytes = srcString.Length() * 6 + 1;
                     84:     int numChars = wcstombs(resultString.GetBuffer(numRequiredBytes), srcString, numRequiredBytes);
                     85:     if (numChars < 0) throw "Your environment does not support UNICODE";
                     86:     resultString.ReleaseBuffer(numChars);
                     87:   }
                     88:   */
                     89:   return resultString;
                     90: }
                     91: 
                     92: #endif
                     93: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>