17c478bdstevel@tonic-gate/*
27c478bdstevel@tonic-gate * CDDL HEADER START
37c478bdstevel@tonic-gate *
47c478bdstevel@tonic-gate * The contents of this file are subject to the terms of the
57c478bdstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only
67c478bdstevel@tonic-gate * (the "License").  You may not use this file except in compliance
77c478bdstevel@tonic-gate * with the License.
87c478bdstevel@tonic-gate *
97c478bdstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
107c478bdstevel@tonic-gate * or http://www.opensolaris.org/os/licensing.
117c478bdstevel@tonic-gate * See the License for the specific language governing permissions
127c478bdstevel@tonic-gate * and limitations under the License.
137c478bdstevel@tonic-gate *
147c478bdstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each
157c478bdstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
167c478bdstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the
177c478bdstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying
187c478bdstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner]
197c478bdstevel@tonic-gate *
207c478bdstevel@tonic-gate * CDDL HEADER END
217c478bdstevel@tonic-gate */
227c478bdstevel@tonic-gate/*
237c478bdstevel@tonic-gate * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
247c478bdstevel@tonic-gate * Use is subject to license terms.
256b1aed1Richard PALO *
266b1aed1Richard PALO * Copyright 2015 PALO, Richard.  All rights reserved.
277c478bdstevel@tonic-gate */
287c478bdstevel@tonic-gate
297c478bdstevel@tonic-gate#ifndef	_SYS_CTYPE_H
307c478bdstevel@tonic-gate#define	_SYS_CTYPE_H
317c478bdstevel@tonic-gate
327c478bdstevel@tonic-gate#include <sys/types.h>
337c478bdstevel@tonic-gate
347c478bdstevel@tonic-gate#ifdef	__cplusplus
357c478bdstevel@tonic-gateextern "C" {
367c478bdstevel@tonic-gate#endif
377c478bdstevel@tonic-gate
387c478bdstevel@tonic-gate#define	ISDIGIT(_c) \
397c478bdstevel@tonic-gate	((_c) >= '0' && (_c) <= '9')
407c478bdstevel@tonic-gate
417c478bdstevel@tonic-gate#define	ISXDIGIT(_c) \
427c478bdstevel@tonic-gate	(ISDIGIT(_c) || \
437c478bdstevel@tonic-gate	((_c) >= 'a' && (_c) <= 'f') || \
447c478bdstevel@tonic-gate	((_c) >= 'A' && (_c) <= 'F'))
457c478bdstevel@tonic-gate
467c478bdstevel@tonic-gate#define	ISLOWER(_c) \
477c478bdstevel@tonic-gate	((_c) >= 'a' && (_c) <= 'z')
487c478bdstevel@tonic-gate
497c478bdstevel@tonic-gate#define	ISUPPER(_c) \
507c478bdstevel@tonic-gate	((_c) >= 'A' && (_c) <= 'Z')
517c478bdstevel@tonic-gate
527c478bdstevel@tonic-gate#define	ISALPHA(_c) \
537c478bdstevel@tonic-gate	(ISUPPER(_c) || \
547c478bdstevel@tonic-gate	ISLOWER(_c))
557c478bdstevel@tonic-gate
567c478bdstevel@tonic-gate#define	ISALNUM(_c) \
577c478bdstevel@tonic-gate	(ISALPHA(_c) || \
587c478bdstevel@tonic-gate	ISDIGIT(_c))
597c478bdstevel@tonic-gate
606b1aed1Richard PALO#define	ISPRINT(_c) \
616b1aed1Richard PALO	((_c) >= ' ' && (_c) <= '~')
626b1aed1Richard PALO
637c478bdstevel@tonic-gate#define	ISSPACE(_c) \
647c478bdstevel@tonic-gate	((_c) == ' ' || \
657c478bdstevel@tonic-gate	(_c) == '\t' || \
667c478bdstevel@tonic-gate	(_c) == '\r' || \
677c478bdstevel@tonic-gate	(_c) == '\n')
687c478bdstevel@tonic-gate
696b1aed1Richard PALOstatic __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
707c478bdstevel@tonic-gateisdigit(char c)
717c478bdstevel@tonic-gate{
727c478bdstevel@tonic-gate	return (ISDIGIT(c));
737c478bdstevel@tonic-gate}
747c478bdstevel@tonic-gate#pragma inline(isdigit)
757c478bdstevel@tonic-gate
766b1aed1Richard PALOstatic __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
777c478bdstevel@tonic-gateisxdigit(char c)
787c478bdstevel@tonic-gate{
797c478bdstevel@tonic-gate	return (ISXDIGIT(c));
807c478bdstevel@tonic-gate}
816b1aed1Richard PALO#pragma inline(isxdigit)
827c478bdstevel@tonic-gate
836b1aed1Richard PALOstatic __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
847c478bdstevel@tonic-gateislower(char c)
857c478bdstevel@tonic-gate{
867c478bdstevel@tonic-gate	return (ISLOWER(c));
877c478bdstevel@tonic-gate}
887c478bdstevel@tonic-gate#pragma inline(islower)
897c478bdstevel@tonic-gate
906b1aed1Richard PALOstatic __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
917c478bdstevel@tonic-gateisupper(char c)
927c478bdstevel@tonic-gate{
937c478bdstevel@tonic-gate	return (ISUPPER(c));
947c478bdstevel@tonic-gate}
957c478bdstevel@tonic-gate#pragma inline(isupper)
967c478bdstevel@tonic-gate
976b1aed1Richard PALOstatic __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
987c478bdstevel@tonic-gateisalpha(char c)
997c478bdstevel@tonic-gate{
1007c478bdstevel@tonic-gate	return (ISALPHA(c));
1017c478bdstevel@tonic-gate}
1027c478bdstevel@tonic-gate#pragma inline(isalpha)
1037c478bdstevel@tonic-gate
1046b1aed1Richard PALOstatic __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
1057c478bdstevel@tonic-gateisalnum(char c)
1067c478bdstevel@tonic-gate{
1077c478bdstevel@tonic-gate	return (ISALNUM(c));
1087c478bdstevel@tonic-gate}
1097c478bdstevel@tonic-gate#pragma inline(isalnum)
1107c478bdstevel@tonic-gate
1116b1aed1Richard PALOstatic __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
1126b1aed1Richard PALOisprint(char c)
1136b1aed1Richard PALO{
1146b1aed1Richard PALO	return (ISPRINT(c));
1156b1aed1Richard PALO}
1166b1aed1Richard PALO#pragma inline(isprint)
1176b1aed1Richard PALO
1186b1aed1Richard PALOstatic __GNU_INLINE boolean_t	/* LINTED E_STATIC_UNUSED */
1197c478bdstevel@tonic-gateisspace(char c)
1207c478bdstevel@tonic-gate{
1217c478bdstevel@tonic-gate	return (ISSPACE(c));
1227c478bdstevel@tonic-gate}
1237c478bdstevel@tonic-gate#pragma inline(isspace)
1247c478bdstevel@tonic-gate
1257c478bdstevel@tonic-gate#ifdef	__cplusplus
1267c478bdstevel@tonic-gate}
1277c478bdstevel@tonic-gate#endif
1287c478bdstevel@tonic-gate
1297c478bdstevel@tonic-gate#endif	/* _SYS_CTYPE_H */
130