MCPcopy Create free account
hub / github.com/defold/defold / FillLanguageTerritory

Function FillLanguageTerritory

engine/dlib/src/dlib/sys.cpp:230–271  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

228 }
229
230 void FillLanguageTerritory(const char* lang, struct SystemInfo* info)
231 {
232 // find first separator ("-" or "_")
233 size_t lang_len = lang ? strlen(lang) : 0;
234 if(lang_len == 0)
235 {
236 lang = "en_US";
237 lang_len = strlen(lang);
238 dmLogWarning("Invalid language parameter (empty field), using default: \"%s\"", lang);
239 }
240 const char* sep_first = lang;
241 while((*sep_first) && (*sep_first != '-') && (*sep_first != '_'))
242 ++sep_first;
243 const char* sep_last = lang + lang_len;
244 while((sep_last != sep_first) && (*sep_last != '-') && (*sep_last != '_'))
245 --sep_last;
246
247 dmStrlCpy(info->m_Language, lang, dmMath::Min((size_t)(sep_first+1 - lang), sizeof(info->m_Language)));
248
249 if(sep_first != sep_last)
250 {
251 // Language script. If there is more than one separator, this is what is up to the last separator (<language>-<script>-<territory> format)
252 dmStrlCpy(info->m_DeviceLanguage, lang, dmMath::Min((size_t)(sep_last+1 - lang), sizeof(info->m_DeviceLanguage)));
253 info->m_DeviceLanguage[sep_first - lang] = '-';
254 }
255 else
256 {
257 // No language script, default to language
258 dmStrlCpy(info->m_DeviceLanguage, info->m_Language, dmMath::Min(sizeof(info->m_DeviceLanguage), sizeof(info->m_Language)));
259 }
260
261 if(sep_last != lang + lang_len)
262 {
263 dmStrlCpy(info->m_Territory, sep_last + 1, dmMath::Min((size_t)((lang + lang_len) - sep_last), sizeof(info->m_Territory)));
264 }
265 else
266 {
267 info->m_Territory[0] = '\0';
268 dmLogWarning("No territory detected in language string: \"%s\"", lang);
269 }
270
271 }
272
273 void PumpMessageQueue() {
274#if defined(__EMSCRIPTEN__)

Callers 4

GetSystemInfoFunction · 0.85
GetSystemInfoFunction · 0.85
GetSystemInfoFunction · 0.85
GetSystemInfoFunction · 0.85

Calls 2

dmStrlCpyFunction · 0.85
MinFunction · 0.85

Tested by

no test coverage detected