Jabber WindowGram Client (JWGC)

Introduction Screenshots Installation Downloads
Documentation Browse Source Resources Project Site

Stable Version
-none-

Latest Version
beta5



Main Page | Alphabetical List | Data Structures | Directories | File List | Data Fields | Globals

xmltok.h File Reference

Go to the source code of this file.

Data Structures

struct  position
struct  ATTRIBUTE
struct  encoding
struct  INIT_ENCODING

Defines

#define XmlTok_INCLUDED   1
#define XML_TOK_TRAILING_RSQB   -5
#define XML_TOK_NONE   -4
#define XML_TOK_TRAILING_CR   -3
#define XML_TOK_PARTIAL_CHAR   -2
#define XML_TOK_PARTIAL   -1
#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
#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
#define XML_TOK_PI   11
#define XML_TOK_XML_DECL   12
#define XML_TOK_COMMENT   13
#define XML_TOK_BOM   14
#define XML_TOK_PROLOG_S   15
#define XML_TOK_DECL_OPEN   16
#define XML_TOK_DECL_CLOSE   17
#define XML_TOK_NAME   18
#define XML_TOK_NMTOKEN   19
#define XML_TOK_POUND_NAME   20
#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
#define XML_TOK_NAME_ASTERISK   31
#define XML_TOK_NAME_PLUS   32
#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 position POSITION
typedef encoding ENCODING

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 XmlUtf8Encode (int charNumber, char *buf)
int XmlUtf16Encode (int charNumber, unsigned short *buf)
int XmlSizeOfUnknownEncoding (void)
ENCODINGXmlInitUnknownEncoding (void *mem, int *table, int(*conv)(void *userData, const char *p), 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, int(*conv)(void *userData, const char *p), void *userData)


Define Documentation

#define XML_ATTRIBUTE_VALUE_LITERAL   0
 

Definition at line 100 of file xmltok.h.

#define XML_CDATA_SECTION_STATE   2
 

Definition at line 94 of file xmltok.h.

#define XML_CONTENT_STATE   1
 

Definition at line 93 of file xmltok.h.

#define XML_ENTITY_VALUE_LITERAL   1
 

Definition at line 101 of file xmltok.h.

#define XML_N_LITERAL_TYPES   2
 

Definition at line 99 of file xmltok.h.

#define XML_N_STATES   3
 

Definition at line 89 of file xmltok.h.

#define XML_PROLOG_STATE   0
 

Definition at line 92 of file xmltok.h.

#define XML_TOK_ATTRIBUTE_VALUE_S   39
 

Definition at line 73 of file xmltok.h.

#define XML_TOK_BOM   14
 

Definition at line 42 of file xmltok.h.

#define XML_TOK_CDATA_SECT_CLOSE   40
 

Definition at line 76 of file xmltok.h.

#define XML_TOK_CDATA_SECT_OPEN   8
 

Definition at line 34 of file xmltok.h.

#define XML_TOK_CHAR_REF   10
 

Definition at line 36 of file xmltok.h.

#define XML_TOK_CLOSE_BRACKET   26
 

Definition at line 56 of file xmltok.h.

#define XML_TOK_CLOSE_PAREN   24
 

Definition at line 54 of file xmltok.h.

#define XML_TOK_CLOSE_PAREN_ASTERISK   36
 

Definition at line 68 of file xmltok.h.

#define XML_TOK_CLOSE_PAREN_PLUS   37
 

Definition at line 69 of file xmltok.h.

#define XML_TOK_CLOSE_PAREN_QUESTION   35
 

Definition at line 67 of file xmltok.h.

#define XML_TOK_COMMA   38
 

Definition at line 70 of file xmltok.h.

#define XML_TOK_COMMENT   13
 

Definition at line 41 of file xmltok.h.

#define XML_TOK_COND_SECT_CLOSE   34
 

Definition at line 66 of file xmltok.h.

#define XML_TOK_COND_SECT_OPEN   33
 

Definition at line 65 of file xmltok.h.

#define XML_TOK_DATA_CHARS   6
 

