aboutsummaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorJohannes Schickel2010-06-15 17:33:45 +0000
committerJohannes Schickel2010-06-15 17:33:45 +0000
commit0bff5c29fe8d7d0c4edaabee576289ea3cb21d4c (patch)
treed2fd058c18544543f5f76c5262d66135c31f53bd /common
parent7c7054dbd1697b95634979f05d4a7b153bb17082 (diff)
downloadscummvm-rg350-0bff5c29fe8d7d0c4edaabee576289ea3cb21d4c.tar.gz
scummvm-rg350-0bff5c29fe8d7d0c4edaabee576289ea3cb21d4c.tar.bz2
scummvm-rg350-0bff5c29fe8d7d0c4edaabee576289ea3cb21d4c.zip
Use a Common::String instead of a fixed size array for _syslang in TranslationManager.
svn-id: r49871
Diffstat (limited to 'common')
-rw-r--r--common/translation.cpp17
-rw-r--r--common/translation.h2
2 files changed, 7 insertions, 12 deletions
diff --git a/common/translation.cpp b/common/translation.cpp
index 0b3d1237a9..5598cbcf8c 100644
--- a/common/translation.cpp
+++ b/common/translation.cpp
@@ -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);
diff --git a/common/translation.h b/common/translation.h
index 7be21df60f..a844c1f438 100644
--- a/common/translation.h
+++ b/common/translation.h
@@ -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;