Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
xmltok.h File Reference

Go to the source code of this file.

Classes

struct  position
 
struct  ATTRIBUTE
 
struct  encoding
 
struct  INIT_ENCODING
 

Macros

#define XML_TOK_TRAILING_RSQB
 
#define XML_TOK_NONE   -4 /* The string to be scanned is empty */
 
#define XML_TOK_TRAILING_CR
 
#define XML_TOK_PARTIAL_CHAR   -2 /* only part of a multibyte sequence */
 
#define XML_TOK_PARTIAL   -1 /* only part of a token */
 
#define XML_TOK_INVALID   0
 
#define XML_TOK_START_TAG_WITH_ATTS   1
 
#define XML_TOK_START_TAG_NO_ATTS   2
 
#define XML_TOK_EMPTY_ELEMENT_WITH_ATTS   3 /* empty element tag <e/> */
 
#define XML_TOK_EMPTY_ELEMENT_NO_ATTS   4
 
#define XML_TOK_END_TAG   5
 
#define XML_TOK_DATA_CHARS   6
 
#define XML_TOK_DATA_NEWLINE   7
 
#define XML_TOK_CDATA_SECT_OPEN   8
 
#define XML_TOK_ENTITY_REF   9
 
#define XML_TOK_CHAR_REF   10 /* numeric character reference */
 
#define XML_TOK_PI   11 /* processing instruction */
 
#define XML_TOK_XML_DECL   12 /* XML decl or text decl */
 
#define XML_TOK_COMMENT   13
 
#define XML_TOK_BOM   14 /* Byte order mark */
 
#define XML_TOK_PROLOG_S   15
 
#define XML_TOK_DECL_OPEN   16 /* <!foo */
 
#define XML_TOK_DECL_CLOSE   17 /* > */
 
#define XML_TOK_NAME   18
 
#define XML_TOK_NMTOKEN   19
 
#define XML_TOK_POUND_NAME   20 /* #name */
 
#define XML_TOK_OR   21 /* | */
 
#define XML_TOK_PERCENT   22
 
#define XML_TOK_OPEN_PAREN   23
 
#define XML_TOK_CLOSE_PAREN   24
 
#define XML_TOK_OPEN_BRACKET   25
 
#define XML_TOK_CLOSE_BRACKET   26
 
#define XML_TOK_LITERAL   27
 
#define XML_TOK_PARAM_ENTITY_REF   28
 
#define XML_TOK_INSTANCE_START   29
 
#define XML_TOK_NAME_QUESTION   30 /* name? */
 
#define XML_TOK_NAME_ASTERISK   31 /* name* */
 
#define XML_TOK_NAME_PLUS   32 /* name+ */
 
#define XML_TOK_COND_SECT_OPEN   33 /* <![ */
 
#define XML_TOK_COND_SECT_CLOSE   34 /* ]]> */
 
#define XML_TOK_CLOSE_PAREN_QUESTION   35 /* )? */
 
#define XML_TOK_CLOSE_PAREN_ASTERISK   36 /* )* */
 
#define XML_TOK_CLOSE_PAREN_PLUS   37 /* )+ */
 
#define XML_TOK_COMMA   38
 
#define XML_TOK_ATTRIBUTE_VALUE_S   39
 
#define XML_TOK_CDATA_SECT_CLOSE   40
 
#define XML_TOK_PREFIXED_NAME   41
 
#define XML_N_STATES   3
 
#define XML_PROLOG_STATE   0
 
#define XML_CONTENT_STATE   1
 
#define XML_CDATA_SECTION_STATE   2
 
#define XML_N_LITERAL_TYPES   2
 
#define XML_ATTRIBUTE_VALUE_LITERAL   0
 
#define XML_ENTITY_VALUE_LITERAL   1
 
#define XML_UTF8_ENCODE_MAX   4
 
#define XML_UTF16_ENCODE_MAX   2
 
