Custom ediv_strlwr replacing strlwr call on language.c

This commit is contained in:
Víctor Román Archidona 2018-09-22 13:26:53 +02:00
parent 71dd8b2a46
commit 3c592e1d1c

View file

@ -18,7 +18,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifdef _WIN32
#include <windows.h>
#else
@ -30,6 +29,7 @@
#include "language.h"
#include "edivcfg/iniparser.h"
static char *ediv_strlwr(char *str);
int detecta_idioma_iso(char *lang)
{
@ -42,23 +42,27 @@ int detecta_idioma_iso(char* lang)
"ca", /* catalán */
"eu" /* euskera */
};
if(lang==NULL) return DEFAULT_LANGUAGE;
if(strlen(lang)>2) lang[2]=0;
strlwr(lang);
if (lang == NULL)
return DEFAULT_LANGUAGE;
if (strlen(lang) > 2)
lang[2] = 0;
ediv_strlwr(lang);
for (i = 0; i < NUM_LANGUAGES; i++)
if (lang[0] == getid[i][0])
if (lang[1] == getid[i][1])
break;
if(i==NUM_LANGUAGES) i=DEFAULT_LANGUAGE;
if (i == NUM_LANGUAGES)
i = DEFAULT_LANGUAGE;
return i;
}
int detecta_idioma()
{
char *langcfg = NULL;
if (ini!=NULL) langcfg=iniparser_getstr(ini,"general:lang");
if(langcfg==NULL) {
if (ini != NULL)
langcfg = iniparser_getstr(ini, "general:lang");
if (langcfg == NULL)
{
#ifdef _WIN32
int i;
static int getid[NUM_LANGUAGES] = {
@ -73,19 +77,23 @@ int detecta_idioma()
lang = GetSystemDefaultLangID() & 0xff;
for (i = 0; i < NUM_LANGUAGES; i++)
if(lang==getid[i]) break;
if(i==NUM_LANGUAGES) i=DEFAULT_LANGUAGE;
if (lang == getid[i])
break;
if (i == NUM_LANGUAGES)
i = DEFAULT_LANGUAGE;
return i;
#else
langcfg = getenv("LANG");
if(langcfg==NULL) return DEFAULT_LANGUAGE;
else return detecta_idioma_iso(langcfg);
if (langcfg == NULL)
return DEFAULT_LANGUAGE;
else
return detecta_idioma_iso(langcfg);
#endif
}
else return detecta_idioma_iso(langcfg);
else
return detecta_idioma_iso(langcfg);
}
char *translate_error(int num)
{
@ -134,7 +142,6 @@ char* translate_ltlex_error(int num)
return e[idioma][num];
}
char *translate(int num)
{
static char *e[NUM_LANGUAGES][74] = {
@ -145,3 +152,16 @@ char* translate(int num)
};
return e[idioma][num];
}
static char *ediv_strlwr(char *str)
{
unsigned char *p = (unsigned char *)str;
while (*p)
{
*p = tolower((unsigned char)*p);
p++;
}
return str;
}