Use a Common::String instead of a fixed size array for _syslang in TranslationManager.

svn-id: r49871
This commit is contained in:
Johannes Schickel 2010-06-15 17:33:45 +00:00
parent 7c7054dbd1
commit 0bff5c29fe
2 changed files with 7 additions and 12 deletions

View file

@ -52,17 +52,12 @@ TranslationManager::TranslationManager() {
const char *locale = setlocale(LC_ALL, "");
// Detect the language from the locale
if (!locale) {
strcpy(_syslang, "C");
} else {
int len = strlen(locale);
if (len > 5)
len = 5;
strncpy(_syslang, locale, len);
_syslang[len] = 0;
}
if (!locale)
_syslang = "C";
else
_syslang = locale;
#else // DETECTLANG
strcpy(_syslang, "C");
_syslang = "C";
#endif // DETECTLANG
#ifdef TERMCONV
@ -84,7 +79,7 @@ TranslationManager::~TranslationManager() {
void TranslationManager::setLanguage(const char *lang) {
if (*lang == '\0')
po2c_setlang(_syslang);
po2c_setlang(_syslang.c_str());
else
po2c_setlang(lang);

View file

@ -61,7 +61,7 @@ typedef Array<TLanguage> TLangArray;
*/
class TranslationManager : public Singleton<TranslationManager> {
private:
char _syslang[6];
Common::String _syslang;
#ifdef TERMCONV
iconv_t _conversion;