1 1.4 joerg /* $NetBSD: ctype_inline.h,v 1.4 2015/02/24 13:17:27 joerg Exp $ */ 2 1.1 tnozaki 3 1.1 tnozaki /* 4 1.1 tnozaki * Copyright (c) 1989 The Regents of the University of California. 5 1.1 tnozaki * All rights reserved. 6 1.1 tnozaki * (c) UNIX System Laboratories, Inc. 7 1.1 tnozaki * All or some portions of this file are derived from material licensed 8 1.1 tnozaki * to the University of California by American Telephone and Telegraph 9 1.1 tnozaki * Co. or Unix System Laboratories, Inc. and are reproduced herein with 10 1.1 tnozaki * the permission of UNIX System Laboratories, Inc. 11 1.1 tnozaki * 12 1.1 tnozaki * Redistribution and use in source and binary forms, with or without 13 1.1 tnozaki * modification, are permitted provided that the following conditions 14 1.1 tnozaki * are met: 15 1.1 tnozaki * 1. Redistributions of source code must retain the above copyright 16 1.1 tnozaki * notice, this list of conditions and the following disclaimer. 17 1.1 tnozaki * 2. Redistributions in binary form must reproduce the above copyright 18 1.1 tnozaki * notice, this list of conditions and the following disclaimer in the 19 1.1 tnozaki * documentation and/or other materials provided with the distribution. 20 1.1 tnozaki * 3. Neither the name of the University nor the names of its contributors 21 1.1 tnozaki * may be used to endorse or promote products derived from this software 22 1.1 tnozaki * without specific prior written permission. 23 1.1 tnozaki * 24 1.1 tnozaki * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 25 1.1 tnozaki * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 1.1 tnozaki * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 1.1 tnozaki * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 28 1.1 tnozaki * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 1.1 tnozaki * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 1.1 tnozaki * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 1.1 tnozaki * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 1.1 tnozaki * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 1.1 tnozaki * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 1.1 tnozaki * SUCH DAMAGE. 35 1.1 tnozaki * 36 1.1 tnozaki * @(#)ctype.h 5.3 (Berkeley) 4/3/91 37 1.1 tnozaki * NetBSD: ctype.h,v 1.30 2010/05/22 06:38:15 tnozaki Exp 38 1.1 tnozaki */ 39 1.1 tnozaki 40 1.1 tnozaki #ifndef _CTYPE_INLINE_H_ 41 1.1 tnozaki #define _CTYPE_INLINE_H_ 42 1.1 tnozaki 43 1.1 tnozaki #include <sys/cdefs.h> 44 1.1 tnozaki #include <sys/featuretest.h> 45 1.1 tnozaki 46 1.1 tnozaki #include <sys/ctype_bits.h> 47 1.1 tnozaki 48 1.3 joerg #define isalnum(c) ((int)((_ctype_tab_ + 1)[(c)] & (_CTYPE_A|_CTYPE_D))) 49 1.3 joerg #define isalpha(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_A)) 50 1.3 joerg #define iscntrl(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_C)) 51 1.3 joerg #define isdigit(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_D)) 52 1.3 joerg #define isgraph(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_G)) 53 1.3 joerg #define islower(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_L)) 54 1.3 joerg #define isprint(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_R)) 55 1.3 joerg #define ispunct(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_P)) 56 1.3 joerg #define isspace(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_S)) 57 1.3 joerg #define isupper(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_U)) 58 1.3 joerg #define isxdigit(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_X)) 59 1.1 tnozaki #define tolower(c) ((int)((_tolower_tab_ + 1)[(c)])) 60 1.1 tnozaki #define toupper(c) ((int)((_toupper_tab_ + 1)[(c)])) 61 1.1 tnozaki 62 1.1 tnozaki #if defined(_XOPEN_SOURCE) || defined(_NETBSD_SOURCE) 63 1.1 tnozaki #define isascii(c) ((unsigned)(c) <= 0177) 64 1.1 tnozaki #define toascii(c) ((c) & 0177) 65 1.1 tnozaki #define _tolower(c) ((c) - 'A' + 'a') 66 1.1 tnozaki #define _toupper(c) ((c) - 'a' + 'A') 67 1.1 tnozaki #endif 68 1.1 tnozaki 69 1.4 joerg #if defined(_ISOC99_SOURCE) || (_POSIX_C_SOURCE - 0) > 200112L || \ 70 1.1 tnozaki (_XOPEN_SOURCE - 0) > 600 || defined(_NETBSD_SOURCE) 71 1.3 joerg #define isblank(c) ((int)((_ctype_tab_ + 1)[(c)] & _CTYPE_BL)) 72 1.1 tnozaki #endif 73 1.1 tnozaki 74 1.1 tnozaki #endif /* !_CTYPE_INLINE_H_ */ 75