X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/da3f3e049a3bcd9db16d73dd83c007e12f6c95e1..8482e4bdb9928fe9982ac214aee345b19894b39b:/src/common/encconv.cpp diff --git a/src/common/encconv.cpp b/src/common/encconv.cpp index 6fbf324fbf..dd7c28d520 100644 --- a/src/common/encconv.cpp +++ b/src/common/encconv.cpp @@ -4,7 +4,7 @@ // font encodings // Author: Vaclav Slavik // Copyright: (c) 1999 Vaclav Slavik -// Licence: wxWindows Licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) @@ -26,37 +26,34 @@ // conversion tables, generated by scripts in $(WXWIN)/misc/unictabl: #if defined( __BORLANDC__ ) || defined(__DARWIN__) -#include "../common/unictabl.inc" + #include "../common/unictabl.inc" #else -#include "unictabl.inc" + #include "unictabl.inc" #endif #if wxUSE_WCHAR_T -typedef wchar_t tchar; + typedef wchar_t tchar; #else -typedef char tchar; -#endif - -#ifdef __WXWINCE__ -#undef LINKAGEMODE -#define LINKAGEMODE __cdecl + typedef char tchar; #endif #ifdef __WXMAC__ + #include + #include + #include -#include -#include -#include + #include "wx/fontutil.h" + #include "wx/mac/private.h" // includes mac headers -#include "wx/fontutil.h" -#include "wx/mac/private.h" // includes mac headers - -wxUint16 gMacEncodings[wxFONTENCODING_MACMAX-wxFONTENCODING_MACMIN+1][128] ; -bool gMacEncodingsInited[wxFONTENCODING_MACMAX-wxFONTENCODING_MACMIN+1] ; + wxUint16 gMacEncodings[wxFONTENCODING_MACMAX-wxFONTENCODING_MACMIN+1][128] ; + bool gMacEncodingsInited[wxFONTENCODING_MACMAX-wxFONTENCODING_MACMIN+1] ; +#endif +#ifdef __WXWINCE__ + #include "wx/msw/wince/missing.h" // for bsearch() #endif -static wxUint16* LINKAGEMODE GetEncTable(wxFontEncoding enc) +static wxUint16* GetEncTable(wxFontEncoding enc) { #ifdef __WXMAC__ if( enc >= wxFONTENCODING_MACMIN && enc <= wxFONTENCODING_MACMAX ) @@ -66,19 +63,19 @@ static wxUint16* LINKAGEMODE GetEncTable(wxFontEncoding enc) { TECObjectRef converter ; TextEncodingBase code = wxMacGetSystemEncFromFontEnc( enc ) ; - TextEncodingBase unicode = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ; - OSStatus status = TECCreateConverter(&converter,code,unicode); - char s[2] ; - s[1] = 0 ; - ByteCount byteInLen, byteOutLen ; - for( unsigned char c = 255 ; c >= 128 ; --c ) - { - s[0] = c ; + TextEncodingBase unicode = CreateTextEncoding(kTextEncodingUnicodeDefault,0,kUnicode16BitFormat) ; + OSStatus status = TECCreateConverter(&converter,code,unicode); + char s[2] ; + s[1] = 0 ; + ByteCount byteInLen, byteOutLen ; + for( unsigned char c = 255 ; c >= 128 ; --c ) + { + s[0] = c ; status = TECConvertText(converter, (ConstTextPtr) &s , 1, &byteInLen, (TextPtr) &gMacEncodings[i][c-128] , 2, &byteOutLen); - } + } status = TECDisposeConverter(converter); - gMacEncodingsInited[i]=true; + gMacEncodingsInited[i]=true; } return gMacEncodings[i] ; } @@ -97,13 +94,14 @@ typedef struct { wxUint8 c; } CharsetItem; -extern "C" int LINKAGEMODE CompareCharsetItems(const void *i1, const void *i2) +extern "C" int wxCMPFUNC_CONV +CompareCharsetItems(const void *i1, const void *i2) { return ( ((CharsetItem*)i1) -> u - ((CharsetItem*)i2) -> u ); } -static CharsetItem* LINKAGEMODE BuildReverseTable(wxUint16 *tbl) +static CharsetItem* BuildReverseTable(wxUint16 *tbl) { CharsetItem *rev = new CharsetItem[128]; @@ -120,8 +118,8 @@ static CharsetItem* LINKAGEMODE BuildReverseTable(wxUint16 *tbl) wxEncodingConverter::wxEncodingConverter() { m_Table = NULL; - m_UnicodeInput = m_UnicodeOutput = FALSE; - m_JustCopy = FALSE; + m_UnicodeInput = m_UnicodeOutput = false; + m_JustCopy = false; } @@ -134,17 +132,17 @@ bool wxEncodingConverter::Init(wxFontEncoding input_enc, wxFontEncoding output_e if (m_Table) {delete[] m_Table; m_Table = NULL;} #if !wxUSE_WCHAR_T - if (input_enc == wxFONTENCODING_UNICODE || output_enc == wxFONTENCODING_UNICODE) return FALSE; + if (input_enc == wxFONTENCODING_UNICODE || output_enc == wxFONTENCODING_UNICODE) return false; #endif - if (input_enc == output_enc) {m_JustCopy = TRUE; return TRUE;} + if (input_enc == output_enc) {m_JustCopy = true; return true;} m_UnicodeOutput = (output_enc == wxFONTENCODING_UNICODE); - m_JustCopy = FALSE; + m_JustCopy = false; if (input_enc == wxFONTENCODING_UNICODE) { - if ((out_tbl = GetEncTable(output_enc)) == NULL) return FALSE; + if ((out_tbl = GetEncTable(output_enc)) == NULL) return false; m_Table = new tchar[65536]; for (i = 0; i < 128; i++) m_Table[i] = (tchar)i; // 7bit ASCII @@ -160,15 +158,15 @@ bool wxEncodingConverter::Init(wxFontEncoding input_enc, wxFontEncoding output_e for (i = 0; i < 128; i++) m_Table[out_tbl[i]] = (tchar)(128 + i); - m_UnicodeInput = TRUE; + m_UnicodeInput = true; } else // input !Unicode { - if ((in_tbl = GetEncTable(input_enc)) == NULL) return FALSE; + if ((in_tbl = GetEncTable(input_enc)) == NULL) return false; if (output_enc != wxFONTENCODING_UNICODE) - if ((out_tbl = GetEncTable(output_enc)) == NULL) return FALSE; + if ((out_tbl = GetEncTable(output_enc)) == NULL) return false; - m_UnicodeInput = FALSE; + m_UnicodeInput = false; m_Table = new tchar[256]; for (i = 0; i < 128; i++) m_Table[i] = (tchar)i; // 7bit ASCII @@ -176,10 +174,8 @@ bool wxEncodingConverter::Init(wxFontEncoding input_enc, wxFontEncoding output_e if (output_enc == wxFONTENCODING_UNICODE) { for (i = 0; i < 128; i++) m_Table[128 + i] = (tchar)in_tbl[i]; - return TRUE; + return true; } - // FIXME: write a substitute for bsearch -#ifndef __WXWINCE__ else // output !Unicode { CharsetItem *rev = BuildReverseTable(out_tbl); @@ -205,10 +201,9 @@ bool wxEncodingConverter::Init(wxFontEncoding input_enc, wxFontEncoding output_e delete[] rev; } -#endif // !__WXWINCE__ } - return TRUE; + return true; } @@ -417,7 +412,7 @@ static wxFontEncoding // Cyrillic { - /* unix */ {wxFONTENCODING_KOI8, wxFONTENCODING_ISO8859_5, STOP}, + /* unix */ {wxFONTENCODING_KOI8, wxFONTENCODING_KOI8_U, wxFONTENCODING_ISO8859_5, STOP}, /* windows */ {wxFONTENCODING_CP1251, STOP}, /* os2 */ {STOP}, /* mac */ {wxFONTENCODING_MACCYRILLIC, STOP}