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
This commit is contained in:
Rob Braun 2002-02-05 06:21:34 +00:00
parent 0ae5018b3e
commit 509853bbfd
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=90231
2 changed files with 14 additions and 4 deletions

View file

@ -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_));

View file

@ -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_));