diff --git a/src/language.c b/src/language.c index 4e0b98e..c67d794 100644 --- a/src/language.c +++ b/src/language.c @@ -601,7 +601,6 @@ tmbstr tidyNormalizedLocaleName( ctmbstr locale ) uint i; uint len; static char result[6] = "xx_yy"; - char character[1]; tmbstr search = strdup(locale); search = TY_(tmbstrtolower)(search); @@ -622,27 +621,28 @@ tmbstr tidyNormalizedLocaleName( ctmbstr locale ) junk language that doesn't exist and won't be set. */ len = strlen( search ); - len = len <= 5 ? len : 5; + len = ( len <= 5 ? len : 5 ); - for ( i = 0; i <= len; i++ ) + for ( i = 0; i < len; i++ ) { if ( i == 2 ) { /* Either terminate the string or ensure there's an underscore */ - if (strlen( search) >= 5) - character[0] = '_'; - else - character[0] = '\0'; - strncpy( result + i, character, 1 ); + if (len == 5) { + result[i] = '_'; + } + else { + result[i] = '\0'; + break; /* no need to copy after null */ + } } else { - strncpy( result + i, search + i, 1); - result[i] = tolower( result[i] ); + result[i] = tolower( search[i] ); } } - if ( search ) free( search ); + free( search ); return result; } diff --git a/version.txt b/version.txt index 8f70eca..7079ac4 100644 --- a/version.txt +++ b/version.txt @@ -1,2 +1,2 @@ -5.3.8-Issue-428 -2016.07.29 +5.3.9-Issue-428 +2016.08.04