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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? nxml.c

?? libnxml-no-curl-簡化版2007-07-01,一個(gè)別很不錯(cuò)的XML生成和解析程序。
?? C
?? 第 1 頁 / 共 4 頁
字號:
  {    if (doctype->system_literal)    {      free (doctype->system_literal);      doctype->system_literal = NULL;    }    if (doctype->pubid_literal)    {      free (doctype->pubid_literal);      doctype->pubid_literal = NULL;    }    doctype = doctype->next;  }  return NXML_OK;}//---------------------------------nxml_error_tnxml_free (nxml_t * data){  if (!data)    return NXML_ERR_DATA;  nxml_empty (data);  free (data);  return NXML_OK;}//---------------------------------nxml_error_tnxml_empty (nxml_t * data){  nxml_data_t *t, *old;  __nxml_private_t priv;  if (!data)    return NXML_ERR_DATA;  if (data->file)    free (data->file);  if (data->encoding)    free (data->encoding);  /* I must free the doctype, I must not empty only! */  if (data->doctype)    nxml_free_doctype (data->doctype);  t = data->data;  while (t)  {    old = t;    t = t->next;    nxml_free_data (old);  }  memcpy (&priv, &data->priv, sizeof (__nxml_private_t));  memset (data, 0, sizeof (nxml_t));  memcpy (&data->priv, &priv, sizeof (__nxml_private_t));  return NXML_OK;}
//************************************************************
// TOOLS FUNTION
//************************************************************
int__nxml_escape_spaces (nxml_t * doc, char **buffer, size_t * size){  /*   * Rule [3] - S ::= (#x20 | #x9 | #xD | #xA)+  */  int k = 0;  if (!*size)    return 0;  while ((**buffer == 0x20 || **buffer == 0x9 || **buffer == 0xd    || **buffer == 0xa) && *size)  {    if (**buffer == 0xa && doc->priv.func)      doc->priv.line++;    (*buffer)++;    (*size)--;    k++;  }  return k;}//---------------------------------char *__nxml_get_value (nxml_t * doc, char **buffer, size_t * size){  char *attr;  int i;  int quot;  if (!*size)    return NULL;  if (**buffer == '"')    quot = 1;  else if (**buffer == '\'')    quot = 0;  else    return NULL;  (*buffer)++;  (*size)--;  i = 0;  while (((quot && *(*buffer + i) != '"')    || (!quot && *(*buffer + i) != '\'')))  {    if (*(*buffer + i) == '\n' && doc->priv.func)      doc->priv.line++;    i++;  }  if (quot && *(*buffer + i) != '"')    return NULL;  else if (!quot && *(*buffer + i) != '\'')    return NULL;  if (!(attr = (char *) malloc (sizeof (char) * (i + 1))))    return NULL;  memcpy (attr, *buffer, i);  attr[i] = 0;  i++;  (*buffer) += i;  (*size) -= i;  return attr;}//---------------------------------char *__nxml_trim (char *tmp){  /* Trim function: */  int i = 0;  while (tmp[i] == 0x20 || tmp[i] == 0x9 || tmp[i] == 0xd || tmp[i] == 0xa)    tmp++;  i = strlen (tmp);  i--;  while (tmp[i] == 0x20 || tmp[i] == 0x9 || tmp[i] == 0xd || tmp[i] == 0xa)    i--;  tmp[i + 1] = 0;  return strdup (tmp);}

