1 /*- 2 * SPDX-License-Identifier: BSD-3-Clause 3 * 4 * Copyright (c) 1989, 1993 5 * The Regents of the University of California. All rights reserved. 6 * (c) UNIX System Laboratories, Inc. 7 * All or some portions of this file are derived from material licensed 8 * to the University of California by American Telephone and Telegraph 9 * Co. or Unix System Laboratories, Inc. and are reproduced herein with 10 * the permission of UNIX System Laboratories, Inc. 11 * 12 * This code is derived from software contributed to Berkeley by 13 * Paul Borman at Krystal Technologies. 14 * 15 * Redistribution and use in source and binary forms, with or without 16 * modification, are permitted provided that the following conditions 17 * are met: 18 * 1. Redistributions of source code must retain the above copyright 19 * notice, this list of conditions and the following disclaimer. 20 * 2. Redistributions in binary form must reproduce the above copyright 21 * notice, this list of conditions and the following disclaimer in the 22 * documentation and/or other materials provided with the distribution. 23 * 3. Neither the name of the University nor the names of its contributors 24 * may be used to endorse or promote products derived from this software 25 * without specific prior written permission. 26 * 27 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 28 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 29 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 30 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 31 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 32 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 33 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 34 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 35 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 36 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 37 * SUCH DAMAGE. 38 */ 39 40 #include <sys/cdefs.h> 41 __FBSDID("$FreeBSD$"); 42 43 #include <wctype.h> 44 45 #undef iswalnum 46 int 47 iswalnum(wint_t wc) 48 { 49 return (__istype(wc, _CTYPE_A|_CTYPE_N)); 50 } 51 52 #undef iswalpha 53 int 54 iswalpha(wint_t wc) 55 { 56 return (__istype(wc, _CTYPE_A)); 57 } 58 59 #undef iswascii 60 int 61 iswascii(wint_t wc) 62 { 63 return ((wc & ~0x7F) == 0); 64 } 65 66 #undef iswblank 67 int 68 iswblank(wint_t wc) 69 { 70 return (__istype(wc, _CTYPE_B)); 71 } 72 73 #undef iswcntrl 74 int 75 iswcntrl(wint_t wc) 76 { 77 return (__istype(wc, _CTYPE_C)); 78 } 79 80 #undef iswdigit 81 int 82 iswdigit(wint_t wc) 83 { 84 return (__istype(wc, _CTYPE_D)); 85 } 86 87 #undef iswgraph 88 int 89 iswgraph(wint_t wc) 90 { 91 return (__istype(wc, _CTYPE_G)); 92 } 93 94 #undef iswhexnumber 95 int 96 iswhexnumber(wint_t wc) 97 { 98 return (__istype(wc, _CTYPE_X)); 99 } 100 101 #undef iswideogram 102 int 103 iswideogram(wint_t wc) 104 { 105 return (__istype(wc, _CTYPE_I)); 106 } 107 108 #undef iswlower 109 int 110 iswlower(wint_t wc) 111 { 112 return (__istype(wc, _CTYPE_L)); 113 } 114 115 #undef iswnumber 116 int 117 iswnumber(wint_t wc) 118 { 119 return (__istype(wc, _CTYPE_N)); 120 } 121 122 #undef iswphonogram 123 int 124 iswphonogram(wint_t wc) 125 { 126 return (__istype(wc, _CTYPE_Q)); 127 } 128 129 #undef iswprint 130 int 131 iswprint(wint_t wc) 132 { 133 return (__istype(wc, _CTYPE_R)); 134 } 135 136 #undef iswpunct 137 int 138 iswpunct(wint_t wc) 139 { 140 return (__istype(wc, _CTYPE_P)); 141 } 142 143 #undef iswrune 144 int 145 iswrune(wint_t wc) 146 { 147 return (__istype(wc, 0xFFFFFF00L)); 148 } 149 150 #undef iswspace 151 int 152 iswspace(wint_t wc) 153 { 154 return (__istype(wc, _CTYPE_S)); 155 } 156 157 #undef iswspecial 158 int 159 iswspecial(wint_t wc) 160 { 161 return (__istype(wc, _CTYPE_T)); 162 } 163 164 #undef iswupper 165 int 166 iswupper(wint_t wc) 167 { 168 return (__istype(wc, _CTYPE_U)); 169 } 170 171 #undef iswxdigit 172 int 173 iswxdigit(wint_t wc) 174 { 175 return (__istype(wc, _CTYPE_X)); 176 } 177 178 #undef towlower 179 wint_t 180 towlower(wint_t wc) 181 { 182 return (__tolower(wc)); 183 } 184 185 #undef towupper 186 wint_t 187 towupper(wint_t wc) 188 { 189 return (__toupper(wc)); 190 } 191 192