#define XmlTok(enc, state, ptr, end, nextTokPtr)    (((enc)->scanners[state])(enc, ptr, end, nextTokPtr))
 
#define XmlPrologTok(enc, ptr, end, nextTokPtr)    XmlTok(enc, XML_PROLOG_STATE, ptr, end, nextTokPtr)
 
#define XmlContentTok(enc, ptr, end, nextTokPtr)    XmlTok(enc, XML_CONTENT_STATE, ptr, end, nextTokPtr)
 
#define XmlCdataSectionTok(enc, ptr, end, nextTokPtr)    XmlTok(enc, XML_CDATA_SECTION_STATE, ptr, end, nextTokPtr)
 
#define XmlLiteralTok(enc, literalType, ptr, end, nextTokPtr)    (((enc)->literalScanners[literalType])(enc, ptr, end, nextTokPtr))
 
#define XmlAttributeValueTok(enc, ptr, end, nextTokPtr)    XmlLiteralTok(enc, XML_ATTRIBUTE_VALUE_LITERAL, ptr, end, nextTokPtr)
 
#define XmlEntityValueTok(enc, ptr, end, nextTokPtr)    XmlLiteralTok(enc, XML_ENTITY_VALUE_LITERAL, ptr, end, nextTokPtr)
 
#define XmlSameName(enc, ptr1, ptr2)   (((enc)->sameName)(enc, ptr1, ptr2))
 
#define XmlNameMatchesAscii(enc, ptr1, end1, ptr2)    (((enc)->nameMatchesAscii)(enc, ptr1, end1, ptr2))
 
#define XmlNameLength(enc, ptr)    (((enc)->nameLength)(enc, ptr))
 
#define XmlSkipS(enc, ptr)    (((enc)->skipS)(enc, ptr))
 
#define XmlGetAttributes(enc, ptr, attsMax, atts)    (((enc)->getAtts)(enc, ptr, attsMax, atts))
 
#define XmlCharRefNumber(enc, ptr)    (((enc)->charRefNumber)(enc, ptr))
 
#define XmlPredefinedEntityName(enc, ptr, end)    (((enc)->predefinedEntityName)(enc, ptr, end))
 
#define XmlUpdatePosition(enc, ptr, end, pos)    (((enc)->updatePosition)(enc, ptr, end, pos))
 
#define XmlIsPublicId(enc, ptr, end, badPtr)    (((enc)->isPublicId)(enc, ptr, end, badPtr))
 
#define XmlUtf8Convert(enc, fromP, fromLim, toP, toLim)    (((enc)->utf8Convert)(enc, fromP, fromLim, toP, toLim))
 
#define XmlUtf16Convert(enc, fromP, fromLim, toP, toLim)    (((enc)->utf16Convert)(enc, fromP, fromLim, toP, toLim))
 

Typedefs

typedef struct position POSITION
 
typedef struct encoding ENCODING
 
typedef int(PTRCALLSCANNER) (const ENCODING *, const char *, const char *, const char **)
 
typedef int(XMLCALLCONVERTER) (void *userData, const char *p)
 

Functions

int XmlParseXmlDecl (int isGeneralTextEntity, const ENCODING *enc, const char *ptr, const char *end, const char **badPtr, const char **versionPtr, const char **versionEndPtr, const char **encodingNamePtr, const ENCODING **namedEncodingPtr, int *standalonePtr)
 
int XmlInitEncoding (INIT_ENCODING *, const ENCODING **, const char *name)
 
const ENCODINGXmlGetUtf8InternalEncoding (void)
 
const ENCODINGXmlGetUtf16InternalEncoding (void)
 
int FASTCALL XmlUtf8Encode (int charNumber, char *buf)
 
int FASTCALL XmlUtf16Encode (int charNumber, unsigned short *buf)
 
int XmlSizeOfUnknownEncoding (void)
 
ENCODINGXmlInitUnknownEncoding (void *mem, int *table, CONVERTER convert, void *userData)
 
