Merge remote-tracking branch 'origin/master' into YaSp
[scilab.git] / scilab / modules / localization / src / c / getLocaleInfo_Apple.c
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2009-2009 - DIGITEO - Bruno JOFRET
4  *
5  *  This file must be used under the terms of the CeCILL.
6  *  This source file is licensed as described in the file COPYING, which
7  *  you should have received as part of this distribution.  The terms
8  *  are also available at
9  *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 #include <CoreFoundation/CoreFoundation.h>
14 #include <stdlib.h>
15 #include "getLocaleInfo_Apple.h"
16 #include "charEncoding.h"
17
18 wchar_t *getLocaleUserInfo(void)
19 {
20     char *cUserLanguage = NULL;
21     CFLocaleRef userLocaleRef = CFLocaleCopyCurrent();
22     CFStringRef userLanguage = CFLocaleGetIdentifier(userLocaleRef);
23
24     if (getenv( "LANG" ))
25     {
26         /* Mac OS X does not respect the LANG variable. We do it ourself. */
27         return to_wide_string(getenv("LANG"));
28     }
29     else
30     {
31         cUserLanguage = (char *) malloc(((int) CFStringGetLength(userLanguage) + 1) * sizeof(char));
32         CFStringGetCString(userLanguage, cUserLanguage, ((int) CFStringGetLength(userLanguage)) + 1, kCFStringEncodingUTF8);
33     }
34     return to_wide_string(cUserLanguage);
35 }