1 /* 2 * This file and its contents are supplied under the terms of the 3 * Common Development and Distribution License ("CDDL"), version 1.0. 4 * You may only use this file in accordance with the terms of version 5 * 1.0 of the CDDL. 6 * 7 * A full copy of the text of the CDDL should have accompanied this 8 * source. A copy of the CDDL is also available via the Internet at 9 * http://www.illumos.org/license/CDDL. 10 */ 11 12 /* 13 * Copyright 2010 Nexenta Systems, Inc. All rights reserved. 14 */ 15 16 /* 17 * This file contains the implementation of various functional forms 18 * of the ctype tests, specifically the required by ISO C. These are defined 19 * in the "C" (POSIX) locale. 20 */ 21 22 #include "lint.h" 23 #include <ctype.h> 24 25 /* 26 * We are supplying functional forms, so make sure to suppress any macros 27 * we might have imported. 28 */ 29 30 #ifdef isblank 31 #undef isblank 32 #endif 33 34 int 35 isblank(int c) 36 { 37 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISBLANK)); 38 } 39 40 #ifdef isupper 41 #undef isupper 42 #endif 43 44 int 45 isupper(int c) 46 { 47 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISUPPER)); 48 } 49 50 #ifdef islower 51 #undef islower 52 #endif 53 54 int 55 islower(int c) 56 { 57 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISLOWER)); 58 } 59 60 #ifdef isdigit 61 #undef isdigit 62 #endif 63 64 int 65 isdigit(int c) 66 { 67 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISDIGIT)); 68 } 69 70 #ifdef isxdigit 71 #undef isxdigit 72 #endif 73 74 int 75 isxdigit(int c) 76 { 77 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISXDIGIT)); 78 } 79 80 #ifdef isalpha 81 #undef isalpha 82 #endif 83 84 int 85 isalpha(int c) 86 { 87 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISALPHA)); 88 } 89 90 #ifdef isalnum 91 #undef isalnum 92 #endif 93 94 int 95 isalnum(int c) 96 { 97 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISALNUM)); 98 } 99 100 #ifdef isspace 101 #undef isspace 102 #endif 103 104 int 105 isspace(int c) 106 { 107 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISSPACE)); 108 } 109 110 #ifdef iscntrl 111 #undef iscntrl 112 #endif 113 114 int 115 iscntrl(int c) 116 { 117 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISCNTRL)); 118 } 119 120 #ifdef isgraph 121 #undef isgraph 122 #endif 123 124 int 125 isgraph(int c) 126 { 127 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISGRAPH)); 128 } 129 130 #ifdef ispunct 131 #undef ispunct 132 #endif 133 134 int 135 ispunct(int c) 136 { 137 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISPUNCT)); 138 } 139 140 #ifdef isprint 141 #undef isprint 142 #endif 143 144 int 145 isprint(int c) 146 { 147 return (((unsigned)c > 255) ? 0 : (__ctype_mask[c] & _ISPRINT)); 148 }