]> git.saurik.com Git - apple/libc.git/blobdiff - include/runetype.h
Libc-1272.200.26.tar.gz
[apple/libc.git] / include / runetype.h
index 2503670c882dfd3bb6b49dd736cbdc1843535dbf..b3dcce26fd90a94e2196364d6c9ae2c8bf075e2c 100644 (file)
 #ifndef        _RUNETYPE_H_
 #define        _RUNETYPE_H_
 
-#include <sys/cdefs.h>
-#include <machine/ansi.h>
-
-#ifndef        _BSD_SIZE_T_DEFINED_
-#define _BSD_SIZE_T_DEFINED_
-typedef        _BSD_SIZE_T_    size_t;
-#endif
-
-#ifndef        _BSD_CT_RUNE_T_DEFINED_
-#define _BSD_CT_RUNE_T_DEFINED_
-typedef        _BSD_CT_RUNE_T_ ct_rune_t;
-#endif
-
-#ifndef        _BSD_RUNE_T_DEFINED_
-#define _BSD_RUNE_T_DEFINED_
-typedef        _BSD_RUNE_T_    rune_t;
-#endif
-
-#ifndef        __cplusplus
-#ifndef        _BSD_WCHAR_T_DEFINED_
-#define        _BSD_WCHAR_T_DEFINED_
-#ifdef __WCHAR_TYPE__
-typedef        __WCHAR_TYPE__  wchar_t;
-#else  /* ! __WCHAR_TYPE__ */
-typedef        _BSD_WCHAR_T_   wchar_t;
-#endif /* __WCHAR_TYPE__ */
-#endif /* _BSD_WCHAR_T_DEFINED_ */
-#endif /* __cplusplus */
-
-#ifndef        _BSD_WINT_T_DEFINED_
-#define _BSD_WINT_T_DEFINED_
-typedef        _BSD_WINT_T_    wint_t;
-#endif
+#include <_types.h>
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ct_rune_t.h>
+#include <sys/_types/_rune_t.h>
+#include <sys/_types/_wchar_t.h>
+#include <sys/_types/_wint_t.h>
+
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
 
 #define        _CACHED_RUNES   (1 <<8 )        /* Must be a power of 2 */
 #define        _CRMASK         (~(_CACHED_RUNES - 1))
@@ -80,45 +58,54 @@ typedef     _BSD_WINT_T_    wint_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;
+
+typedef struct {
+       char            __magic[8];     /* Magic saying what version we are */
+       char            __encoding[32]; /* ASCII name of this encoding */
 
-       rune_t          (*sgetrune)
-          (const char *, size_t, char const **);
-       int             (*sputrune)
-          (rune_t, char *, size_t, char **);
-       rune_t          invalid_rune;
+       __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;