#ifndef _XLOCALE__CTYPE_H_
#define _XLOCALE__CTYPE_H_
-__BEGIN_DECLS
-int digittoint_l(int, locale_t);
-int isalnum_l(int, locale_t);
-int isalpha_l(int, locale_t);
-int isblank_l(int, locale_t);
-int iscntrl_l(int, locale_t);
-int isdigit_l(int, locale_t);
-int isgraph_l(int, locale_t);
-int ishexnumber_l(int, locale_t);
-int isideogram_l(int, locale_t);
-int islower_l(int, locale_t);
-int isnumber_l(int, locale_t);
-int isphonogram_l(int, locale_t);
-int isprint_l(int, locale_t);
-int ispunct_l(int, locale_t);
-int isrune_l(int, locale_t);
-int isspace_l(int, locale_t);
-int isspecial_l(int, locale_t);
-int isupper_l(int, locale_t);
-int isxdigit_l(int, locale_t);
-int tolower_l(int, locale_t);
-int toupper_l(int, locale_t);
-__END_DECLS
-
-#define digittoint_l(c, l) __maskrune_l((c), 0xFF, (l))
-#define ishexnumber_l(c, l) __istype_l((c), _CTYPE_X, (l))
-#define isideogram_l(c, l) __istype_l((c), _CTYPE_I, (l))
-#define isnumber_l(c, l) __istype_l((c), _CTYPE_D, (l))
-#define isphonogram_l(c, l) __istype_l((c), _CTYPE_Q, (l))
-#define isrune_l(c, l) __istype_l((c), 0xFFFFFF00L, (l))
-#define isspecial_l(c, l) __istype_l((c), _CTYPE_T, (l))
-#define isalnum_l(c, l) __istype_l((c), (_CTYPE_A|_CTYPE_D), (l))
-#define isalpha_l(c, l) __istype_l((c), _CTYPE_A, (l))
-#define isblank_l(c, l) __istype_l((c), _CTYPE_B, (l))
-#define iscntrl_l(c, l) __istype_l((c), _CTYPE_C, (l))
-#define isdigit_l(c, l) __istype_l((c), _CTYPE_D, (l))
-#define isgraph_l(c, l) __istype_l((c), _CTYPE_G, (l))
-#define islower_l(c, l) __istype_l((c), _CTYPE_L, (l))
-#define isprint_l(c, l) __istype_l((c), _CTYPE_R, (l))
-#define ispunct_l(c, l) __istype_l((c), _CTYPE_P, (l))
-#define isspace_l(c, l) __istype_l((c), _CTYPE_S, (l))
-#define isupper_l(c, l) __istype_l((c), _CTYPE_U, (l))
-#define isxdigit_l(c, l) __istype_l((c), _CTYPE_X, (l))
-#define tolower_l(c, l) __tolower_l(c, (l))
-#define toupper_l(c, l) __toupper_l(c, (l))
+/*
+ * Use inline functions if we are allowed to and the compiler supports them.
+ */
+#if !defined(_DONT_USE_CTYPE_INLINE_) && \
+ (defined(_USE_CTYPE_INLINE_) || defined(__GNUC__) || defined(__cplusplus))
/* See comments in <machine/_type.h> about __darwin_ct_rune_t. */
__BEGIN_DECLS
__darwin_ct_rune_t ___toupper_l(__darwin_ct_rune_t, locale_t);
__END_DECLS
-/*
- * Use inline functions if we are allowed to and the compiler supports them.
- */
-#if !defined(_DONT_USE_CTYPE_INLINE_) && \
- (defined(_USE_CTYPE_INLINE_) || defined(__GNUC__) || defined(__cplusplus))
-
//Begin-Libc
#ifdef __LIBC__
-static __inline int
+__DARWIN_CTYPE_static_inline int
__maskrune_l(__darwin_ct_rune_t _c, unsigned long _f, locale_t _l)
{
return ((_c < 0 || _c >= _CACHED_RUNES) ? ___runetype_l(_c, _l) :
#endif /* __LIBC__ */
//End-Libc
-static __inline int
+__DARWIN_CTYPE_static_inline int
__istype_l(__darwin_ct_rune_t _c, unsigned long _f, locale_t _l)
{
return !!(isascii(_c) ? (_DefaultRuneLocale.__runetype[_c] & _f)
: __maskrune_l(_c, _f, _l));
}
-static __inline __darwin_ct_rune_t
+__DARWIN_CTYPE_static_inline __darwin_ct_rune_t
__toupper_l(__darwin_ct_rune_t _c, locale_t _l)
{
return isascii(_c) ? _DefaultRuneLocale.__mapupper[_c]
: ___toupper_l(_c, _l);
}
-static __inline __darwin_ct_rune_t
+__DARWIN_CTYPE_static_inline __darwin_ct_rune_t
__tolower_l(__darwin_ct_rune_t _c, locale_t _l)
{
return isascii(_c) ? _DefaultRuneLocale.__maplower[_c]
: ___tolower_l(_c, _l);
}
-static __inline int
+__DARWIN_CTYPE_static_inline int
__wcwidth_l(__darwin_ct_rune_t _c, locale_t _l)
{
unsigned int _x;
return ((_x & _CTYPE_R) != 0 ? 1 : -1);
}
+#ifndef _EXTERNALIZE_CTYPE_INLINES_
+
+__DARWIN_CTYPE_TOP_static_inline int
+digittoint_l(int c, locale_t l)
+{
+ return (__maskrune_l(c, 0x0F, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isalnum_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_A|_CTYPE_D, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isalpha_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_A, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isblank_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_B, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+iscntrl_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_C, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isdigit_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_D, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isgraph_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_G, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+ishexnumber_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_X, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isideogram_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_I, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+islower_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_L, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isnumber_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_D, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isphonogram_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_Q, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isprint_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_R, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+ispunct_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_P, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isrune_l(int c, locale_t l)
+{
+ return (__istype_l(c, 0xFFFFFFF0L, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isspace_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_S, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isspecial_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_T, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isupper_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_U, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+isxdigit_l(int c, locale_t l)
+{
+ return (__istype_l(c, _CTYPE_X, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+tolower_l(int c, locale_t l)
+{
+ return (__tolower_l(c, l));
+}
+
+__DARWIN_CTYPE_TOP_static_inline int
+toupper_l(int c, locale_t l)
+{
+ return (__toupper_l(c, l));
+}
+#endif /* _EXTERNALIZE_CTYPE_INLINES_ */
+
#else /* not using inlines */
__BEGIN_DECLS
-int __maskrune_l(__darwin_ct_rune_t, unsigned long, locale_t);
-int __istype_l(__darwin_ct_rune_t, unsigned long, locale_t);
-__darwin_ct_rune_t __toupper_l(__darwin_ct_rune_t, locale_t);
-__darwin_ct_rune_t __tolower_l(__darwin_ct_rune_t, locale_t);
-int __wcwidth_l(__darwin_ct_rune_t, locale_t);
+int digittoint_l(int, locale_t);
+int isalnum_l(int, locale_t);
+int isalpha_l(int, locale_t);
+int isblank_l(int, locale_t);
+int iscntrl_l(int, locale_t);
+int isdigit_l(int, locale_t);
+int isgraph_l(int, locale_t);
+int ishexnumber_l(int, locale_t);
+int isideogram_l(int, locale_t);
+int islower_l(int, locale_t);
+int isnumber_l(int, locale_t);
+int isphonogram_l(int, locale_t);
+int isprint_l(int, locale_t);
+int ispunct_l(int, locale_t);
+int isrune_l(int, locale_t);
+int isspace_l(int, locale_t);
+int isspecial_l(int, locale_t);
+int isupper_l(int, locale_t);
+int isxdigit_l(int, locale_t);
+int tolower_l(int, locale_t);
+int toupper_l(int, locale_t);
__END_DECLS
#endif /* using inlines */