18 #ifndef MAGICKCORE_TOKEN_PRIVATE_H 19 #define MAGICKCORE_TOKEN_PRIVATE_H 21 #if defined(__cplusplus) || defined(c_plusplus) 29 #define MaxMultibyteCodes 6 46 { 0x80, 0x00, 0x000007f, 0x0000000 },
47 { 0xE0, 0xC0, 0x00007ff, 0x0000080 },
48 { 0xF0, 0xE0, 0x000ffff, 0x0000800 },
49 { 0xF8, 0xF0, 0x01fffff, 0x0010000 },
50 { 0xFC, 0xF8, 0x03fffff, 0x0200000 },
51 { 0xFE, 0xFC, 0x7ffffff, 0x4000000 },
59 register const unsigned char 62 register unsigned char 72 for (p=content; *p !=
'\0'; p++)
73 length+=(*p & 0x80) != 0 ? 2 : 1;
74 utf8=(
unsigned char *) NULL;
77 if (utf8 == (
unsigned char *) NULL)
78 return((
unsigned char *) NULL);
80 for (p=content; *p !=
'\0'; p++)
84 *q++=(
unsigned char) c;
87 *q++=(
unsigned char) (0xc0 | ((c >> 6) & 0x3f));
88 *q++=(
unsigned char) (0x80 | (c & 0x3f));
108 if (text == (
const char *) NULL)
113 code=(int) (*text++) & 0xff;
120 if (unicode <
utf_info[i].utf_value)
122 *octets=(
unsigned int) (i+1);
125 c=(int) (*text++ ^ 0x80) & 0xff;
128 if (unicode > 0x10FFFF)
130 unicode=(unicode << 6) | c;
155 if (((code >= 0x0009) && (code <= 0x000d)) || (code == 0x0020) ||
156 (code == 0x0085) || (code == 0x00a0) || (code == 0x1680) ||
157 (code == 0x180e) || ((code >= 0x2000) && (code <= 0x200a)) ||
158 (code == 0x2028) || (code == 0x2029) || (code == 0x202f) ||
159 (code == 0x205f) || (code == 0x3000))
169 mask=(int) 0x7fffffff;
170 if (((code & ~mask) != 0) && ((code < 0xd800) || (code > 0xdfff)) &&
171 (code != 0xfffe) && (code != 0xffff))
182 if ((code & ~mask) != 0)
187 #if defined(__cplusplus) || defined(c_plusplus) #define EILSEQ
Definition: token-private.h:26
int code_value
Definition: token-private.h:37
Definition: token-private.h:34
static MagickBooleanType IsUTFSpace(int code)
Definition: token-private.h:153
static MagickBooleanType IsUTFValid(int code)
Definition: token-private.h:164
#define magick_attribute(x)
Definition: method-attribute.h:104
int utf_value
Definition: token-private.h:37
int utf_mask
Definition: token-private.h:37
MagickBooleanType
Definition: magick-type.h:158
static int GetUTFCode(const char *text)
Definition: token-private.h:136
MagickExport void * AcquireQuantumMemory(const size_t count, const size_t quantum)
Definition: memory.c:543
MagickPrivate MagickBooleanType IsGlob(const char *) magick_attribute((__pure__))
Definition: token.c:596
Definition: magick-type.h:161
static unsigned int GetUTFOctets(const char *text)
Definition: token-private.h:144
static unsigned char * ConvertLatin1ToUTF8(const unsigned char *content)
Definition: token-private.h:54
#define MaxMultibyteCodes
Definition: token-private.h:29
static UTFInfo utf_info[MaxMultibyteCodes]
Definition: token-private.h:44
static int GetNextUTFCode(const char *text, unsigned int *octets)
Definition: token-private.h:95
Definition: magick-type.h:160
#define MagickPrivate
Definition: method-attribute.h:81
static MagickBooleanType IsUTFAscii(int code)
Definition: token-private.h:176