Lines 1347-1349
int _imp_setProcessLocale( rtl_Locale *
Link Here
|
1347 |
#endif /* ifdef LINUX || SOLARIS || MACOSX || NETBSD */ |
1347 |
#endif /* ifdef LINUX || SOLARIS || MACOSX || NETBSD */ |
1348 |
|
1348 |
|
1349 |
|
1349 |
|
|
|
1350 |
|
1351 |
// Get locale of category LC_CTYPE of environment variables |
1352 |
static sal_Char* GetLangFromEnvironment() |
1353 |
{ |
1354 |
static sal_Char* pFallback = "C"; |
1355 |
sal_Char *pLang = NULL; |
1356 |
|
1357 |
pLang = getenv ( "LC_ALL" ); |
1358 |
if (! pLang) |
1359 |
pLang = getenv ( "LC_CTYPE" ); |
1360 |
if (! pLang) |
1361 |
pLang = getenv( "LANG" ); |
1362 |
if (! pLang) |
1363 |
pLang = pFallback; |
1364 |
|
1365 |
return pLang; |
1366 |
} |
1367 |
|
1368 |
rtl_Locale * SAL_CALL osl_getSystemLocale( rtl_LocaleSystemType nType ) |
1369 |
{ |
1370 |
const char *pMessages[] = { "LANGUAGE", "LC_ALL", "LC_MESSAGES", "LANG", NULL }; |
1371 |
const char *pCType[] = { "LC_ALL", "LC_CTYPE", NULL }; |
1372 |
const char **pScan; |
1373 |
const char *pLang = NULL; |
1374 |
static rtl_Locale *pLocales[2] = { NULL, NULL }; |
1375 |
|
1376 |
if( !pLocales[ nType ] ) |
1377 |
{ |
1378 |
pScan = (nType == rtl_LocaleSystemMessages) ? pMessages : pCType; |
1379 |
while (*pScan) |
1380 |
{ |
1381 |
if( pLang = getenv( *pScan ) ) |
1382 |
break; |
1383 |
pScan++; |
1384 |
} |
1385 |
if( !pLang ) |
1386 |
pLang = "C"; |
1387 |
|
1388 |
pLocales[ nType ] = _parse_locale( pLang ); |
1389 |
} |
1390 |
|
1391 |
return pLocales[ nType ]; |
1392 |
} |