int XmlParseXmlDeclNS (int isGeneralTextEntity, const ENCODING *enc, const char *ptr, const char *end, const char **badPtr, const char **versionPtr, const char **versionEndPtr, const char **encodingNamePtr, const ENCODING **namedEncodingPtr, int *standalonePtr)
 
int XmlInitEncodingNS (INIT_ENCODING *, const ENCODING **, const char *name)
 
const ENCODINGXmlGetUtf8InternalEncodingNS (void)
 
const ENCODINGXmlGetUtf16InternalEncodingNS (void)
 
ENCODINGXmlInitUnknownEncodingNS (void *mem, int *table, CONVERTER convert, void *userData)
 

Macro Definition Documentation

◆ XML_ATTRIBUTE_VALUE_LITERAL

#define XML_ATTRIBUTE_VALUE_LITERAL   0

Definition at line 102 of file xmltok.h.

◆ XML_CDATA_SECTION_STATE

#define XML_CDATA_SECTION_STATE   2

Definition at line 96 of file xmltok.h.

◆ XML_CONTENT_STATE

#define XML_CONTENT_STATE   1

Definition at line 95 of file xmltok.h.

◆ XML_ENTITY_VALUE_LITERAL

#define XML_ENTITY_VALUE_LITERAL   1

Definition at line 103 of file xmltok.h.

◆ XML_N_LITERAL_TYPES

#define XML_N_LITERAL_TYPES   2

Definition at line 101 of file xmltok.h.

◆ XML_N_STATES

#define XML_N_STATES   3

Definition at line 91 of file xmltok.h.

◆ XML_PROLOG_STATE

#define XML_PROLOG_STATE   0

Definition at line 94 of file xmltok.h.

◆ XML_TOK_ATTRIBUTE_VALUE_S

#define XML_TOK_ATTRIBUTE_VALUE_S   39

Definition at line 74 of file xmltok.h.

◆ XML_TOK_BOM

#define XML_TOK_BOM   14 /* Byte order mark */

Definition at line 43 of file xmltok.h.

◆ XML_TOK_CDATA_SECT_CLOSE

#define XML_TOK_CDATA_SECT_CLOSE   40

Definition at line 77 of file xmltok.h.

◆ XML_TOK_CDATA_SECT_OPEN

#define XML_TOK_CDATA_SECT_OPEN   8

Definition at line 33 of file xmltok.h.

◆ XML_TOK_CHAR_REF

#define XML_TOK_CHAR_REF   10 /* numeric character reference */

Definition at line 35 of file xmltok.h.

◆ XML_TOK_CLOSE_BRACKET

#define XML_TOK_CLOSE_BRACKET   26

Definition at line 57 of file xmltok.h.

◆ XML_TOK_CLOSE_PAREN

#define XML_TOK_CLOSE_PAREN   24

Definition at line 55 of file xmltok.h.

◆ XML_TOK_CLOSE_PAREN_ASTERISK

#define XML_TOK_CLOSE_PAREN_ASTERISK   36 /* )* */

Definition at line 69 of file xmltok.h.

◆ XML_TOK_CLOSE_PAREN_PLUS

#define XML_TOK_CLOSE_PAREN_PLUS   37 /* )+ */

Definition at line 70 of file xmltok.h.

◆ XML_TOK_CLOSE_PAREN_QUESTION

#define XML_TOK_CLOSE_PAREN_QUESTION   35 /* )? */

Definition at line 68 of file xmltok.h.

◆ XML_TOK_COMMA

#define XML_TOK_COMMA   38

Definition at line 71 of file xmltok.h.

◆ XML_TOK_COMMENT

#define XML_TOK_COMMENT   13

Definition at line 42 of file xmltok.h.

◆ XML_TOK_COND_SECT_CLOSE

#define XML_TOK_COND_SECT_CLOSE   34 /* ]]> */

Definition at line 67 of file xmltok.h.

◆ XML_TOK_COND_SECT_OPEN

#define XML_TOK_COND_SECT_OPEN   33 /* <![ */

