2000-07-25  Bruno Haible  <haible@clisp.cons.org>

	* wctype/wctype.h (__wctrans_l): New declaration.
	* wctype/wctrans_l.c: New file.
	* wctype/Makefile (routines): Add wctrans_l.

	* rt/tst-aio4.c: New file, slightly modified version of tst-aio2.
	* rt/tst-aio5.c: New file, slightly modified version of tst-aio2.
This commit is contained in:
Ulrich Drepper 2000-07-26 17:52:36 +00:00
parent 10301ff8a9
commit e04b831ab4
6 changed files with 14112 additions and 3 deletions

View file

@ -1,3 +1,9 @@
2000-07-25 Bruno Haible <haible@clisp.cons.org>
* wctype/wctype.h (__wctrans_l): New declaration.
* wctype/wctrans_l.c: New file.
* wctype/Makefile (routines): Add wctrans_l.
2000-07-26 Ulrich Drepper <drepper@redhat.com>
* posix/fnmatch_loop.c: Fixes for use outside glibc.
@ -5,8 +11,8 @@
2000-07-26 Andreas Jaeger <aj@suse.de>
* rt/tst-aio4.c: New file, slighlty modified version of tst-aio2.
* rt/tst-aio5.c: New file, slighlty modified version of tst-aio2.
* rt/tst-aio4.c: New file, slightly modified version of tst-aio2.
* rt/tst-aio5.c: New file, slightly modified version of tst-aio2.
* rt/Makefile: Add rules to build and run tst-aio4 and tst-aio5.
* rt/tst-aio.c (test_file): Fix typo.

View file

@ -1,3 +1,8 @@
2000-07-26 Ulrich Drepper <drepper@redhat.com>
* charmaps/BIG5: New file.
Contributed by Tung-Han Hsieh <thhsieh@twcpro.phys.ntu.edu.tw>.
2000-07-25 Ulrich Drepper <drepper@redhat.com>
* locales/zh_CN: Update for new format.

14032
localedata/charmaps/BIG5 Normal file

File diff suppressed because it is too large Load diff

View file

@ -24,7 +24,8 @@ subdir := wctype
headers := wctype.h
distribute := cname-lookup.h
routines := wcfuncs wctype iswctype wctrans towctrans wcextra \
wcfuncs_l iswctype_l towctrans_l wctype_l wcextra_l
wcfuncs_l wctype_l iswctype_l wctrans_l towctrans_l \
wcextra_l
tests := test_wctype test_wcfuncs

60
wctype/wctrans_l.c Normal file
View file

@ -0,0 +1,60 @@
/* Copyright (C) 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public License as
published by the Free Software Foundation; either version 2 of the
License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with the GNU C Library; see the file COPYING.LIB. If not,
write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#include <string.h>
#include <wctype.h>
#include "../locale/localeinfo.h"
wctrans_t
__wctrans_l (const char *property, __locale_t locale)
{
const char *names;
size_t cnt;
names = locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_MAP_NAMES)].string;
cnt = 0;
while (names[0] != '\0')
{
if (strcmp (property, names) == 0)
break;
names = strchr (names, '\0') + 1;
++cnt;
}
if (names[0] == '\0')
return 0;
if (locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_HASH_SIZE)].word == 0)
{
/* Old locale format. */
if (cnt == 0)
return (wctrans_t) locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_TOUPPER32)].string;
else if (cnt == 1)
return (wctrans_t) locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_TOLOWER32)].string;
/* We have to search the table. */
return (wctrans_t) (const int32_t *) locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_NUM_LC_CTYPE + cnt - 2)].string;
}
else
{
/* New locale format. */
size_t i = locale->__locales[LC_CTYPE]->values[_NL_ITEM_INDEX (_NL_CTYPE_MAP_OFFSET)].word + cnt;
return (wctrans_t) locale->__locales[LC_CTYPE]->values[i].string;
}
}

View file

@ -378,6 +378,11 @@ extern wint_t __towlower_l (wint_t __wc, __locale_t __locale) __THROW;
/* Converts an lowercase letter to the corresponding uppercase letter. */
extern wint_t __towupper_l (wint_t __wc, __locale_t __locale) __THROW;
/* Construct value that describes a mapping between wide characters
identified by the string argument PROPERTY. */
extern wctrans_t __wctrans_l (__const char *__property, __locale_t __locale)
__THROW;
/* Map the wide character WC using the mapping described by DESC. */
extern wint_t __towctrans_l (wint_t __wc, wctrans_t __desc,
__locale_t __locale) __THROW;