From 509853bbfdebbc17531d889f27d940d8f0d54b17 Mon Sep 17 00:00:00 2001 From: Rob Braun Date: Tue, 5 Feb 2002 06:21:34 +0000 Subject: [PATCH] Makes __istype() an inline (and a non inlined) function to avoid C++ compile issues. std::isspace(' ') was expanding to std::(!!_maskrune...) which would cause a C++ compile error. Making __istype() an inline causes the expansion to be std::__istype() instead, which is valid. Reviewed by: jkh --- include/_ctype.h | 9 +++++++-- include/ctype.h | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/include/_ctype.h b/include/_ctype.h index 1f266feabfdc..31df49759802 100644 --- a/include/_ctype.h +++ b/include/_ctype.h @@ -95,8 +95,6 @@ int toascii __P((int)); #endif __END_DECLS -#define __istype(c,f) (!!__maskrune((c),(f))) - #define isalnum(c) __istype((c), _CTYPE_A|_CTYPE_D) #define isalpha(c) __istype((c), _CTYPE_A) #define iscntrl(c) __istype((c), _CTYPE_C) @@ -153,6 +151,12 @@ __maskrune(_BSD_CT_RUNE_T_ _c, unsigned long _f) _CurrentRuneLocale->runetype[_c]) & _f; } +static __inline int +__istype(_BSD_CT_RUNE_T_ _c, unsigned long _f) +{ + return (!!__maskrune(_c, _f)); +} + static __inline int __isctype(_BSD_CT_RUNE_T_ _c, unsigned long _f) { @@ -178,6 +182,7 @@ __tolower(_BSD_CT_RUNE_T_ _c) __BEGIN_DECLS int __maskrune __P((_BSD_CT_RUNE_T_, unsigned long)); +int __istype __P((_BSD_CT_RUNE_T_, unsigned long)); int __isctype __P((_BSD_CT_RUNE_T_, unsigned long)); _BSD_CT_RUNE_T_ __toupper __P((_BSD_CT_RUNE_T_)); _BSD_CT_RUNE_T_ __tolower __P((_BSD_CT_RUNE_T_)); diff --git a/include/ctype.h b/include/ctype.h index 1f266feabfdc..31df49759802 100644 --- a/include/ctype.h +++ b/include/ctype.h @@ -95,8 +95,6 @@ int toascii __P((int)); #endif __END_DECLS -#define __istype(c,f) (!!__maskrune((c),(f))) - #define isalnum(c) __istype((c), _CTYPE_A|_CTYPE_D) #define isalpha(c) __istype((c), _CTYPE_A) #define iscntrl(c) __istype((c), _CTYPE_C) @@ -153,6 +151,12 @@ __maskrune(_BSD_CT_RUNE_T_ _c, unsigned long _f) _CurrentRuneLocale->runetype[_c]) & _f; } +static __inline int +__istype(_BSD_CT_RUNE_T_ _c, unsigned long _f) +{ + return (!!__maskrune(_c, _f)); +} + static __inline int __isctype(_BSD_CT_RUNE_T_ _c, unsigned long _f) { @@ -178,6 +182,7 @@ __tolower(_BSD_CT_RUNE_T_ _c) __BEGIN_DECLS int __maskrune __P((_BSD_CT_RUNE_T_, unsigned long)); +int __istype __P((_BSD_CT_RUNE_T_, unsigned long)); int __isctype __P((_BSD_CT_RUNE_T_, unsigned long)); _BSD_CT_RUNE_T_ __toupper __P((_BSD_CT_RUNE_T_)); _BSD_CT_RUNE_T_ __tolower __P((_BSD_CT_RUNE_T_));