Definition at line 66 of file xmltok.h.

◆ XML_TOK_DATA_CHARS

#define XML_TOK_DATA_CHARS   6

Definition at line 31 of file xmltok.h.

◆ XML_TOK_DATA_NEWLINE

#define XML_TOK_DATA_NEWLINE   7

Definition at line 32 of file xmltok.h.

◆ XML_TOK_DECL_CLOSE

#define XML_TOK_DECL_CLOSE   17 /* > */

Definition at line 48 of file xmltok.h.

◆ XML_TOK_DECL_OPEN

#define XML_TOK_DECL_OPEN   16 /* <!foo */

Definition at line 47 of file xmltok.h.

◆ XML_TOK_EMPTY_ELEMENT_NO_ATTS

#define XML_TOK_EMPTY_ELEMENT_NO_ATTS   4

Definition at line 29 of file xmltok.h.

◆ XML_TOK_EMPTY_ELEMENT_WITH_ATTS

#define XML_TOK_EMPTY_ELEMENT_WITH_ATTS   3 /* empty element tag <e/> */

Definition at line 28 of file xmltok.h.

◆ XML_TOK_END_TAG

#define XML_TOK_END_TAG   5

Definition at line 30 of file xmltok.h.

◆ XML_TOK_ENTITY_REF

#define XML_TOK_ENTITY_REF   9

Definition at line 34 of file xmltok.h.

◆ XML_TOK_INSTANCE_START

#define XML_TOK_INSTANCE_START   29

Definition at line 60 of file xmltok.h.

◆ XML_TOK_INVALID

#define XML_TOK_INVALID   0

Definition at line 21 of file xmltok.h.

◆ XML_TOK_LITERAL

#define XML_TOK_LITERAL   27

Definition at line 58 of file xmltok.h.

◆ XML_TOK_NAME

#define XML_TOK_NAME   18

Definition at line 49 of file xmltok.h.

◆ XML_TOK_NAME_ASTERISK

#define XML_TOK_NAME_ASTERISK   31 /* name* */

Definition at line 64 of file xmltok.h.

◆ XML_TOK_NAME_PLUS

#define XML_TOK_NAME_PLUS   32 /* name+ */

Definition at line 65 of file xmltok.h.

◆ XML_TOK_NAME_QUESTION

#define XML_TOK_NAME_QUESTION   30 /* name? */

Definition at line 63 of file xmltok.h.

◆ XML_TOK_NMTOKEN

#define XML_TOK_NMTOKEN   19

Definition at line 50 of file xmltok.h.

◆ XML_TOK_NONE

#define XML_TOK_NONE   -4 /* The string to be scanned is empty */

Definition at line 17 of file xmltok.h.

◆ XML_TOK_OPEN_BRACKET

#define XML_TOK_OPEN_BRACKET   25

Definition at line 56 of file xmltok.h.

◆ XML_TOK_OPEN_PAREN

#define XML_TOK_OPEN_PAREN   23

Definition at line 54 of file xmltok.h.

◆ XML_TOK_OR

#define XML_TOK_OR   21 /* | */

Definition at line 52 of file xmltok.h.

◆ XML_TOK_PARAM_ENTITY_REF

#define XML_TOK_PARAM_ENTITY_REF   28

Definition at line 59 of file xmltok.h.

◆ XML_TOK_PARTIAL

#define XML_TOK_PARTIAL   -1 /* only part of a token */

Definition at line 20 of file xmltok.h.

◆ XML_TOK_PARTIAL_CHAR

#define XML_TOK_PARTIAL_CHAR   -2 /* only part of a multibyte sequence */

Definition at line 19 of file xmltok.h.

◆ XML_TOK_PERCENT

#define XML_TOK_PERCENT   22

Definition at line 53 of file xmltok.h.

◆ XML_TOK_PI

#define XML_TOK_PI   11 /* processing instruction */

Definition at line 40 of file xmltok.h.