//---------------------------------
//************************************************************
// UTF FUNTION
//************************************************************
/** UTF-8* 7bits:	0xxxxxxx* 11bits:	110xxxxx 10xxxxxx* 16bits:	1110xxxx 10xxxxxx 10xxxxxx* 21bits:	11110xxx 10xxxxxx 10xxxxxx 10xxxxxx* 26bits:	111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx* 31bits:	1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx*/int64_t__nxml_utf8 (unsigned char **buffer, size_t * size, int *byte){  int64_t ret;  unsigned char c0 = **buffer, c1, c2, c3, c4;  if (c0 < 0x80 || *size < 2)  {    *byte = 1;    ret = (int64_t) c0;    return ret;  }  c1 = *(*buffer + 1);  if ((c0 & 0xe0) == 0xc0 || *size < 3)  {    *byte = 2;    ret = (((c0 & 0x1f) << 6) | (c1 & 0x3f));    return ret;  }  c2 = *(*buffer + 2);  if ((c0 & 0xf0) == 0xe0 || *size < 4)  {    *byte = 3;    ret = (((c0 & 0x0f) << 12) | ((c1 & 0x3f) << 6) | (c2 & 0x3f));    return ret;  }  c3 = *(*buffer + 3);  if ((c0 & 0xf8) == 0xf0 || *size < 5)  {    *byte = 4;    ret =      (((c0 & 0x7) << 18) | ((c1 & 0x3f) << 12) | ((c2 & 0x3f) << 6) |      (c3 & 0x3f));    return ret;  }  c4 = *(*buffer + 4);  if ((c0 & 0xfc) == 0xf8)  {    *byte = 5;    ret =      (((c0 & 0x3) << 24) | ((c1 & 0x3f) << 18) | ((c2 & 0x3f) << 12) |      ((c3 & 0x3f) << 6) | (c4 & 0x3f));    return ret;  }  *byte = 1;  ret = (int64_t) c0;  return ret;}//---------------------------------#define __NXML_XTO8( x , b ) \  if(byte>=1023-b) { \  if(!(ret=realloc(ret, (j+b)*sizeof(char)))) return -1; \  byte=0; \  } \  memcpy(&ret[j], x, b); \  j+=b; \  byte+=b;//---------------------------------static size_t__nxml_utf16to8 (int le, unsigned char *buffer, size_t size,                 unsigned char **ret_buffer){  int64_t ch;  int j = 0;  int byte = 0;  unsigned char *ret;  if (!(ret = (unsigned char *) malloc (sizeof (unsigned char) * 1024)))    return -1;  while (size > 0)  {    if (le)    {      if ((*buffer & 0xfc) == 0xd8 && (*(buffer + 2) & 0xfc) == 0xdc)      {        ch = ((*buffer & 0x03) << 18) + (*(buffer + 1) << 10) +          ((*(buffer + 2) & 0x03) << 8) + *(buffer + 3);        buffer += 4;        size -= 4;      }      else      {        ch = (*buffer << 8) + *(buffer + 1);        buffer += 2;        size -= 2;      }    }    else if ((*(buffer + 1) & 0xfc) == 0xd8      && (*(buffer + 3) & 0xfc) == 0xdc)    {      ch = ((*(buffer + 1) & 0x03) << 18) + (*buffer << 10) +        ((*(buffer + 3) & 0x03) << 8) + *(buffer + 2);      buffer += 4;      size -= 4;    }    else    {      ch = (*(buffer + 1) << 8) + *buffer;      buffer += 2;      size -= 2;    }    /* 8bit:  1000000 */    if (ch < 0x80)    {      __NXML_XTO8 ((void *) &ch, 1);    }    /* 11bit:  xx100000 xx000000    *         1000 0000 0000     *      0x 8    0    0    */    else if (ch < 0x800)    {      /* 11bits:    110xxxxx 10xxxxxx */      char a[2];      a[0] = (ch >> 6) | 0xc0;      a[1] = (ch & 0x2f) | 0x80;      __NXML_XTO8 ((void *) a, 2);    }    /* 16bit:  xxx10000 xx000000 xx000000    *         1 0000 0000 0000 0000    *      0x 1    0    0    0    0    */    else if (ch < 0x10000)    {      /* 16bits:  1110xxxx 10xxxxxx 10xxxxxx */      char a[3];      a[0] = (ch >> 12) | 0xe0;      a[1] = ((ch >> 6) & 0x2f) | 0x80;      a[2] = (ch & 0x2f) | 0x80;      __NXML_XTO8 ((void *) a, 3);    }    /* 21bit:  xxxx1000 xx000000 xx000000 xx000000    *         10 0000 0000 0000 0000 0000    *      0x 2  0    0    0    0    0    */    else if (ch < 0x200000)    {      /* 21bits:  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */      char a[4];      a[0] = (ch >> 18) | 0xf0;      a[1] = ((ch >> 12) & 0x2f);      a[2] = ((ch >> 6) & 0x2f);      a[3] = (ch & 0x2f);      __NXML_XTO8 ((void *) a, 4);    }    /* 26bit:  xxxxx100 xx000000 xx000000 xx000000 xx000000    *         100 0000 0000 0000 0000 0000 0000    *      0x 4   0    0    0    0    0    0    */    else if (ch < 0x4000000)    {      /* 21bits:  111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */      char a[5];      a[0] = (ch >> 24) | 0xf8;      a[1] = ((ch >> 18) & 0x2f);      a[2] = ((ch >> 12) & 0x2f);      a[3] = ((ch >> 6) & 0x2f);      a[4] = (ch & 0x2f);      __NXML_XTO8 ((void *) a, 5);    }  }  ret[j] = 0;  (*ret_buffer) = ret;  return (size_t) j;}//---------------------------------static size_t__nxml_ucs4to8 (int type, unsigned char *buffer, size_t size,                unsigned char **ret_buffer){  int64_t ch;  int j = 0;  int byte = 0;  unsigned char *ret;  if (!(ret = (unsigned char *) malloc (sizeof (unsigned char) * 1024)))    return -1;  while (size > 0)  {    switch (type)    {    case 0:		/* 1234 */      ch =        (*buffer << 18) + (*(buffer + 1) << 12) + (*(buffer + 2) << 6) +        (*(buffer + 3));      break;    case 1:		/* 4321 */      ch =        (*buffer) + (*(buffer + 1) << 6) + (*(buffer + 2) << 12) +        (*(buffer + 3) << 18);      break;    case 2:		/* 2143 */      ch =        ((*buffer) << 12) + (*(buffer + 1) << 18) + (*(buffer + 2)) +        (*(buffer + 3) << 6);      break;    case 3:		/* 3412 */      ch =        ((*buffer) << 6) + (*(buffer + 1)) + (*(buffer + 2) << 18) +        (*(buffer + 3) << 12);      break;    }    buffer += 4;    size -= 4;    /* 8bit:  1000000 */    if (ch < 0x80)    {      __NXML_XTO8 ((void *) &ch, 1);    }    /* 11bit:  xx100000 xx000000    *         1000 0000 0000     *      0x 8    0    0    */    else if (ch < 0x800)    {      /* 11bits:    110xxxxx 10xxxxxx */      char a[2];      a[0] = (ch >> 6) | 0xc0;      a[1] = (ch & 0x2f) | 0x80;      __NXML_XTO8 ((void *) a, 2);    }    /* 16bit:  xxx10000 xx000000 xx000000    *         1 0000 0000 0000 0000    *      0x 1    0    0    0    0    */    else if (ch < 0x10000)    {      /* 16bits:  1110xxxx 10xxxxxx 10xxxxxx */      char a[3];      a[0] = (ch >> 12) | 0xe0;      a[1] = ((ch >> 6) & 0x2f) | 0x80;      a[2] = (ch & 0x2f) | 0x80;      __NXML_XTO8 ((void *) a, 3);    }    /* 21bit:  xxxx1000 xx000000 xx000000 xx000000    *         10 0000 0000 0000 0000 0000    *      0x 2  0    0    0    0    0    */    else if (ch < 0x200000)    {      /* 21bits:  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */      char a[4];      a[0] = (ch >> 18) | 0xf0;      a[1] = ((ch >> 12) & 0x2f);      a[2] = ((ch >> 6) & 0x2f);      a[3] = (ch & 0x2f);      __NXML_XTO8 ((void *) a, 4);    }    /* 26bit:  xxxxx100 xx000000 xx000000 xx000000 xx000000    *         100 0000 0000 0000 0000 0000 0000    *      0x 4   0    0    0    0    0    0    */    else if (ch < 0x4000000)    {      /* 21bits:  111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx */      char a[5];      a[0] = (ch >> 24) | 0xf8;      a[1] = ((ch >> 18) & 0x2f);      a[2] = ((ch >> 12) & 0x2f);      a[3] = ((ch >> 6) & 0x2f);      a[4] = (ch & 0x2f);      __NXML_XTO8 ((void *) a, 5);    }  }  ret[j] = 0;  (*ret_buffer) = ret;  return (size_t) j;}//---------------------------------int__nxml_utf_detection (char *r_buffer, size_t r_size, char **buffer,                      size_t * size, nxml_charset_t * charset){  /* Utf-8: 0x3c 0x3f 0x78 0x6d */  if (strncmp (r_buffer, "<?xml", 5))  {    *charset = NXML_CHARSET_UTF8;    return 0;  }  /* Utf-16LE: 0x00 0x3c 0x00 0x3f */  if (*r_buffer == 0x00 && *(r_buffer + 1) == 0x3c && *(r_buffer + 2) == 0x00    && *(r_buffer + 3) == 0x3f)  {    (*size) =      __nxml_utf16to8 (1, (unsigned char *) r_buffer, r_size,      (unsigned char **) buffer);    if (*size < 0)      return -1;    *charset = NXML_CHARSET_UTF16LE;    return 1;  }  /* Utf-16BE: 0x3c 0x00 0x3f 0x00 */  if (*r_buffer == 0x3c && *(r_buffer + 1) == 0x00 && *(r_buffer + 2) == 0x3f    && *(r_buffer + 3) == 0x00)  {    (*size) =      __nxml_utf16to8 (0, (unsigned char *) r_buffer, r_size,      (unsigned char **) buffer);    if (*size < 0)      return -1;    *charset = NXML_CHARSET_UTF16BE;    return 1;  }  /* UCS-4 (1234): 0x00 0x00 0x00 0x3c */  if (*r_buffer == 0x00 && *(r_buffer + 1) == 0x00 && *(r_buffer + 2) == 0x00    && *(r_buffer + 3) == 0x3c)  {    (*size) =      __nxml_ucs4to8 (0, (unsigned char *) r_buffer, r_size,      (unsigned char **) buffer);    if (*size < 0)      return -1;    *charset = NXML_CHARSET_UCS4_1234;    return 1;  }  /* UCS-4 (4321): 0x3c 0x00 0x00 0x00 */  if (*r_buffer == 0x3c && *(r_buffer + 1) == 0x00 && *(r_buffer + 2) == 0x00    && *(r_buffer + 3) == 0x00)  {    (*size) =      __nxml_ucs4to8 (1, (unsigned char *) r_buffer, r_size,      (unsigned char **) buffer);    if (*size < 0)      return -1;    *charset = NXML_CHARSET_UCS4_4321;    return 1;  }  /* UCS-4 (2143): 0x00 0x00 0x3c 0x00 */  if (*r_buffer == 0x00 && *(r_buffer + 1) == 0x00 && *(r_buffer + 2) == 0x3c    && *(r_buffer + 3) == 0x00)  {    (*size) =      __nxml_ucs4to8 (2, (unsigned char *) r_buffer, r_size,      (unsigned char **) buffer);    if (*size < 0)      return -1;    *charset = NXML_CHARSET_UCS4_2143;    return 1;  }  /* UCS-4 (3412): 0x00 0x3c 0x00 0x00 */  if (*r_buffer == 0x00 && *(r_buffer + 1) == 0x3c && *(r_buffer + 2) == 0x00    && *(r_buffer + 3) == 0x00)  {    (*size) =      __nxml_ucs4to8 (3, (unsigned char *) r_buffer, r_size,      (unsigned char **) buffer);    if (*size < 0)      return -1;    *charset = NXML_CHARSET_UCS4_3412;    return 1;  }  *charset = NXML_CHARSET_UNKNOWN;  return 0;}//---------------------------------int64_t__nxml_int_charset (int ch, unsigned char *str, char *charset){  if (!charset || strcasecmp (charset, "utf-8"))  {    str[0] = ch;    return 1;  }  /* 8bit:  1000000 */  if (ch < 0x80)  {    str[0] = ch;    return 1;  }  /* 11bit:  xx100000 xx000000  *         1000 0000 0000   *      0x 8    0    0  */  else if (ch < 0x800)  {    /* 11bits:    110xxxxx 10xxxxxx */    str[0] = (ch >> 6) | 0xc0;    str[1] = (ch & 0x2f) | 0x80;    return 2;  }  /* 16bit:  xxx10000 xx000000 xx000000  *         1 0000 0000 0000 0000  *      0x 1    0    0    0    0  */  else if (ch < 0x10000)  {    /* 16bits:  1110xxxx 10xxxxxx 10xxxxxx */    str[0] = (ch >> 12) | 0xe0;    str[1] = ((ch >> 6) & 0x2f) | 0x80;    str[2] = (ch & 0x2f) | 0x80;    return 3;  }  /* 21bit:  xxxx1000 xx000000 xx000000 xx000000  *         10 0000 0000 0000 0000 0000  *      0x 2  0    0    0    0    0  */  else if (ch < 0x200000)  {    /* 21bits:  11110xxx 10xxxxxx 10xxxxxx 10xxxxxx */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
婷婷中文字幕综合| 国产福利91精品一区二区三区| 精品91自产拍在线观看一区| 91捆绑美女网站| 国产午夜精品理论片a级大结局| 久久黄色级2电影| 日韩小视频在线观看专区| 日本视频一区二区三区| 3atv一区二区三区| 美女视频一区二区| 精品国产91乱码一区二区三区| 免费成人在线观看视频| 欧美成人性战久久| 国产在线视频一区二区| wwwwxxxxx欧美| 国产成人免费高清| 最新中文字幕一区二区三区 | 美美哒免费高清在线观看视频一区二区 | 国产亚洲欧美在线| 国产ts人妖一区二区| 国产精品高潮呻吟久久| 91蝌蚪porny九色| 亚洲午夜久久久| 91精品在线免费观看| 九九视频精品免费| 亚洲国产精品二十页| 91影院在线观看| 亚洲国产成人av好男人在线观看| 欧美精品vⅰdeose4hd| 久久av老司机精品网站导航| 久久在线观看免费| www.亚洲在线| 亚洲国产日韩a在线播放性色| 8x福利精品第一导航| 欧美顶级少妇做爰| 裸体歌舞表演一区二区| 国产欧美精品区一区二区三区 | 国产精品成人免费| 91福利资源站| 日产欧产美韩系列久久99| 精品国产第一区二区三区观看体验| 国产精品白丝jk黑袜喷水| 中文字幕一区二区三中文字幕| 91福利在线导航| 久色婷婷小香蕉久久| 国产欧美日韩不卡免费| 欧美偷拍一区二区| 久久成人免费电影| 国产精品福利一区| 欧美高清一级片在线| 国产精品99久久久久| 亚洲欧美aⅴ...| 日韩一区二区三区电影| 成人小视频免费在线观看| 亚洲午夜精品在线| 国产亚洲自拍一区| 欧美日韩在线三区| 国产黄色91视频| 性久久久久久久久久久久| 国产亚洲欧美日韩俺去了| 欧美性受xxxx| 亚洲欧洲精品一区二区三区 | 中文字幕二三区不卡| 欧美无砖专区一中文字| 国产激情视频一区二区三区欧美 | 国产精品一线二线三线| 国产精品成人免费在线| 555www色欧美视频| www.欧美.com| 久久精品国产亚洲aⅴ| 成人免费在线视频观看| 日韩欧美一区中文| 91首页免费视频| 黑人巨大精品欧美黑白配亚洲| 亚洲欧美自拍偷拍色图| 日韩三级视频在线观看| 91色porny| 国产成人自拍在线| 青青国产91久久久久久 | 亚洲人成在线播放网站岛国| 欧美一卡2卡三卡4卡5免费| 色综合天天综合色综合av| 激情综合网最新| 国产传媒欧美日韩成人| 午夜亚洲福利老司机| 亚洲欧美在线aaa| 久久综合五月天婷婷伊人| 欧美午夜视频网站| 99国产精品久| 国产精品18久久久久久久久| 日韩电影在线观看网站| 一区二区三区免费观看| 国产精品区一区二区三区| 精品国产区一区| 欧美一区二区网站| 亚洲成人综合网站| 图片区小说区区亚洲影院| 国产欧美精品一区| 日韩美女在线视频| 欧美视频在线播放| 一本大道久久a久久精二百| 国产成人在线免费观看| 精品在线免费视频| 日日摸夜夜添夜夜添精品视频| 一区二区三区四区在线播放| 最新国产の精品合集bt伙计| 国产欧美久久久精品影院| 日韩视频永久免费| 91精品国产品国语在线不卡| 欧美日韩在线播放一区| 91啦中文在线观看| 99精品久久久久久| 99久久99久久免费精品蜜臀| 粉嫩aⅴ一区二区三区四区五区| 激情六月婷婷久久| 久久99在线观看| 日本美女视频一区二区| 日韩高清欧美激情| 日韩av电影天堂| 视频一区国产视频| 日韩黄色免费电影| 天堂久久一区二区三区| 偷拍与自拍一区| 午夜影视日本亚洲欧洲精品| 午夜久久久影院| 午夜精品久久久久久久| 日韩电影免费一区| 麻豆精品国产传媒mv男同| 麻豆一区二区三区| 激情综合色综合久久综合| 国产麻豆视频一区二区| 欧美成人精品3d动漫h| 亚洲美女视频在线| 国产精品成人午夜| 1024亚洲合集| 一区二区视频在线看| 91在线视频官网| 97久久精品人人澡人人爽| 99国产精品一区| 91理论电影在线观看| 在线观看成人小视频| 欧美日韩在线综合| 欧美一区二区高清| 精品国产乱子伦一区| 国产亚洲欧美日韩日本| 亚洲欧洲精品天堂一级 | 国产日韩欧美精品综合| 中文字幕欧美激情一区| 中文字幕视频一区二区三区久| 亚洲精品日日夜夜| 香蕉久久夜色精品国产使用方法| 日韩成人午夜精品| 国产精品77777| 99精品视频在线免费观看| 91成人免费电影| 91精品国产入口| 久久久久久99精品| 亚洲欧美激情视频在线观看一区二区三区| 亚洲最大的成人av| 久久99久久精品| 丁香婷婷综合激情五月色| 日本高清不卡一区| 日韩一区二区精品| 国产精品三级电影| 亚洲成人av一区| 韩国三级在线一区| 91蜜桃视频在线| 欧美一区二区三区视频| 欧美一级精品大片| 91麻豆精品国产91久久久久久| 欧美tickle裸体挠脚心vk| 中文字幕欧美三区| 婷婷中文字幕一区三区| 国产精品影视天天线| 日本丶国产丶欧美色综合| 欧美一级片在线看| 中文字幕在线免费不卡| 日本视频中文字幕一区二区三区| 国产91精品一区二区| 在线观看欧美精品| 26uuu国产一区二区三区| 中文字幕一区免费在线观看| 日本成人在线网站| av中文字幕不卡| 欧美一区二区三区免费观看视频 | 激情国产一区二区| 99在线精品视频| 日韩亚洲欧美一区二区三区| 中文字幕日韩一区二区| 美国av一区二区| 91久久精品一区二区二区| 久久亚洲影视婷婷| 亚洲一区二区综合| 国产主播一区二区三区| 在线观看国产精品网站| 国产三级欧美三级| 日本欧美肥老太交大片| 一本色道综合亚洲| 久久免费看少妇高潮| 日韩综合小视频|