]> git.saurik.com Git - apple/libc.git/blobdiff - include/runetype.h
Libc-594.9.1.tar.gz
[apple/libc.git] / include / runetype.h
index 84ce83fd81f13b991fd02a5d4693436e69fc64bc..fd16b8276506ce6a4c89ffab2eec010b7afc5c49 100644 (file)
 #ifndef        _RUNETYPE_H_
 #define        _RUNETYPE_H_
 
-#include <sys/cdefs.h>
-#include <machine/ansi.h>
+#include <_types.h>
 
-#ifndef        _BSD_RUNE_T_DEFINED_
-#define _BSD_RUNE_T_DEFINED_
-typedef        _BSD_RUNE_T_    rune_t;
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#ifndef        _SIZE_T
+#define _SIZE_T
+typedef        __darwin_size_t         size_t;
 #endif
 
-#ifndef        _BSD_SIZE_T_DEFINED_
-#define _BSD_SIZE_T_DEFINED_
-typedef        _BSD_SIZE_T_    size_t;
+#ifndef        _CT_RUNE_T
+#define _CT_RUNE_T
+typedef        __darwin_ct_rune_t      ct_rune_t;
 #endif
 
-#ifndef        _BSD_WCHAR_T_DEFINED_
-#define _BSD_WCHAR_T_DEFINED_
-typedef        _BSD_WCHAR_T_   wchar_t;
+#ifndef        _RUNE_T
+#define _RUNE_T
+typedef        __darwin_rune_t         rune_t;
 #endif
 
+#ifndef        __cplusplus
+#ifndef        _WCHAR_T
+#define        _WCHAR_T
+typedef        __darwin_wchar_t        wchar_t;
+#endif /* _WCHAR_T */
+#endif /* __cplusplus */
+
+#ifndef        _WINT_T
+#define _WINT_T
+typedef        __darwin_wint_t         wint_t;
+#endif
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
 #define        _CACHED_RUNES   (1 <<8 )        /* Must be a power of 2 */
 #define        _CRMASK         (~(_CACHED_RUNES - 1))
 
@@ -64,47 +79,58 @@ typedef     _BSD_WCHAR_T_   wchar_t;
  * The lower 8 bits of runetype[] contain the digit value of the rune.
  */
 typedef struct {
-       rune_t          min;            /* First rune of the range */
-       rune_t          max;            /* Last rune (inclusive) of the range */
-       rune_t          map;            /* What first maps to in maps */
-       unsigned long   *types;         /* Array of types in range */
+       __darwin_rune_t __min;          /* First rune of the range */
+       __darwin_rune_t __max;          /* Last rune (inclusive) of the range */
+       __darwin_rune_t __map;          /* What first maps to in maps */
+       __uint32_t      *__types;       /* Array of types in range */
 } _RuneEntry;
 
 typedef struct {
-       int             nranges;        /* Number of ranges stored */
-       _RuneEntry      *ranges;        /* Pointer to the ranges */
+       int             __nranges;      /* Number of ranges stored */
+       _RuneEntry      *__ranges;      /* Pointer to the ranges */
 } _RuneRange;
 
 typedef struct {
-       char            magic[8];       /* Magic saying what version we are */
-       char            encoding[32];   /* ASCII name of this encoding */
+       char            __name[14];     /* CHARCLASS_NAME_MAX = 14 */
+       __uint32_t      __mask;         /* charclass mask */
+} _RuneCharClass;
 
-       rune_t          (*sgetrune)
-           __P((const char *, size_t, char const **));
-       int             (*sputrune)
-           __P((rune_t, char *, size_t, char **));
-       rune_t          invalid_rune;
+typedef struct {
+       char            __magic[8];     /* Magic saying what version we are */
+       char            __encoding[32]; /* ASCII name of this encoding */
+
+       __darwin_rune_t (*__sgetrune)(const char *, __darwin_size_t, char const **);
+       int             (*__sputrune)(__darwin_rune_t, char *, __darwin_size_t, char **);
+       __darwin_rune_t __invalid_rune;
 
-       unsigned long   runetype[_CACHED_RUNES];
-       rune_t          maplower[_CACHED_RUNES];
-       rune_t          mapupper[_CACHED_RUNES];
+       __uint32_t      __runetype[_CACHED_RUNES];
+       __darwin_rune_t __maplower[_CACHED_RUNES];
+       __darwin_rune_t __mapupper[_CACHED_RUNES];
 
        /*
         * The following are to deal with Runes larger than _CACHED_RUNES - 1.
         * Their data is actually contiguous with this structure so as to make
         * it easier to read/write from/to disk.
         */
-       _RuneRange      runetype_ext;
-       _RuneRange      maplower_ext;
-       _RuneRange      mapupper_ext;
+       _RuneRange      __runetype_ext;
+       _RuneRange      __maplower_ext;
+       _RuneRange      __mapupper_ext;
+
+       void            *__variable;    /* Data which depends on the encoding */
+       int             __variable_len; /* how long that data is */
 
-       void            *variable;      /* Data which depends on the encoding */
-       int             variable_len;   /* how long that data is */
+       /*
+        * extra fields to deal with arbitrary character classes
+        */
+       int             __ncharclasses;
+       _RuneCharClass  *__charclasses;
 } _RuneLocale;
 
-#define        _RUNE_MAGIC_1   "RuneMagi"      /* Indicates version 0 of RuneLocale */
+#define        _RUNE_MAGIC_A   "RuneMagA"      /* Indicates version A of RuneLocale */
 
+__BEGIN_DECLS
 extern _RuneLocale _DefaultRuneLocale;
 extern _RuneLocale *_CurrentRuneLocale;
+__END_DECLS
 
 #endif /* !_RUNETYPE_H_ */