◆ XML_TOK_POUND_NAME

#define XML_TOK_POUND_NAME   20 /* #name */

Definition at line 51 of file xmltok.h.

◆ XML_TOK_PREFIXED_NAME

#define XML_TOK_PREFIXED_NAME   41

Definition at line 82 of file xmltok.h.

◆ XML_TOK_PROLOG_S

#define XML_TOK_PROLOG_S   15

Definition at line 46 of file xmltok.h.

◆ XML_TOK_START_TAG_NO_ATTS

#define XML_TOK_START_TAG_NO_ATTS   2

Definition at line 27 of file xmltok.h.

◆ XML_TOK_START_TAG_WITH_ATTS

#define XML_TOK_START_TAG_WITH_ATTS   1

Definition at line 26 of file xmltok.h.

◆ XML_TOK_TRAILING_CR

#define XML_TOK_TRAILING_CR
Value:
-3 /* A CR at the end of the scan;
might be part of CRLF sequence */

Definition at line 18 of file xmltok.h.

◆ XML_TOK_TRAILING_RSQB

#define XML_TOK_TRAILING_RSQB
Value:
-5 /* ] or ]] at the end of the scan; might be
start of illegal ]]> sequence */

Definition at line 13 of file xmltok.h.

◆ XML_TOK_XML_DECL

#define XML_TOK_XML_DECL   12 /* XML decl or text decl */

Definition at line 41 of file xmltok.h.

◆ XML_UTF16_ENCODE_MAX

#define XML_UTF16_ENCODE_MAX   2

Definition at line 108 of file xmltok.h.

◆ XML_UTF8_ENCODE_MAX

#define XML_UTF8_ENCODE_MAX   4

Definition at line 106 of file xmltok.h.

◆ XmlAttributeValueTok

#define XmlAttributeValueTok (   enc,
  ptr,
  end,
  nextTokPtr 
)     XmlLiteralTok(enc, XML_ATTRIBUTE_VALUE_LITERAL, ptr, end, nextTokPtr)

Definition at line 221 of file xmltok.h.

◆ XmlCdataSectionTok

#define XmlCdataSectionTok (   enc,
  ptr,
  end,
  nextTokPtr 
)     XmlTok(enc, XML_CDATA_SECTION_STATE, ptr, end, nextTokPtr)

Definition at line 205 of file xmltok.h.

◆ XmlCharRefNumber

#define XmlCharRefNumber (   enc,
  ptr 
)     (((enc)->charRefNumber)(enc, ptr))

Definition at line 241 of file xmltok.h.

◆ XmlContentTok

#define XmlContentTok (   enc,
  ptr,
  end,
  nextTokPtr 
)     XmlTok(enc, XML_CONTENT_STATE, ptr, end, nextTokPtr)

Definition at line 202 of file xmltok.h.

◆ XmlEntityValueTok

#define XmlEntityValueTok (   enc,
  ptr,
  end,
  nextTokPtr 
)     XmlLiteralTok(enc, XML_ENTITY_VALUE_LITERAL, ptr, end, nextTokPtr)

Definition at line 224 of file xmltok.h.

◆ XmlGetAttributes

#define XmlGetAttributes (   enc,
  ptr,
  attsMax,
  atts 
)     (((enc)->getAtts)(enc, ptr, attsMax, atts))

Definition at line 238 of file xmltok.h.

◆ XmlIsPublicId

#define XmlIsPublicId (   enc,
  ptr,
  end,
  badPtr 
)     (((enc)->isPublicId)(enc, ptr, end, badPtr))

Definition at line 250 of file xmltok.h.

◆ XmlLiteralTok

#define XmlLiteralTok (   enc,
  literalType,
  ptr,
  end,
  nextTokPtr 
)     (((enc)->literalScanners[literalType])(enc, ptr, end, nextTokPtr))

Definition at line 218 of file xmltok.h.

◆ XmlNameLength

