亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xmltok.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*The contents of this file are subject to the Mozilla Public LicenseVersion 1.1 (the "License"); you may not use this file except incompliance with the License. You may obtain a copy of the License athttp://www.mozilla.org/MPL/Software distributed under the License is distributed on an "AS IS"basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See theLicense for the specific language governing rights and limitationsunder the License.The Original Code is expat.The Initial Developer of the Original Code is James Clark.Portions created by James Clark are Copyright (C) 1998, 1999James Clark. All Rights Reserved.Contributor(s):Alternatively, the contents of this file may be used under the termsof the GNU General Public License (the "GPL"), in which case theprovisions of the GPL are applicable instead of those above.  If youwish to allow use of your version of this file only under the terms ofthe GPL and not to allow others to use your version of this file underthe MPL, indicate your decision by deleting the provisions above andreplace them with the notice and other provisions required by theGPL. If you do not delete the provisions above, a recipient may useyour version of this file under either the MPL or the GPL.*/#include "xmldef.h"#include "xmltok.h"#include "nametab.h"#ifdef XML_DTD#define IGNORE_SECTION_TOK_VTABLE , PREFIX(ignoreSectionTok)#else#define IGNORE_SECTION_TOK_VTABLE /* as nothing */#endif#define VTABLE1 \  { PREFIX(prologTok), PREFIX(contentTok), \    PREFIX(cdataSectionTok) IGNORE_SECTION_TOK_VTABLE }, \  { PREFIX(attributeValueTok), PREFIX(entityValueTok) }, \  PREFIX(sameName), \  PREFIX(nameMatchesAscii), \  PREFIX(nameLength), \  PREFIX(skipS), \  PREFIX(getAtts), \  PREFIX(charRefNumber), \  PREFIX(predefinedEntityName), \  PREFIX(updatePosition), \  PREFIX(isPublicId)#define VTABLE VTABLE1, PREFIX(toUtf8), PREFIX(toUtf16)#define UCS2_GET_NAMING(pages, hi, lo) \   (namingBitmap[(pages[hi] << 3) + ((lo) >> 5)] & (1 << ((lo) & 0x1F)))/* A 2 byte UTF-8 representation splits the characters 11 bitsbetween the bottom 5 and 6 bits of the bytes.We need 8 bits to index into pages, 3 bits to add to that index and5 bits to generate the mask. */#define UTF8_GET_NAMING2(pages, byte) \    (namingBitmap[((pages)[(((byte)[0]) >> 2) & 7] << 3) \                      + ((((byte)[0]) & 3) << 1) \                      + ((((byte)[1]) >> 5) & 1)] \         & (1 << (((byte)[1]) & 0x1F)))/* A 3 byte UTF-8 representation splits the characters 16 bitsbetween the bottom 4, 6 and 6 bits of the bytes.We need 8 bits to index into pages, 3 bits to add to that index and5 bits to generate the mask. */#define UTF8_GET_NAMING3(pages, byte) \  (namingBitmap[((pages)[((((byte)[0]) & 0xF) << 4) \                             + ((((byte)[1]) >> 2) & 0xF)] \		       << 3) \                      + ((((byte)[1]) & 3) << 1) \                      + ((((byte)[2]) >> 5) & 1)] \         & (1 << (((byte)[2]) & 0x1F)))#define UTF8_GET_NAMING(pages, p, n) \  ((n) == 2 \  ? UTF8_GET_NAMING2(pages, (const unsigned char *)(p)) \  : ((n) == 3 \     ? UTF8_GET_NAMING3(pages, (const unsigned char *)(p)) \     : 0))#define UTF8_INVALID3(p) \  ((*p) == 0xED \  ? (((p)[1] & 0x20) != 0) \  : ((*p) == 0xEF \     ? ((p)[1] == 0xBF && ((p)[2] == 0xBF || (p)[2] == 0xBE)) \     : 0))#define UTF8_INVALID4(p) ((*p) == 0xF4 && ((p)[1] & 0x30) != 0)staticint isNever(const ENCODING *enc, const char *p){  return 0;}staticint utf8_isName2(const ENCODING *enc, const char *p){  return UTF8_GET_NAMING2(namePages, (const unsigned char *)p);}staticint utf8_isName3(const ENCODING *enc, const char *p){  return UTF8_GET_NAMING3(namePages, (const unsigned char *)p);}#define utf8_isName4 isNeverstaticint utf8_isNmstrt2(const ENCODING *enc, const char *p){  return UTF8_GET_NAMING2(nmstrtPages, (const unsigned char *)p);}staticint utf8_isNmstrt3(const ENCODING *enc, const char *p){  return UTF8_GET_NAMING3(nmstrtPages, (const unsigned char *)p);}#define utf8_isNmstrt4 isNever#define utf8_isInvalid2 isNeverstaticint utf8_isInvalid3(const ENCODING *enc, const char *p){  return UTF8_INVALID3((const unsigned char *)p);}staticint utf8_isInvalid4(const ENCODING *enc, const char *p){  return UTF8_INVALID4((const unsigned char *)p);}struct normal_encoding {  ENCODING enc;  unsigned char type[256];#ifdef XML_MIN_SIZE  int (*byteType)(const ENCODING *, const char *);  int (*isNameMin)(const ENCODING *, const char *);  int (*isNmstrtMin)(const ENCODING *, const char *);  int (*byteToAscii)(const ENCODING *, const char *);  int (*charMatches)(const ENCODING *, const char *, int);#endif /* XML_MIN_SIZE */  int (*isName2)(const ENCODING *, const char *);  int (*isName3)(const ENCODING *, const char *);  int (*isName4)(const ENCODING *, const char *);  int (*isNmstrt2)(const ENCODING *, const char *);  int (*isNmstrt3)(const ENCODING *, const char *);  int (*isNmstrt4)(const ENCODING *, const char *);  int (*isInvalid2)(const ENCODING *, const char *);  int (*isInvalid3)(const ENCODING *, const char *);  int (*isInvalid4)(const ENCODING *, const char *);};#ifdef XML_MIN_SIZE#define STANDARD_VTABLE(E) \ E ## byteType, \ E ## isNameMin, \ E ## isNmstrtMin, \ E ## byteToAscii, \ E ## charMatches,#else#define STANDARD_VTABLE(E) /* as nothing */#endif#define NORMAL_VTABLE(E) \ E ## isName2, \ E ## isName3, \ E ## isName4, \ E ## isNmstrt2, \ E ## isNmstrt3, \ E ## isNmstrt4, \ E ## isInvalid2, \ E ## isInvalid3, \ E ## isInvalid4static int checkCharRefNumber(int);#include "xmltok_impl.h"#include "ascii.h"#ifdef XML_MIN_SIZE#define sb_isNameMin isNever#define sb_isNmstrtMin isNever#endif#ifdef XML_MIN_SIZE#define MINBPC(enc) ((enc)->minBytesPerChar)#else/* minimum bytes per character */#define MINBPC(enc) 1#endif#define SB_BYTE_TYPE(enc, p) \  (((struct normal_encoding *)(enc))->type[(unsigned char)*(p)])#ifdef XML_MIN_SIZEstaticint sb_byteType(const ENCODING *enc, const char *p){  return SB_BYTE_TYPE(enc, p);}#define BYTE_TYPE(enc, p) \ (((const struct normal_encoding *)(enc))->byteType(enc, p))#else#define BYTE_TYPE(enc, p) SB_BYTE_TYPE(enc, p)#endif#ifdef XML_MIN_SIZE#define BYTE_TO_ASCII(enc, p) \ (((const struct normal_encoding *)(enc))->byteToAscii(enc, p))staticint sb_byteToAscii(const ENCODING *enc, const char *p){  return *p;}#else#define BYTE_TO_ASCII(enc, p) (*(p))#endif#define IS_NAME_CHAR(enc, p, n) \ (((const struct normal_encoding *)(enc))->isName ## n(enc, p))#define IS_NMSTRT_CHAR(enc, p, n) \ (((const struct normal_encoding *)(enc))->isNmstrt ## n(enc, p))#define IS_INVALID_CHAR(enc, p, n) \ (((const struct normal_encoding *)(enc))->isInvalid ## n(enc, p))#ifdef XML_MIN_SIZE#define IS_NAME_CHAR_MINBPC(enc, p) \ (((const struct normal_encoding *)(enc))->isNameMin(enc, p))#define IS_NMSTRT_CHAR_MINBPC(enc, p) \ (((const struct normal_encoding *)(enc))->isNmstrtMin(enc, p))#else#define IS_NAME_CHAR_MINBPC(enc, p) (0)#define IS_NMSTRT_CHAR_MINBPC(enc, p) (0)#endif#ifdef XML_MIN_SIZE#define CHAR_MATCHES(enc, p, c) \ (((const struct normal_encoding *)(enc))->charMatches(enc, p, c))staticint sb_charMatches(const ENCODING *enc, const char *p, int c){  return *p == c;}#else/* c is an ASCII character */#define CHAR_MATCHES(enc, p, c) (*(p) == c)#endif#define PREFIX(ident) normal_ ## ident#include "xmltok_impl.c"#undef MINBPC#undef BYTE_TYPE#undef BYTE_TO_ASCII#undef CHAR_MATCHES#undef IS_NAME_CHAR#undef IS_NAME_CHAR_MINBPC#undef IS_NMSTRT_CHAR#undef IS_NMSTRT_CHAR_MINBPC#undef IS_INVALID_CHARenum {  /* UTF8_cvalN is value of masked first byte of N byte sequence */  UTF8_cval1 = 0x00,  UTF8_cval2 = 0xc0,  UTF8_cval3 = 0xe0,  UTF8_cval4 = 0xf0};staticvoid utf8_toUtf8(const ENCODING *enc,		 const char **fromP, const char *fromLim,		 char **toP, const char *toLim){  char *to;  const char *from;  if (fromLim - *fromP > toLim - *toP) {    /* Avoid copying partial characters. */    for (fromLim = *fromP + (toLim - *toP); fromLim > *fromP; fromLim--)      if (((unsigned char)fromLim[-1] & 0xc0) != 0x80)	break;  }  for (to = *toP, from = *fromP; from != fromLim; from++, to++)    *to = *from;  *fromP = from;  *toP = to;}staticvoid utf8_toUtf16(const ENCODING *enc,		  const char **fromP, const char *fromLim,		  unsigned short **toP, const unsigned short *toLim){  unsigned short *to = *toP;  const char *from = *fromP;  while (from != fromLim && to != toLim) {    switch (((struct normal_encoding *)enc)->type[(unsigned char)*from]) {    case BT_LEAD2:      *to++ = ((from[0] & 0x1f) << 6) | (from[1] & 0x3f);      from += 2;      break;    case BT_LEAD3:      *to++ = ((from[0] & 0xf) << 12) | ((from[1] & 0x3f) << 6) | (from[2] & 0x3f);      from += 3;      break;    case BT_LEAD4:      {	unsigned long n;	if (to + 1 == toLim)	  break;	n = ((from[0] & 0x7) << 18) | ((from[1] & 0x3f) << 12) | ((from[2] & 0x3f) << 6) | (from[3] & 0x3f);	n -= 0x10000;	to[0] = (unsigned short)((n >> 10) | 0xD800);	to[1] = (unsigned short)((n & 0x3FF) | 0xDC00);	to += 2;	from += 4;      }      break;    default:      *to++ = *from++;      break;    }  }  *fromP = from;  *toP = to;}#ifdef XML_NSstatic const struct normal_encoding utf8_encoding_ns = {  { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 },  {#include "asciitab.h"#include "utf8tab.h"  },  STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)};#endifstatic const struct normal_encoding utf8_encoding = {  { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 },  {#define BT_COLON BT_NMSTRT#include "asciitab.h"#undef BT_COLON#include "utf8tab.h"  },  STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)};#ifdef XML_NSstatic const struct normal_encoding internal_utf8_encoding_ns = {  { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 },  {#include "iasciitab.h"#include "utf8tab.h"  },  STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)};#endifstatic const struct normal_encoding internal_utf8_encoding = {  { VTABLE1, utf8_toUtf8, utf8_toUtf16, 1, 1, 0 },  {#define BT_COLON BT_NMSTRT#include "iasciitab.h"#undef BT_COLON#include "utf8tab.h"  },  STANDARD_VTABLE(sb_) NORMAL_VTABLE(utf8_)};staticvoid latin1_toUtf8(const ENCODING *enc,		   const char **fromP, const char *fromLim,		   char **toP, const char *toLim){  for (;;) {    unsigned char c;    if (*fromP == fromLim)      break;    c = (unsigned char)**fromP;    if (c & 0x80) {      if (toLim - *toP < 2)	break;      *(*toP)++ = ((c >> 6) | UTF8_cval2);      *(*toP)++ = ((c & 0x3f) | 0x80);      (*fromP)++;    }    else {      if (*toP == toLim)	break;      *(*toP)++ = *(*fromP)++;    }  }}staticvoid latin1_toUtf16(const ENCODING *enc,		    const char **fromP, const char *fromLim,		    unsigned short **toP, const unsigned short *toLim){  while (*fromP != fromLim && *toP != toLim)    *(*toP)++ = (unsigned char)*(*fromP)++;}#ifdef XML_NSstatic const struct normal_encoding latin1_encoding_ns = {  { VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0 },  {#include "asciitab.h"#include "latin1tab.h"  },  STANDARD_VTABLE(sb_)};#endifstatic const struct normal_encoding latin1_encoding = {  { VTABLE1, latin1_toUtf8, latin1_toUtf16, 1, 0, 0 },  {#define BT_COLON BT_NMSTRT#include "asciitab.h"#undef BT_COLON#include "latin1tab.h"  },  STANDARD_VTABLE(sb_)};staticvoid ascii_toUtf8(const ENCODING *enc,		  const char **fromP, const char *fromLim,		  char **toP, const char *toLim){  while (*fromP != fromLim && *toP != toLim)    *(*toP)++ = *(*fromP)++;}#ifdef XML_NSstatic const struct normal_encoding ascii_encoding_ns = {  { VTABLE1, ascii_toUtf8, latin1_toUtf16, 1, 1, 0 },  {#include "asciitab.h"/* BT_NONXML == 0 */  },  STANDARD_VTABLE(sb_)};#endifstatic const struct normal_encoding ascii_encoding = {  { VTABLE1, ascii_toUtf8, latin1_toUtf16, 1, 1, 0 },  {#define BT_COLON BT_NMSTRT#include "asciitab.h"#undef BT_COLON/* BT_NONXML == 0 */  },  STANDARD_VTABLE(sb_)};static int unicode_byte_type(char hi, char lo){  switch ((unsigned char)hi) {  case 0xD8: case 0xD9: case 0xDA: case 0xDB:    return BT_LEAD4;  case 0xDC: case 0xDD: case 0xDE: case 0xDF:    return BT_TRAIL;  case 0xFF:    switch ((unsigned char)lo) {    case 0xFF:    case 0xFE:      return BT_NONXML;    }    break;  }  return BT_NONASCII;}#define DEFINE_UTF16_TO_UTF8(E) \static \void E ## toUtf8(const ENCODING *enc, \		 const char **fromP, const char *fromLim, \		 char **toP, const char *toLim) \{ \  const char *from; \  for (from = *fromP; from != fromLim; from += 2) { \    int plane; \    unsigned char lo2; \    unsigned char lo = GET_LO(from); \    unsigned char hi = GET_HI(from); \    switch (hi) { \    case 0: \      if (lo < 0x80) { \        if (*toP == toLim) { \          *fromP = from; \	  return; \        } \        *(*toP)++ = lo; \        break; \      } \      /* fall through */ \    case 0x1: case 0x2: case 0x3: \    case 0x4: case 0x5: case 0x6: case 0x7: \      if (toLim -  *toP < 2) { \        *fromP = from; \	return; \      } \

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美一区视频| 日韩欧美在线1卡| 国产精品色哟哟网站| 成人激情综合网站| 午夜精品视频一区| 亚洲va国产天堂va久久en| 欧美写真视频网站| 蜜臀av一区二区| 久久久久久久久久久99999| 国产精品一二三四区| 亚洲人成在线播放网站岛国| 在线精品视频一区二区| 亚洲欧美色图小说| 欧美婷婷六月丁香综合色| 三级欧美韩日大片在线看| 精品国产成人系列| av在线不卡免费看| 国产精品99久| 26uuuu精品一区二区| 日韩精品亚洲专区| 欧美日韩成人在线| 夜夜嗨av一区二区三区| 成人理论电影网| 久久久久久久久久看片| 国产一区二区精品久久| 精品国产sm最大网站| 久久99久久久欧美国产| 欧美一区二区视频在线观看2020 | 欧美午夜影院一区| 亚洲四区在线观看| 99久久婷婷国产| 综合色中文字幕| 色国产综合视频| 亚洲欧美另类久久久精品 | 日本精品一区二区三区高清 | 91精品国产高清一区二区三区蜜臀| 一区二区三区日韩精品视频| 色久综合一二码| 亚洲一区二区美女| 欧美日韩精品免费观看视频| 日韩成人免费在线| 日韩精品影音先锋| 国产激情偷乱视频一区二区三区| 欧美高清在线一区| 99精品视频在线观看| 亚洲一区二区三区中文字幕| 欧美日韩免费高清一区色橹橹| 天天免费综合色| 欧美成人激情免费网| 国产精品1区二区.| 国产精品久久久一本精品 | 国产成人亚洲精品狼色在线| 国产精品久久久久一区二区三区共| 成人av电影在线播放| 亚洲视频电影在线| 4438成人网| 国产精品自拍在线| 亚洲日本在线a| 欧美丰满一区二区免费视频| 国产一区欧美一区| 亚洲天堂久久久久久久| 欧美一区二区美女| 国产尤物一区二区| 亚洲色图丝袜美腿| 日韩一级视频免费观看在线| 欧美日本国产一区| 久久99热99| 一区二区视频在线| 欧美一区二区视频免费观看| www.在线成人| 欧美bbbbb| 亚洲激情自拍偷拍| 日韩欧美www| 色综合久久中文字幕| 韩国女主播成人在线观看| 中文字幕中文字幕一区二区| 欧美一级高清片在线观看| 成人黄色一级视频| 日本特黄久久久高潮| 日韩伦理免费电影| 国产亚洲欧美中文| 日韩午夜激情av| 色菇凉天天综合网| 国产福利一区在线观看| 亚洲成av人片在www色猫咪| 久久只精品国产| 制服丝袜日韩国产| 91黄色免费观看| 成人av影院在线| 久久成人精品无人区| 亚洲在线观看免费| 久久精品人人做人人爽人人| 91精品欧美综合在线观看最新| 色天天综合久久久久综合片| 粉嫩aⅴ一区二区三区四区五区| 日本午夜精品视频在线观看| 亚洲三级小视频| 国产女人aaa级久久久级| 日韩手机在线导航| 欧美精品久久一区二区三区 | 国产激情一区二区三区桃花岛亚洲| 婷婷成人激情在线网| 亚洲自拍与偷拍| 日韩理论电影院| 国产精品久久久久影院色老大 | av亚洲精华国产精华精| 国产高清精品网站| 国产剧情av麻豆香蕉精品| 激情五月激情综合网| 精品制服美女久久| 久久av中文字幕片| 国内国产精品久久| 国产精品一级二级三级| 国产.欧美.日韩| 国产精品99久久久久久久女警 | 欧美日韩一区二区三区在线| 日本韩国一区二区三区视频| 色综合中文字幕国产 | 精品入口麻豆88视频| 91超碰这里只有精品国产| 欧美日韩亚洲综合一区二区三区| 欧美午夜电影一区| 成人免费一区二区三区在线观看| 国产欧美精品一区aⅴ影院 | 美女久久久精品| 久88久久88久久久| 国产在线观看一区二区| 国产精品一区二区x88av| 丁香亚洲综合激情啪啪综合| av在线免费不卡| 欧美日韩大陆在线| 欧美不卡在线视频| 中文字幕久久午夜不卡| 亚洲视频一区二区在线观看| 亚洲成av人影院| 国产在线精品一区二区| 顶级嫩模精品视频在线看| 在线观看日韩av先锋影音电影院| 欧美日韩小视频| 久久综合九色综合久久久精品综合| www国产精品av| 亚洲欧美一区二区三区孕妇| 日韩精品久久理论片| 国精产品一区一区三区mba视频| 成人国产精品免费观看动漫| 91国产免费观看| 精品国产91亚洲一区二区三区婷婷| 国产精品久久久久久妇女6080| 午夜精品久久久久久久久久| 精一区二区三区| 欧洲色大大久久| 久久久综合视频| 一区二区在线看| 高清不卡一区二区在线| 欧美日韩中字一区| 欧美激情一区二区| 丝袜诱惑制服诱惑色一区在线观看| 激情小说欧美图片| 欧美日韩国产a| 亚洲人成网站影音先锋播放| 免费观看30秒视频久久| 色综合婷婷久久| 久久综合狠狠综合久久激情| 亚洲综合视频网| 成人午夜电影网站| 日韩一区二区三区免费看| 精品一区二区三区视频在线观看| 色综合色综合色综合色综合色综合| 日韩片之四级片| 亚洲资源中文字幕| 99在线精品视频| 国产香蕉久久精品综合网| 亚洲成av人片观看| 91蝌蚪porny| 欧美国产精品劲爆| 国产一区二区三区在线看麻豆| 欧美三级韩国三级日本一级| 亚洲欧美日韩系列| 国产91对白在线观看九色| 久久婷婷国产综合精品青草| 日本一道高清亚洲日美韩| 色欧美88888久久久久久影院| 中文文精品字幕一区二区| 麻豆91精品视频| 欧美一区二区人人喊爽| 天堂在线亚洲视频| 欧美在线制服丝袜| 夜夜操天天操亚洲| 色综合天天综合网天天看片| 亚洲国产成人一区二区三区| 久久99精品久久久久久动态图| 在线播放中文一区| 亚洲18色成人| 在线播放/欧美激情| 天涯成人国产亚洲精品一区av| 欧美日韩国产综合一区二区三区| 亚洲综合男人的天堂| 欧美唯美清纯偷拍| 午夜精品在线看| 91精品久久久久久蜜臀|