* libc/locale/lctype.c: Include <string.h> and "setlocale.h".

(_C_ctype_locale): Add braces to initializer.
	(__ctype_load_locale): Fix compiler warnings in non-Cygwin case.
	* libc/locale/nl_langinfo.c (nl_langinfo): Expose _NL_CTYPE_MB_CUR_MAX
	case only if __HAVE_LOCALE_INFO__ is defined.
This commit is contained in:
Corinna Vinschen 2010-05-03 09:25:32 +00:00
parent ffa42cf6a0
commit 7edacc4997
3 changed files with 22 additions and 9 deletions

View File

@ -1,3 +1,11 @@
2010-05-03 Corinna Vinschen <corinna@vinschen.de>
* libc/locale/lctype.c: Include <string.h> and "setlocale.h".
(_C_ctype_locale): Add braces to initializer.
(__ctype_load_locale): Fix compiler warnings in non-Cygwin case.
* libc/locale/nl_langinfo.c (nl_langinfo): Expose _NL_CTYPE_MB_CUR_MAX
case only if __HAVE_LOCALE_INFO__ is defined.
2010-05-02 Corinna Vinschen <corinna@vinschen.de> 2010-05-02 Corinna Vinschen <corinna@vinschen.de>
* libc/stdlib/wctob.c (wctob): Reorganize and fix WEOF check. Rename * libc/stdlib/wctob.c (wctob): Reorganize and fix WEOF check. Rename

View File

@ -22,8 +22,10 @@
*/ */
#include <limits.h> #include <limits.h>
#include <string.h>
#include "lctype.h" #include "lctype.h"
#include "ldpart.h" #include "ldpart.h"
#include "setlocale.h"
#define LCCTYPE_SIZE (sizeof(struct lc_ctype_T) / sizeof(char *)) #define LCCTYPE_SIZE (sizeof(struct lc_ctype_T) / sizeof(char *))
@ -33,10 +35,11 @@ static const struct lc_ctype_T _C_ctype_locale = {
"ASCII", /* codeset */ "ASCII", /* codeset */
numone /* mb_cur_max */ numone /* mb_cur_max */
#ifdef __HAVE_LOCALE_INFO_EXTENDED__ #ifdef __HAVE_LOCALE_INFO_EXTENDED__
, "0", "1", "2", "3", "4", /* outdigits */ ,
"5", "6", "7", "8", "9", { "0", "1", "2", "3", "4", /* outdigits */
L"0", L"1", L"2", L"3", L"4", /* woutdigits */ "5", "6", "7", "8", "9" },
L"5", L"6", L"7", L"8", L"9" { L"0", L"1", L"2", L"3", L"4", /* woutdigits */
L"5", L"6", L"7", L"8", L"9" }
#endif #endif
}; };
@ -79,11 +82,11 @@ __ctype_load_locale(const char *name, void *f_wctomb, const char *charset,
_ctype_using_locale = 0; _ctype_using_locale = 0;
else else
{ {
_ctype_locale.codeset = _ctype_locale_buf; _ctype_locale.codeset = strcpy (_ctype_locale_buf, charset);
_ctype_locale.mb_cur_max = _ctype_locale_buf + _CTYPE_BUF_SIZE - 2; char *mbc = _ctype_locale_buf + _CTYPE_BUF_SIZE - 2;
strcpy (_ctype_locale.codeset, charset); mbc[0] = mb_cur_max;
_ctype_locale.mb_cur_max[0] = mb_cur_max; mbc[1] = '\0';
_ctype_locale.mb_cur_max[1] = '\0'; _ctype_locale.mb_cur_max = mbc;
_ctype_using_locale = 1; _ctype_using_locale = 1;
} }
ret = 0; ret = 0;

View File

@ -412,9 +412,11 @@ do_codeset:
case D_MD_ORDER: /* local extension */ case D_MD_ORDER: /* local extension */
ret = (char *) __get_current_time_locale()->md_order; ret = (char *) __get_current_time_locale()->md_order;
break; break;
#ifdef __HAVE_LOCALE_INFO__
case _NL_CTYPE_MB_CUR_MAX: case _NL_CTYPE_MB_CUR_MAX:
ret = (char *) __get_current_ctype_locale()->mb_cur_max; ret = (char *) __get_current_ctype_locale()->mb_cur_max;
break; break;
#endif
default: default:
#ifdef __HAVE_LOCALE_INFO_EXTENDED__ #ifdef __HAVE_LOCALE_INFO_EXTENDED__
if (item > _NL_LOCALE_EXTENDED_FIRST_ENTRY if (item > _NL_LOCALE_EXTENDED_FIRST_ENTRY