1/* 2Copyright (c) 1989 The Regents of the University of California. 3All rights reserved. 4 5Redistribution and use in source and binary forms, with or without 6modification, are permitted provided that the following conditions 7are met: 81. Redistributions of source code must retain the above copyright 9notice, this list of conditions and the following disclaimer. 102. Redistributions in binary form must reproduce the above copyright 11notice, this list of conditions and the following disclaimer in the 12documentation and/or other materials provided with the distribution. 133. Neither the name of the University nor the names of its contributors 14may be used to endorse or promote products derived from this software 15without specific prior written permission. 16 17THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 18ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 21FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27SUCH DAMAGE. 28 */ 29@node Ctype 30@chapter Character Type Macros and Functions (@file{ctype.h}) 31This chapter groups macros (which are also available as subroutines) 32to classify characters into several categories (alphabetic, 33numeric, control characters, whitespace, and so on), or to perform 34simple character mappings. 35 36The header file @file{ctype.h} defines the macros. 37@menu 38* isalnum:: Alphanumeric character predicate (isalnum, isalnum_l) 39* isalpha:: Alphabetic character predicate (isalpha, isalpha_l) 40* isascii:: ASCII character predicate (isascii, isascii_l) 41* isblank:: Blank character predicate (isblank, isblank_l) 42* iscntrl:: Control character predicate (iscntrl, iscntrl_l) 43* isdigit:: Decimal digit predicate (isdigit, isdigit_l) 44* islower:: Lowercase character predicate (islower, islower_l) 45* isprint:: Printable character predicates (isprint, isprint_l. isgraph, isgraph_l) 46* ispunct:: Punctuation character predicate (ispunct, ispunct_l) 47* isspace:: Whitespace character predicate (isspace, isspace_l) 48* isupper:: Uppercase character predicate (isupper, isupper_l) 49* isxdigit:: Hexadecimal digit predicate (isxdigit, isxdigit_l) 50* toascii:: Force integers to ASCII range (toascii, toascii_l) 51* tolower:: Translate characters to lowercase (tolower, tolower_l) 52* toupper:: Translate characters to uppercase (toupper, toupper_l) 53* iswalnum:: Alphanumeric wide character predicate (iswalnum, iswalnum_l) 54* iswalpha:: Alphabetic wide character predicate (iswalpha, iswalpha_l) 55* iswblank:: Blank wide character predicate (iswblank, iswblank_l) 56* iswcntrl:: Control wide character predicate (iswcntrl, iswcntrl_l) 57* iswdigit:: Decimal digit wide character predicate (iswdigit, iswdigit_l) 58* iswgraph:: Graphic wide character predicate (iswgraph, iswgraph_l) 59* iswlower:: Lowercase wide character predicate (iswlower, iswlower_l) 60* iswprint:: Printable wide character predicate (iswprint, iswprint_l) 61* iswpunct:: Punctuation wide character predicate (iswpunct, iswpunct_l) 62* iswspace:: Whitespace wide character predicate (iswspace, iswspace_l) 63* iswupper:: Uppercase wide character predicate (iswupper, iswupper_l) 64* iswxdigit:: Hexadecimal digit wide character predicate (iswxdigit, iswxdigit_l) 65* iswctype:: Extensible wide-character test (iswctype, iswctype_l) 66* wctype:: Compute wide-character test type (wctype, wctype_l) 67* towlower:: Translate wide characters to lowercase (towlower, towlower_l) 68* towupper:: Translate wide characters to uppercase (towupper, towupper_l) 69* towctrans:: Extensible wide-character translation (towctrans, towctrans_l) 70* wctrans:: Compute wide-character translation type (wctrans, wctrans_l) 71@end menu 72 73@page 74@include ctype/isalnum.def 75 76@page 77@include ctype/isalpha.def 78 79@page 80@include ctype/isascii.def 81 82@page 83@include ctype/isblank.def 84 85@page 86@include ctype/iscntrl.def 87 88@page 89@include ctype/isdigit.def 90 91@page 92@include ctype/islower.def 93 94@page 95@include ctype/isprint.def 96 97@page 98@include ctype/ispunct.def 99 100@page 101@include ctype/isspace.def 102 103@page 104@include ctype/isupper.def 105 106@page 107@include ctype/isxdigit.def 108 109@page 110@include ctype/toascii.def 111 112@page 113@include ctype/tolower.def 114 115@page 116@include ctype/toupper.def 117 118@page 119@include ctype/iswalnum.def 120 121@page 122@include ctype/iswalpha.def 123 124@page 125@include ctype/iswcntrl.def 126 127@page 128@include ctype/iswblank.def 129 130@page 131@include ctype/iswdigit.def 132 133@page 134@include ctype/iswgraph.def 135 136@page 137@include ctype/iswlower.def 138 139@page 140@include ctype/iswprint.def 141 142@page 143@include ctype/iswpunct.def 144 145@page 146@include ctype/iswspace.def 147 148@page 149@include ctype/iswupper.def 150 151@page 152@include ctype/iswxdigit.def 153 154@page 155@include ctype/iswctype.def 156 157@page 158@include ctype/wctype.def 159 160@page 161@include ctype/towlower.def 162 163@page 164@include ctype/towupper.def 165 166@page 167@include ctype/towctrans.def 168 169@page 170@include ctype/wctrans.def 171 172