]> git.saurik.com Git - apple/libc.git/blobdiff - include/xlocale/_ctype.h
Libc-498.tar.gz
[apple/libc.git] / include / xlocale / _ctype.h
index 6cfa3f962f6109a11d30747d995f149f09ba91a9..c4f493c852eedd12523dfb2a60865f25c101740e 100644 (file)
 #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
@@ -77,15 +37,9 @@ __darwin_ct_rune_t   ___tolower_l(__darwin_ct_rune_t, locale_t);
 __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) :
@@ -100,28 +54,28 @@ __END_DECLS
 #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;
@@ -134,14 +88,159 @@ __wcwidth_l(__darwin_ct_rune_t _c, locale_t _l)
        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 */