1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
* locale/programs/ld-ctype.c (ctype_finish): Take all characters from
	the input charset into account when generating the hash table.
	(allocate_arrays): Correct setting default width.  Not all empty slots
	in the table are filled, only those not covert explicitly by the
	locale description and in the charset.

	* stdio-common/vfscanf.c: Make sure to always return WEOF and EOF for
	wide character version.
	For %C handling, test correct pointer variable for NULL.

	* wcsmbs/wctob.c: Handle WEOF special.

	* wcsmbs/wcwidth.h: 0xff in width array means invalid character.

	* wctype/wctype.h: Protect gcc-isms with __extension__.  Avoid
	always-true test to avoid warning.
This commit is contained in:
Ulrich Drepper
2000-06-28 04:27:24 +00:00
parent 3769620607
commit 0e16ecfa1e
33 changed files with 435 additions and 159 deletions

View File

@ -1,5 +1,5 @@
/* Internal header containing implementation of wcwidth() function.
Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc.
Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1996.
@ -33,6 +33,7 @@ static __inline int
internal_wcwidth (wint_t ch)
{
size_t idx;
unsigned char res;
if (ch == L'\0')
return 0;
@ -41,5 +42,6 @@ internal_wcwidth (wint_t ch)
if (idx == ~((size_t) 0) || (__ctype32_b[idx] & _ISwprint) == 0)
return -1;
return (int) __ctype_width[idx];
res = __ctype_width[idx];
return res == (unsigned char) '\xff' ? -1 : (int) res;
}