class CDataStream;\r
class CAutoFile;\r
\r
-static const int VERSION = 202;\r
+static const int VERSION = 203;\r
static const char* pszSubVer = ".0";\r
\r
\r
}\r
\r
\r
+const char* wxGetTranslation(const char* pszEnglish)\r
+{\r
+ // Wrapper of wxGetTranslation returning the same const char* type as was passed in\r
+ static CCriticalSection cs;\r
+ CRITICAL_BLOCK(cs)\r
+ {\r
+ // Look in cache\r
+ static map<string, char*> mapCache;\r
+ map<string, char*>::iterator mi = mapCache.find(pszEnglish);\r
+ if (mi != mapCache.end())\r
+ return (*mi).second;\r
+\r
+ // wxWidgets translation\r
+ const char* pszTranslated = wxGetTranslation(wxString(pszEnglish, wxConvUTF8)).utf8_str();\r
+ if (strcmp(pszEnglish, pszTranslated) == 0)\r
+ return pszEnglish;\r
+\r
+ // Add to cache, memory doesn't need to be freed\r
+ char* pszCached = new char[strlen(pszTranslated)+1];\r
+ strcpy(pszCached, pszTranslated);\r
+ mapCache[pszEnglish] = pszCached;\r
+ return pszCached;\r
+ }\r
+}\r
+\r
+\r
+\r
+\r
+\r
\r
\r
\r
vector<unsigned char> ParseHex(const char* psz);\r
vector<unsigned char> ParseHex(const std::string& str);\r
void ParseParameters(int argc, char* argv[]);\r
+const char* wxGetTranslation(const char* psz);\r
int GetFilesize(FILE* file);\r
void GetDataDir(char* pszDirRet);\r
string GetDataDir();\r
++it;\r
}\r
\r
-inline const char* wxGetTranslation(const char* psz)\r
-{\r
- // Return translated UTF-8 const char*\r
- return wxGetTranslation(wxString(psz, wxConvUTF8)).utf8_str();\r
-}\r
+\r
+\r
+\r
\r
\r
\r