Geant4 10.7.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 1351 of file xmltok.cc.

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

◆ 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 1263 of file xmltok.cc.

1264{
1265 return sizeof(struct unknown_encoding);
1266}

◆ XmlUtf16Encode()

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

Definition at line 1235 of file xmltok.cc.

1236{
1237 if (charNum < 0)
1238 return 0;
1239 if (charNum < 0x10000) {
1240 buf[0] = (unsigned short)charNum;
1241 return 1;
1242 }
1243 if (charNum < 0x110000) {
1244 charNum -= 0x10000;
1245 buf[0] = (unsigned short)((charNum >> 10) + 0xD800);
1246 buf[1] = (unsigned short)((charNum & 0x3FF) + 0xDC00);
1247 return 2;
1248 }
1249 return 0;
1250}

◆ XmlUtf8Encode()

int FASTCALL XmlUtf8Encode ( int  charNumber,
char *  buf 
)

Definition at line 1198 of file xmltok.cc.

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

Referenced by XmlInitUnknownEncoding().