Definition at line 32 of file xmltok.h.

#define XML_TOK_DATA_NEWLINE   7
 

Definition at line 33 of file xmltok.h.

#define XML_TOK_DECL_CLOSE   17
 

Definition at line 47 of file xmltok.h.

#define XML_TOK_DECL_OPEN   16
 

Definition at line 46 of file xmltok.h.

#define XML_TOK_EMPTY_ELEMENT_NO_ATTS   4
 

Definition at line 30 of file xmltok.h.

#define XML_TOK_EMPTY_ELEMENT_WITH_ATTS   3
 

Definition at line 29 of file xmltok.h.

#define XML_TOK_END_TAG   5
 

Definition at line 31 of file xmltok.h.

#define XML_TOK_ENTITY_REF   9
 

Definition at line 35 of file xmltok.h.

#define XML_TOK_INSTANCE_START   29
 

Definition at line 59 of file xmltok.h.

#define XML_TOK_INVALID   0
 

Definition at line 22 of file xmltok.h.

#define XML_TOK_LITERAL   27
 

Definition at line 57 of file xmltok.h.

#define XML_TOK_NAME   18
 

Definition at line 48 of file xmltok.h.

#define XML_TOK_NAME_ASTERISK   31
 

Definition at line 63 of file xmltok.h.

#define XML_TOK_NAME_PLUS   32
 

Definition at line 64 of file xmltok.h.

#define XML_TOK_NAME_QUESTION   30
 

Definition at line 62 of file xmltok.h.

#define XML_TOK_NMTOKEN   19
 

Definition at line 49 of file xmltok.h.

#define XML_TOK_NONE   -4
 

Definition at line 17 of file xmltok.h.

#define XML_TOK_OPEN_BRACKET   25
 

Definition at line 55 of file xmltok.h.

#define XML_TOK_OPEN_PAREN   23
 

Definition at line 53 of file xmltok.h.

#define XML_TOK_OR   21
 

Definition at line 51 of file xmltok.h.

#define XML_TOK_PARAM_ENTITY_REF   28
 

Definition at line 58 of file xmltok.h.

#define XML_TOK_PARTIAL   -1
 

Definition at line 21 of file xmltok.h.

#define XML_TOK_PARTIAL_CHAR   -2
 

Definition at line 20 of file xmltok.h.

#define XML_TOK_PERCENT   22
 

Definition at line 52 of file xmltok.h.

#define XML_TOK_PI   11
 

Definition at line 39 of file xmltok.h.

#define XML_TOK_POUND_NAME   20
 

Definition at line 50 of file xmltok.h.

#define XML_TOK_PREFIXED_NAME   41
 

Definition at line 80 of file xmltok.h.

#define XML_TOK_PROLOG_S   15
 

Definition at line 45 of file xmltok.h.

#define XML_TOK_START_TAG_NO_ATTS   2
 

Definition at line 28 of file xmltok.h.

#define XML_TOK_START_TAG_WITH_ATTS   1
 

Definition at line 27 of file xmltok.h.

#define XML_TOK_TRAILING_CR   -3
 

Definition at line 18 of file xmltok.h.

#define XML_TOK_TRAILING_RSQB   -5
 

Definition at line 14 of file xmltok.h.

#define XML_TOK_XML_DECL   12
 

Definition at line 40 of file xmltok.h.

#define XML_UTF16_ENCODE_MAX   2
 

Definition at line 106 of file xmltok.h.

#define XML_UTF8_ENCODE_MAX   4
 

Definition at line 104 of file xmltok.h.

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

Definition at line 210 of file xmltok.h.

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

Definition at line 194 of file xmltok.h.

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

Definition at line 230 of file xmltok.h.

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

Definition at line 191 of file xmltok.h.

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

Definition at line 213 of file xmltok.h.

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

Definition at line 227 of file xmltok.h.

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

Definition at line 239 of file xmltok.h.

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

Definition at line 207 of file xmltok.h.

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

Definition at line 221 of file xmltok.h.

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