#define XmlNameLength (   enc,
  ptr 
)     (((enc)->nameLength)(enc, ptr))

Definition at line 232 of file xmltok.h.

◆ XmlNameMatchesAscii

#define XmlNameMatchesAscii (   enc,
  ptr1,
  end1,
  ptr2 
)     (((enc)->nameMatchesAscii)(enc, ptr1, end1, ptr2))

Definition at line 229 of file xmltok.h.

◆ XmlPredefinedEntityName

#define XmlPredefinedEntityName (   enc,
  ptr,
  end 
)     (((enc)->predefinedEntityName)(enc, ptr, end))

Definition at line 244 of file xmltok.h.

◆ XmlPrologTok

#define XmlPrologTok (   enc,
  ptr,
  end,
  nextTokPtr 
)     XmlTok(enc, XML_PROLOG_STATE, ptr, end, nextTokPtr)

Definition at line 199 of file xmltok.h.

◆ XmlSameName

#define XmlSameName (   enc,
  ptr1,
  ptr2 
)    (((enc)->sameName)(enc, ptr1, ptr2))

Definition at line 227 of file xmltok.h.

◆ XmlSkipS

#define XmlSkipS (   enc,
  ptr 
)     (((enc)->skipS)(enc, ptr))

Definition at line 235 of file xmltok.h.

◆ XmlTok

#define XmlTok (   enc,
  state,
  ptr,
  end,
  nextTokPtr 
)     (((enc)->scanners[state])(enc, ptr, end, nextTokPtr))

Definition at line 196 of file xmltok.h.

◆ XmlUpdatePosition

#define XmlUpdatePosition (   enc,
  ptr,
  end,
  pos 
)     (((enc)->updatePosition)(enc, ptr, end, pos))

Definition at line 247 of file xmltok.h.

◆ XmlUtf16Convert

#define XmlUtf16Convert (   enc,
  fromP,
  fromLim,
  toP,
  toLim 
)     (((enc)->utf16Convert)(enc, fromP, fromLim, toP, toLim))

Definition at line 256 of file xmltok.h.

◆ XmlUtf8Convert

#define XmlUtf8Convert (   enc,
  fromP,
  fromLim,
  toP,
  toLim 
)     (((enc)->utf8Convert)(enc, fromP, fromLim, toP, toLim))

Definition at line 253 of file xmltok.h.

Typedef Documentation

◆ CONVERTER

typedef int(XMLCALL * CONVERTER) (void *userData, const char *p)

Definition at line 283 of file xmltok.h.

◆ ENCODING

typedef struct encoding ENCODING

Definition at line 124 of file xmltok.h.

◆ POSITION

typedef struct position POSITION

◆ SCANNER

typedef int(PTRCALL * SCANNER) (const ENCODING *, const char *, const char *, const char **)

Definition at line 126 of file xmltok.h.

Function Documentation

◆ XmlGetUtf16InternalEncoding()

const ENCODING * XmlGetUtf16InternalEncoding ( void  )

◆ XmlGetUtf16InternalEncodingNS()

const ENCODING * XmlGetUtf16InternalEncodingNS ( void  )

◆ XmlGetUtf8InternalEncoding()

const ENCODING * XmlGetUtf8InternalEncoding ( void  )

◆ XmlGetUtf8InternalEncodingNS()

const ENCODING * XmlGetUtf8InternalEncodingNS ( void  )

◆ XmlInitEncoding()

int XmlInitEncoding ( INIT_ENCODING ,
const ENCODING **  ,
const char *  name 
)

◆ XmlInitEncodingNS()

int XmlInitEncodingNS ( INIT_ENCODING ,
const ENCODING **  ,
const char *  name 
)

◆ XmlInitUnknownEncoding()

ENCODING * XmlInitUnknownEncoding ( void *  mem,
int *  table,
CONVERTER  convert,
void *  userData 
)

Definition at line 1346 of file xmltok.cc.

