some code simplifications, no real changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@38666 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1248,7 +1248,11 @@ void wxMsgCatalogFile::FillHash(wxMessagesHash& hash,
|
|||||||
const wxString& msgIdCharset,
|
const wxString& msgIdCharset,
|
||||||
bool convertEncoding) const
|
bool convertEncoding) const
|
||||||
{
|
{
|
||||||
#if wxUSE_FONTMAP
|
#if wxUSE_UNICODE
|
||||||
|
// this parameter doesn't make sense, we always must convert encoding in
|
||||||
|
// Unicode build
|
||||||
|
convertEncoding = true;
|
||||||
|
#elif wxUSE_FONTMAP
|
||||||
// determine if we need any conversion at all
|
// determine if we need any conversion at all
|
||||||
if ( convertEncoding )
|
if ( convertEncoding )
|
||||||
{
|
{
|
||||||
@@ -1259,28 +1263,22 @@ void wxMsgCatalogFile::FillHash(wxMessagesHash& hash,
|
|||||||
convertEncoding = false;
|
convertEncoding = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // wxUSE_FONTMAP
|
#endif // wxUSE_UNICODE/wxUSE_FONTMAP
|
||||||
|
|
||||||
#if wxUSE_WCHAR_T
|
#if wxUSE_WCHAR_T
|
||||||
// conversion to use to convert catalog strings to the GUI encoding
|
// conversion to use to convert catalog strings to the GUI encoding
|
||||||
wxMBConv *inputConv,
|
wxMBConv *inputConv,
|
||||||
*csConv = NULL; // another ptr just to be able to delete it later
|
*inputConvPtr = NULL; // same as inputConv but safely deleteable
|
||||||
if ( convertEncoding )
|
if ( convertEncoding && !m_charset.empty() )
|
||||||
{
|
{
|
||||||
if ( m_charset.empty() )
|
inputConvPtr =
|
||||||
{
|
inputConv = new wxCSConv(m_charset);
|
||||||
inputConv = wxConvCurrent;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
inputConv =
|
|
||||||
csConv = new wxCSConv(m_charset);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else // no need to convert the encoding
|
else // no need or not possible to convert the encoding
|
||||||
{
|
{
|
||||||
// we still need the conversion for Unicode build
|
|
||||||
#if wxUSE_UNICODE
|
#if wxUSE_UNICODE
|
||||||
|
// we must somehow convert the narrow strings in the message catalog to
|
||||||
|
// wide strings, so use the default conversion if we have no charset
|
||||||
inputConv = wxConvCurrent;
|
inputConv = wxConvCurrent;
|
||||||
#else // !wxUSE_UNICODE
|
#else // !wxUSE_UNICODE
|
||||||
inputConv = NULL;
|
inputConv = NULL;
|
||||||
@@ -1334,16 +1332,17 @@ void wxMsgCatalogFile::FillHash(wxMessagesHash& hash,
|
|||||||
for (size_t32 i = 0; i < m_numStrings; i++)
|
for (size_t32 i = 0; i < m_numStrings; i++)
|
||||||
{
|
{
|
||||||
const char *data = StringAtOfs(m_pOrigTable, i);
|
const char *data = StringAtOfs(m_pOrigTable, i);
|
||||||
#if wxUSE_UNICODE
|
|
||||||
wxString msgid(data, *inputConv);
|
|
||||||
#else // ASCII
|
|
||||||
wxString msgid;
|
wxString msgid;
|
||||||
|
#if wxUSE_UNICODE
|
||||||
|
msgid = wxString(data, *inputConv);
|
||||||
|
#else // ASCII
|
||||||
#if wxUSE_WCHAR_T
|
#if wxUSE_WCHAR_T
|
||||||
if ( inputConv && sourceConv )
|
if ( inputConv && sourceConv )
|
||||||
msgid = wxString(inputConv->cMB2WC(data), *sourceConv);
|
msgid = wxString(inputConv->cMB2WC(data), *sourceConv);
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
msgid = data;
|
msgid = data;
|
||||||
#endif // wxUSE_UNICODE
|
#endif // wxUSE_UNICODE
|
||||||
|
|
||||||
data = StringAtOfs(m_pTransTable, i);
|
data = StringAtOfs(m_pTransTable, i);
|
||||||
@@ -1352,38 +1351,40 @@ void wxMsgCatalogFile::FillHash(wxMessagesHash& hash,
|
|||||||
size_t index = 0;
|
size_t index = 0;
|
||||||
while (offset < length)
|
while (offset < length)
|
||||||
{
|
{
|
||||||
|
const char * const str = data + offset;
|
||||||
|
|
||||||
wxString msgstr;
|
wxString msgstr;
|
||||||
#if wxUSE_WCHAR_T
|
#if wxUSE_UNICODE
|
||||||
#if wxUSE_UNICODE
|
msgstr = wxString(str, *inputConv);
|
||||||
msgstr = wxString(data + offset, *inputConv);
|
#elif wxUSE_WCHAR_T
|
||||||
#else
|
|
||||||
if ( inputConv )
|
if ( inputConv )
|
||||||
msgstr = wxString(inputConv->cMB2WC(data + offset), wxConvLocal);
|
msgstr = wxString(inputConv->cMB2WC(str), *wxConvUI);
|
||||||
else
|
else
|
||||||
msgstr = wxString(data + offset);
|
msgstr = str;
|
||||||
#endif
|
|
||||||
#else // !wxUSE_WCHAR_T
|
#else // !wxUSE_WCHAR_T
|
||||||
#if wxUSE_FONTMAP
|
#if wxUSE_FONTMAP
|
||||||
if ( convertEncoding )
|
if ( convertEncoding )
|
||||||
msgstr = wxString(converter.Convert(data + offset));
|
msgstr = wxString(converter.Convert(str));
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
msgstr = wxString(data + offset);
|
msgstr = str;
|
||||||
#endif // wxUSE_WCHAR_T/!wxUSE_WCHAR_T
|
#endif // wxUSE_WCHAR_T/!wxUSE_WCHAR_T
|
||||||
|
|
||||||
if ( !msgstr.empty() )
|
if ( !msgstr.empty() )
|
||||||
{
|
{
|
||||||
hash[index == 0 ? msgid : msgid + wxChar(index)] = msgstr;
|
hash[index == 0 ? msgid : msgid + wxChar(index)] = msgstr;
|
||||||
}
|
}
|
||||||
offset += strlen(data + offset) + 1;
|
|
||||||
|
// skip this string
|
||||||
|
offset += strlen(str) + 1;
|
||||||
++index;
|
++index;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if wxUSE_WCHAR_T
|
#if wxUSE_WCHAR_T
|
||||||
delete sourceConv;
|
delete sourceConv;
|
||||||
delete csConv;
|
delete inputConvPtr;
|
||||||
#endif
|
#endif // wxUSE_WCHAR_T
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user