Definition at line 218 of file xmltok.h.

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

Definition at line 233 of file xmltok.h.

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

Definition at line 188 of file xmltok.h.

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

Definition at line 216 of file xmltok.h.

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

Definition at line 224 of file xmltok.h.

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

Definition at line 185 of file xmltok.h.

#define XmlTok_INCLUDED   1
 

Definition at line 7 of file xmltok.h.

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

Definition at line 236 of file xmltok.h.

Referenced by XML_GetCurrentColumnNumber(), XML_GetCurrentLineNumber(), XML_Parse(), and XML_ParseBuffer().

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

Definition at line 245 of file xmltok.h.

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

Definition at line 242 of file xmltok.h.


Typedef Documentation

typedef struct encoding ENCODING
 

Definition at line 122 of file xmltok.h.

typedef struct position POSITION
 

Referenced by XML_ParserCreate_MM().


Function Documentation

const ENCODING* XmlGetUtf16InternalEncoding void   ) 
 

const ENCODING* XmlGetUtf16InternalEncodingNS void   ) 
 

const ENCODING* XmlGetUtf8InternalEncoding void   ) 
 

const ENCODING* XmlGetUtf8InternalEncodingNS void   ) 
 

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

Referenced by XML_ParserCreate_MM().

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

ENCODING* XmlInitUnknownEncoding void *  mem,
int *  table,
int(*)(void *userData, const char *p)  conv,
void *  userData
 

Definition at line 1276 of file xmltok.c.

References BT_LEAD2, BT_NONXML, BT_OTHER, unknown_encoding::convert, normal_encoding::enc, normal_encoding::isInvalid2, normal_encoding::isInvalid3, normal_encoding::isInvalid4, normal_encoding::isName2, normal_encoding::isName3, normal_encoding::isName4, normal_encoding::isNmstrt2, normal_encoding::isNmstrt3, normal_encoding::isNmstrt4, unknown_encoding::normal, normal_encoding::type, UCS2_GET_NAMING, unknown_encoding::userData, unknown_encoding::utf16, encoding::utf16Convert, unknown_encoding::utf8, encoding::utf8Convert, and XmlUtf8Encode().

01280 {
01281   int i;
01282   struct unknown_encoding *e = mem;
01283   for (i = 0; i < (int)sizeof(struct normal_encoding); i++)
01284     ((char *)mem)[i] = ((char *)&latin1_encoding)[i];
01285   for (i = 0; i < 128; i++)
01286     if (latin1_encoding.type[i] != BT_OTHER
01287         && latin1_encoding.type[i] != BT_NONXML
01288         && table[i] != i)
01289       return 0;
01290   for (i = 0; i < 256; i++) {
01291     int c = table[i];
01292     if (c == -1) {
01293       e->normal.type[i] = BT_MALFORM;
01294       /* This shouldn't really get used. */
01295       e->utf16[i] = 0xFFFF;
01296       e->utf8[i][0] = 1;
01297       e->utf8[i][1] = 0;
01298     }
01299     else if (c < 0) {
01300       if (c < -4)
01301         return 0;
01302       e->normal.type[i] = BT_LEAD2 - (c + 2);
01303       e->utf8[i][0] = 0;
01304       e->utf16[i] = 0;
01305     }
01306     else if (c < 0x80) {
01307       if (latin1_encoding.type[c] != BT_OTHER
01308           && latin1_encoding.type[c] != BT_NONXML
01309           && c != i)
01310         return 0;
01311       e->normal.type[i] = latin1_encoding.type[c];
01312       e->utf8[i][0] = 1;
01313       e->utf8[i][1] = (char)c;
01314       e->utf16[i] = c == 0 ? 0xFFFF : c;
01315     }
01316     else if (checkCharRefNumber(c) < 0) {
01317       e->normal.type[i] = BT_NONXML;
01318       /* This shouldn't really get used. */
01319       e->utf16[i] = 0xFFFF;
01320       e->utf8[i][0] = 1;
01321       e->utf8[i][1] = 0;
01322     }
01323     else {
01324       if (c > 0xFFFF)
01325         return 0;
01326       if (UCS2_GET_NAMING(nmstrtPages, c >> 8, c & 0xff))
01327         e->normal.type[i] = BT_NMSTRT;
01328       else if (UCS2_GET_NAMING(namePages, c >> 8, c & 0xff))
01329         e->normal.type[i] = BT_NAME;
01330       else
01331         e->normal.type[i] = BT_OTHER;
01332       e->utf8[i][0] = (char)XmlUtf8Encode(c, e->utf8[i] + 1);
01333       e->utf16[i] = c;
01334     }
01335   }
01336   e->userData = userData;
01337   e->convert = convert;
01338   if (convert) {
01339     e->normal.isName2 = unknown_isName;
01340     e->normal.isName3 = unknown_isName;
01341     e->normal.isName4 = unknown_isName;
01342     e->normal.isNmstrt2 = unknown_isNmstrt;
01343     e->normal.isNmstrt3 = unknown_isNmstrt;
01344     e->normal.isNmstrt4 = unknown_isNmstrt;
01345     e->normal.isInvalid2 = unknown_isInvalid;
01346     e->normal.isInvalid3 = unknown_isInvalid;
01347     e->normal.isInvalid4 = unknown_isInvalid;
01348   }
01349   e->normal.enc.utf8Convert = unknown_toUtf8;
01350   e->normal.enc.utf16Convert = unknown_toUtf16;
01351   return &(e->normal.enc);
01352 }