1350{
1351 int i;
1352 struct unknown_encoding *e = (struct unknown_encoding *)mem;
1353 for (i = 0; i < (int)sizeof(struct normal_encoding); i++)
1354 ((char *)mem)[i] = ((char *)&latin1_encoding)[i];
1355 for (i = 0; i < 128; i++)
1356 if (latin1_encoding.type[i] != BT_OTHER
1357 && latin1_encoding.type[i] != BT_NONXML
1358 && table[i] != i)
1359 return 0;
1360 for (i = 0; i < 256; i++) {
1361 int c = table[i];
1362 if (c == -1) {
1363 e->normal.type[i] = BT_MALFORM;
1364 /* This shouldn't really get used. */
1365 e->utf16[i] = 0xFFFF;
1366 e->utf8[i][0] = 1;
1367 e->utf8[i][1] = 0;
1368 }
1369 else if (c < 0) {
1370 if (c < -4)
1371 return 0;
1372 e->normal.type[i] = (unsigned char)(BT_LEAD2 - (c + 2));
1373 e->utf8[i][0] = 0;
1374 e->utf16[i] = 0;
1375 }
1376 else if (c < 0x80) {
1377 if (latin1_encoding.type[c] != BT_OTHER
1378 && latin1_encoding.type[c] != BT_NONXML
1379 && c != i)
1380 return 0;
1381 e->normal.type[i] = latin1_encoding.type[c];
1382 e->utf8[i][0] = 1;
1383 e->utf8[i][1] = (char)c;
1384 e->utf16[i] = (unsigned short)(c == 0 ? 0xFFFF : c);
1385 }
1386 else if (checkCharRefNumber(c) < 0) {
1387 e->normal.type[i] = BT_NONXML;
1388 /* This shouldn't really get used. */
1389 e->utf16[i] = 0xFFFF;
1390 e->utf8[i][0] = 1;
1391 e->utf8[i][1] = 0;
1392 }
1393 else {
1394 if (c > 0xFFFF)
1395 return 0;
1396 if (UCS2_GET_NAMING(nmstrtPages, c >> 8, c & 0xff))
1397 e->normal.type[i] = BT_NMSTRT;
1398 else if (UCS2_GET_NAMING(namePages, c >> 8, c & 0xff))
1399 e->normal.type[i] = BT_NAME;
1400 else
1401 e->normal.type[i] = BT_OTHER;
1402 e->utf8[i][0] = (char)XmlUtf8Encode(c, e->utf8[i] + 1);
1403 e->utf16[i] = (unsigned short)c;
1404 }
1405 }
1406 e->userData = userData;
1407 e->convert = convert;
1408 if (convert) {
1409 e->normal.isName2 = unknown_isName;
1410 e->normal.isName3 = unknown_isName;
1411 e->normal.isName4 = unknown_isName;
1412 e->normal.isNmstrt2 = unknown_isNmstrt;
1413 e->normal.isNmstrt3 = unknown_isNmstrt;
1414 e->normal.isNmstrt4 = unknown_isNmstrt;
1415 e->normal.isInvalid2 = unknown_isInvalid;
1416 e->normal.isInvalid3 = unknown_isInvalid;
1417 e->normal.isInvalid4 = unknown_isInvalid;
1418 }
1419 e->normal.enc.utf8Convert = unknown_toUtf8;
1420 e->normal.enc.utf16Convert = unknown_toUtf16;
1421 return &(e->normal.enc);
1422}
@ BT_MALFORM
@ BT_OTHER
@ BT_NAME
@ BT_LEAD2
@ BT_NMSTRT
@ BT_NONXML
unsigned char type[256]
Definition: xmltok.cc:178
ENCODING enc
Definition: xmltok.cc:177
unsigned short utf16[256]
Definition: xmltok.cc:1251
CONVERTER convert
Definition: xmltok.cc:1249
void * userData
Definition: xmltok.cc:1250
char utf8[256][4]
Definition: xmltok.cc:1252
struct normal_encoding normal
Definition: xmltok.cc:1248
#define userData
Definition: xmlparse.cc:555
#define UCS2_GET_NAMING(pages, hi, lo)
Definition: xmltok.cc:48
int FASTCALL XmlUtf8Encode(int c, char *buf)
Definition: xmltok.cc:1193

