mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-11 12:50:58 +08:00
Update.
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:
parent
10301ff8a9
commit
e04b831ab4
10
ChangeLog
10
ChangeLog
@ -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.
|
||||
|
@ -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
14032
localedata/charmaps/BIG5
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
60
wctype/wctrans_l.c
Normal 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;
|
||||
}
|
||||
}
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user