ENCODING* XmlInitUnknownEncodingNS void *  mem,
int *  table,
int(*)(void *userData, const char *p)  conv,
void *  userData
 

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 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 XmlSizeOfUnknownEncoding void   ) 
 

Definition at line 1188 of file xmltok.c.

01189 {
01190   return sizeof(struct unknown_encoding);
01191 }

int XmlUtf16Encode int  charNumber,
unsigned short *  buf
 

Definition at line 1163 of file xmltok.c.

01164 {
01165   if (charNum < 0)
01166     return 0;
01167   if (charNum < 0x10000) {
01168     buf[0] = charNum;
01169     return 1;
01170   }
01171   if (charNum < 0x110000) {
01172     charNum -= 0x10000;
01173     buf[0] = (charNum >> 10) + 0xD800;
01174     buf[1] = (charNum & 0x3FF) + 0xDC00;
01175     return 2;
01176   }
01177   return 0;
01178 }

int XmlUtf8Encode int  charNumber,
char *  buf
 

Definition at line 1127 of file xmltok.c.

Referenced by XmlInitUnknownEncoding().

01128 {
01129   enum {
01130     /* minN is minimum legal resulting value for N byte sequence */
01131     min2 = 0x80,
01132     min3 = 0x800,
01133     min4 = 0x10000
01134   };
01135 
01136   if (c < 0)
01137     return 0;
01138   if (c < min2) {
01139     buf[0] = (c | UTF8_cval1);
01140     return 1;
01141   }
01142   if (c < min3) {
01143     buf[0] = ((c >> 6) | UTF8_cval2);
01144     buf[1] = ((c & 0x3f) | 0x80);
01145     return 2;
01146   }
01147   if (c < min4) {
01148     buf[0] = ((c >> 12) | UTF8_cval3);
01149     buf[1] = (((c >> 6) & 0x3f) | 0x80);
01150     buf[2] = ((c & 0x3f) | 0x80);
01151     return 3;
01152   }
01153   if (c < 0x110000) {
01154     buf[0] = ((c >> 18) | UTF8_cval4);
01155     buf[1] = (((c >> 12) & 0x3f) | 0x80);
01156     buf[2] = (((c >> 6) & 0x3f) | 0x80);
01157     buf[3] = ((c & 0x3f) | 0x80);
01158     return 4;
01159   }
01160   return 0;
01161 }



Last updated at Tue Dec 18 21:07:42 PST 2007. This site and project hosted by...SourceForge.net Logo

Source Perspective by Fisheye