◆ XmlInitUnknownEncodingNS()

ENCODING * XmlInitUnknownEncodingNS ( void *  mem,
int *  table,
CONVERTER  convert,
void *  userData 
)

◆ XmlParseXmlDecl()

int XmlParseXmlDecl ( int  isGeneralTextEntity,
const ENCODING enc,
const char *  ptr,
const char *  end,
const char **  badPtr,
const char **  versionPtr,
const char **  versionEndPtr,
const char **  encodingNamePtr,
const ENCODING **  namedEncodingPtr,
int *  standalonePtr 
)

◆ XmlParseXmlDeclNS()

int XmlParseXmlDeclNS ( int  isGeneralTextEntity,
const ENCODING enc,
const char *  ptr,
const char *  end,
const char **  badPtr,
const char **  versionPtr,
const char **  versionEndPtr,
const char **  encodingNamePtr,
const ENCODING **  namedEncodingPtr,
int *  standalonePtr 
)

◆ XmlSizeOfUnknownEncoding()

int XmlSizeOfUnknownEncoding ( void  )

Definition at line 1258 of file xmltok.cc.

1259{
1260 return sizeof(struct unknown_encoding);
1261}

◆ XmlUtf16Encode()

int FASTCALL XmlUtf16Encode ( int  charNumber,
unsigned short *  buf 
)

Definition at line 1230 of file xmltok.cc.

1231{
1232 if (charNum < 0)
1233 return 0;
1234 if (charNum < 0x10000) {
1235 buf[0] = (unsigned short)charNum;
1236 return 1;
1237 }
1238 if (charNum < 0x110000) {
1239 charNum -= 0x10000;
1240 buf[0] = (unsigned short)((charNum >> 10) + 0xD800);
1241 buf[1] = (unsigned short)((charNum & 0x3FF) + 0xDC00);
1242 return 2;
1243 }
1244 return 0;
1245}

◆ XmlUtf8Encode()

int FASTCALL XmlUtf8Encode ( int  charNumber,
char *  buf 
)

Definition at line 1193 of file xmltok.cc.

1194{
1195 enum {
1196 /* minN is minimum legal resulting value for N byte sequence */
1197 min2 = 0x80,
1198 min3 = 0x800,
1199 min4 = 0x10000
1200 };
1201
1202 if (c < 0)
1203 return 0;
1204 if (c < min2) {
1205 buf[0] = (char)(c | UTF8_cval1);
1206 return 1;
1207 }
1208 if (c < min3) {
1209 buf[0] = (char)((c >> 6) | UTF8_cval2);
1210 buf[1] = (char)((c & 0x3f) | 0x80);
1211 return 2;
1212 }
1213 if (c < min4) {
1214 buf[0] = (char)((c >> 12) | UTF8_cval3);
1215 buf[1] = (char)(((c >> 6) & 0x3f) | 0x80);
1216 buf[2] = (char)((c & 0x3f) | 0x80);
1217 return 3;
1218 }
1219 if (c < 0x110000) {
1220 buf[0] = (char)((c >> 18) | UTF8_cval4);
1221 buf[1] = (char)(((c >> 12) & 0x3f) | 0x80);
1222 buf[2] = (char)(((c >> 6) & 0x3f) | 0x80);
1223 buf[3] = (char)((c & 0x3f) | 0x80);
1224 return 4;
1225 }
1226 return 0;
1227}
@ UTF8_cval4
Definition: xmltok.cc:318
@ UTF8_cval1
Definition: xmltok.cc:315
@ UTF8_cval2
Definition: xmltok.cc:316
@ UTF8_cval3
Definition: xmltok.cc:317

Referenced by XmlInitUnknownEncoding().