1 /* Copyright (C) 1991-2022 Free Software Foundation, Inc.
2    This file is part of the GNU C Library.
3 
4    The GNU C Library is free software; you can redistribute it and/or
5    modify it under the terms of the GNU Lesser General Public
6    License as published by the Free Software Foundation; either
7    version 2.1 of the License, or (at your option) any later version.
8 
9    The GNU C Library is distributed in the hope that it will be useful,
10    but WITHOUT ANY WARRANTY; without even the implied warranty of
11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12    Lesser General Public License for more details.
13 
14    You should have received a copy of the GNU Lesser General Public
15    License along with the GNU C Library; if not, see
16    <https://www.gnu.org/licenses/>.  */
17 
18 #define	__NO_CTYPE
19 #include <ctype.h>
20 
21 /* Provide real-function versions of all the ctype macros.  */
22 
23 #define	func(name, type) \
24   int __##name (int c, locale_t l) { return __isctype_l (c, type, l); } \
25   weak_alias (__##name, name)
26 
func(isalnum_l,_ISalnum)27 func (isalnum_l, _ISalnum)
28 func (isalpha_l, _ISalpha)
29 func (iscntrl_l, _IScntrl)
30 func (isdigit_l, _ISdigit)
31 func (islower_l, _ISlower)
32 func (isgraph_l, _ISgraph)
33 func (isprint_l, _ISprint)
34 func (ispunct_l, _ISpunct)
35 func (isspace_l, _ISspace)
36 func (isupper_l, _ISupper)
37 func (isxdigit_l, _ISxdigit)
38 
39 int
40 (__tolower_l) (int c, locale_t l)
41 {
42   return l->__ctype_tolower[c];
43 }
weak_alias(__tolower_l,tolower_l)44 weak_alias (__tolower_l, tolower_l)
45 
46 int
47 (__toupper_l) (int c, locale_t l)
48 {
49   return l->__ctype_toupper[c];
50 }
51 weak_alias (__toupper_l, toupper_l)
52