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

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

?? uri.c

?? xml開源解析代碼.版本為libxml2-2.6.29,可支持GB3212.網絡消息發送XML時很有用.
?? C
?? 第 1 頁 / 共 5 頁
字號:
        ret = xmlStrcat(ret, BAD_CAST ":");        xmlFree(segment);    }    if (uri->authority) {        segment =            xmlURIEscapeStr(BAD_CAST uri->authority, BAD_CAST "/?;:@");        NULLCHK(segment)        ret = xmlStrcat(ret, BAD_CAST "//");        ret = xmlStrcat(ret, segment);        xmlFree(segment);    }    if (uri->user) {        segment = xmlURIEscapeStr(BAD_CAST uri->user, BAD_CAST ";:&=+$,");        NULLCHK(segment)		ret = xmlStrcat(ret,BAD_CAST "//");	        ret = xmlStrcat(ret, segment);        ret = xmlStrcat(ret, BAD_CAST "@");        xmlFree(segment);    }    if (uri->server) {        segment = xmlURIEscapeStr(BAD_CAST uri->server, BAD_CAST "/?;:@");        NULLCHK(segment)		if (uri->user == NULL)       		ret = xmlStrcat(ret, BAD_CAST "//");        ret = xmlStrcat(ret, segment);        xmlFree(segment);    }    if (uri->port) {        xmlChar port[10];        snprintf((char *) port, 10, "%d", uri->port);        ret = xmlStrcat(ret, BAD_CAST ":");        ret = xmlStrcat(ret, port);    }    if (uri->path) {        segment =            xmlURIEscapeStr(BAD_CAST uri->path, BAD_CAST ":@&=+$,/?;");        NULLCHK(segment)        ret = xmlStrcat(ret, segment);        xmlFree(segment);    }    if (uri->query_raw) {        ret = xmlStrcat(ret, BAD_CAST "?");        ret = xmlStrcat(ret, BAD_CAST uri->query_raw);    }    else if (uri->query) {        segment =            xmlURIEscapeStr(BAD_CAST uri->query, BAD_CAST ";/?:@&=+,$");        NULLCHK(segment)        ret = xmlStrcat(ret, BAD_CAST "?");        ret = xmlStrcat(ret, segment);        xmlFree(segment);    }    if (uri->opaque) {        segment = xmlURIEscapeStr(BAD_CAST uri->opaque, BAD_CAST "");        NULLCHK(segment)        ret = xmlStrcat(ret, segment);        xmlFree(segment);    }    if (uri->fragment) {        segment = xmlURIEscapeStr(BAD_CAST uri->fragment, BAD_CAST "#");        NULLCHK(segment)        ret = xmlStrcat(ret, BAD_CAST "#");        ret = xmlStrcat(ret, segment);        xmlFree(segment);    }    xmlFreeURI(uri);#undef NULLCHK    return (ret);}/************************************************************************ *									* *			Escaped URI parsing				* *									* ************************************************************************//** * xmlParseURIFragment: * @uri:  pointer to an URI structure * @str:  pointer to the string to analyze * * Parse an URI fragment string and fills in the appropriate fields * of the @uri structure. *  * fragment = *uric * * Returns 0 or the error code */static intxmlParseURIFragment(xmlURIPtr uri, const char **str){    const char *cur;        if (str == NULL)        return (-1);    cur = *str;    while (IS_URIC(cur) || IS_UNWISE(cur))        NEXT(cur);    if (uri != NULL) {        if (uri->fragment != NULL)            xmlFree(uri->fragment);	if (uri->cleanup & 2)	    uri->fragment = STRNDUP(*str, cur - *str);	else	    uri->fragment = xmlURIUnescapeString(*str, cur - *str, NULL);    }    *str = cur;    return (0);}/** * xmlParseURIQuery: * @uri:  pointer to an URI structure * @str:  pointer to the string to analyze * * Parse the query part of an URI *  * query = *uric * * Returns 0 or the error code */static intxmlParseURIQuery(xmlURIPtr uri, const char **str){    const char *cur;    if (str == NULL)        return (-1);    cur = *str;    while ((IS_URIC(cur)) ||           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))        NEXT(cur);    if (uri != NULL) {        if (uri->query != NULL)            xmlFree(uri->query);	if (uri->cleanup & 2)	    uri->query = STRNDUP(*str, cur - *str);	else	    uri->query = xmlURIUnescapeString(*str, cur - *str, NULL);	/* Save the raw bytes of the query as well.	 * See: http://mail.gnome.org/archives/xml/2007-April/thread.html#00114	 */	if (uri->query_raw != NULL)	    xmlFree (uri->query_raw);	uri->query_raw = STRNDUP (*str, cur - *str);    }    *str = cur;    return (0);}/** * xmlParseURIScheme: * @uri:  pointer to an URI structure * @str:  pointer to the string to analyze * * Parse an URI scheme *  * scheme = alpha *( alpha | digit | "+" | "-" | "." ) * * Returns 0 or the error code */static intxmlParseURIScheme(xmlURIPtr uri, const char **str) {    const char *cur;    if (str == NULL)	return(-1);        cur = *str;    if (!IS_ALPHA(*cur))	return(2);    cur++;    while (IS_SCHEME(*cur)) cur++;    if (uri != NULL) {	if (uri->scheme != NULL) xmlFree(uri->scheme);	uri->scheme = STRNDUP(*str, cur - *str);    }    *str = cur;    return(0);}/** * xmlParseURIOpaquePart: * @uri:  pointer to an URI structure * @str:  pointer to the string to analyze * * Parse an URI opaque part *  * opaque_part = uric_no_slash *uric * * Returns 0 or the error code */static intxmlParseURIOpaquePart(xmlURIPtr uri, const char **str){    const char *cur;    if (str == NULL)        return (-1);    cur = *str;    if (!((IS_URIC_NO_SLASH(cur)) ||          ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))) {        return (3);    }    NEXT(cur);    while ((IS_URIC(cur)) ||           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))        NEXT(cur);    if (uri != NULL) {        if (uri->opaque != NULL)            xmlFree(uri->opaque);	if (uri->cleanup & 2)	    uri->opaque = STRNDUP(*str, cur - *str);	else	    uri->opaque = xmlURIUnescapeString(*str, cur - *str, NULL);    }    *str = cur;    return (0);}/** * xmlParseURIServer: * @uri:  pointer to an URI structure * @str:  pointer to the string to analyze * * Parse a server subpart of an URI, it's a finer grain analysis * of the authority part. *  * server        = [ [ userinfo "@" ] hostport ] * userinfo      = *( unreserved | escaped | *                       ";" | ":" | "&" | "=" | "+" | "$" | "," ) * hostport      = host [ ":" port ] * host          = hostname | IPv4address | IPv6reference * hostname      = *( domainlabel "." ) toplabel [ "." ] * domainlabel   = alphanum | alphanum *( alphanum | "-" ) alphanum * toplabel      = alpha | alpha *( alphanum | "-" ) alphanum * IPv6reference = "[" IPv6address "]" * IPv6address   = hexpart [ ":" IPv4address ] * IPv4address   = 1*3digit "." 1*3digit "." 1*3digit "." 1*3digit * hexpart       = hexseq | hexseq "::" [ hexseq ]| "::" [ hexseq ] * hexseq        = hex4 *( ":" hex4) * hex4          = 1*4hexdig * port          = *digit * * Returns 0 or the error code */static intxmlParseURIServer(xmlURIPtr uri, const char **str) {    const char *cur;    const char *host, *tmp;    const int IPV4max = 4;    const int IPV6max = 8;    int oct;    if (str == NULL)	return(-1);        cur = *str;    /*     * is there a userinfo ?     */    while (IS_USERINFO(cur)) NEXT(cur);    if (*cur == '@') {	if (uri != NULL) {	    if (uri->user != NULL) xmlFree(uri->user);	    if (uri->cleanup & 2)		uri->user = STRNDUP(*str, cur - *str);	    else		uri->user = xmlURIUnescapeString(*str, cur - *str, NULL);	}	cur++;    } else {	if (uri != NULL) {	    if (uri->user != NULL) xmlFree(uri->user);	    uri->user = NULL;	}        cur = *str;    }    /*     * This can be empty in the case where there is no server     */    host = cur;    if (*cur == '/') {	if (uri != NULL) {	    if (uri->authority != NULL) xmlFree(uri->authority);	    uri->authority = NULL;	    if (uri->server != NULL) xmlFree(uri->server);	    uri->server = NULL;	    uri->port = 0;	}	return(0);    }    /*     * host part of hostport can denote an IPV4 address, an IPV6 address     * or an unresolved name. Check the IP first, its easier to detect     * errors if wrong one.     * An IPV6 address must start with a '[' and end with a ']'.     */    if (*cur == '[') {	int compress=0;	cur++;	for (oct = 0; oct < IPV6max; ++oct) {	    if (*cur == ':') {		if (compress)		    return(3);	/* multiple compression attempted */		if (!oct) { 	/* initial char is compression */		    if (*++cur != ':')			return(3);		}		compress = 1;	/* set compression-encountered flag */		cur++;		/* skip over the second ':' */		continue;	    }	    while(IS_HEX(*cur)) cur++;	    if (oct == (IPV6max-1))		continue;	    if (*cur != ':')		break;	    cur++;	}	if ((!compress) && (oct != IPV6max))	    return(3);	if (*cur != ']')	    return(3);	if (uri != NULL) {	    if (uri->server != NULL) xmlFree(uri->server);	    uri->server = (char *)xmlStrndup((xmlChar *)host+1,			(cur-host)-1);	}	cur++;    } else {	/*	 * Not IPV6, maybe IPV4	 */	for (oct = 0; oct < IPV4max; ++oct) {            if (*cur == '.')                 return(3); /* e.g. http://.xml/ or http://18.29..30/ */            while(IS_DIGIT(*cur)) cur++;            if (oct == (IPV4max-1))                continue;            if (*cur != '.')	        break;            cur++;	}    }    if ((host[0] != '[') && (oct < IPV4max || (*cur == '.' && cur++) ||			     IS_ALPHA(*cur))) {        /* maybe host_name */        if (!IS_ALPHANUM(*cur))            return(4); /* e.g. http://xml.$oft */        do {            do ++cur; while (IS_ALPHANUM(*cur));            if (*cur == '-') {	        --cur;                if (*cur == '.')                    return(5); /* e.g. http://xml.-soft */	        ++cur;		continue;            }    	    if (*cur == '.') {	        --cur;                if (*cur == '-')                    return(6); /* e.g. http://xml-.soft */                if (*cur == '.')                    return(7); /* e.g. http://xml..soft */	        ++cur;		continue;            }	    break;        } while (1);        tmp = cur;        if (tmp[-1] == '.')            --tmp; /* e.g. http://xml.$Oft/ */        do --tmp; while (tmp >= host && IS_ALPHANUM(*tmp));        if ((++tmp == host || tmp[-1] == '.') && !IS_ALPHA(*tmp))            return(8); /* e.g. http://xmlsOft.0rg/ */    }    if (uri != NULL) {	if (uri->authority != NULL) xmlFree(uri->authority);	uri->authority = NULL;	if (host[0] != '[') {	/* it's not an IPV6 addr */	    if (uri->server != NULL) xmlFree(uri->server);	    if (uri->cleanup & 2)		uri->server = STRNDUP(host, cur - host);	    else		uri->server = xmlURIUnescapeString(host, cur - host, NULL);	}    }    /*     * finish by checking for a port presence.     */    if (*cur == ':') {        cur++;	if (IS_DIGIT(*cur)) {	    if (uri != NULL)	        uri->port = 0;	    while (IS_DIGIT(*cur)) {	        if (uri != NULL)		    uri->port = uri->port * 10 + (*cur - '0');		cur++;	    }	}    }    *str = cur;    return(0);}	/** * xmlParseURIRelSegment: * @uri:  pointer to an URI structure * @str:  pointer to the string to analyze * * Parse an URI relative segment *  * rel_segment = 1*( unreserved | escaped | ";" | "@" | "&" | "=" | *                          "+" | "$" | "," ) * * Returns 0 or the error code */static intxmlParseURIRelSegment(xmlURIPtr uri, const char **str){    const char *cur;    if (str == NULL)        return (-1);    cur = *str;    if (!((IS_SEGMENT(cur)) ||          ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))) {        return (3);    }    NEXT(cur);    while ((IS_SEGMENT(cur)) ||           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))        NEXT(cur);    if (uri != NULL) {        if (uri->path != NULL)            xmlFree(uri->path);	if (uri->cleanup & 2)	    uri->path = STRNDUP(*str, cur - *str);	else	    uri->path = xmlURIUnescapeString(*str, cur - *str, NULL);    }    *str = cur;    return (0);}/** * xmlParseURIPathSegments: * @uri:  pointer to an URI structure * @str:  pointer to the string to analyze * @slash:  should we add a leading slash * * Parse an URI set of path segments *  * path_segments = segment *( "/" segment ) * segment       = *pchar *( ";" param ) * param         = *pchar * * Returns 0 or the error code */static intxmlParseURIPathSegments(xmlURIPtr uri, const char **str, int slash){    const char *cur;    if (str == NULL)        return (-1);    cur = *str;    do {        while ((IS_PCHAR(cur)) ||	       ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))            NEXT(cur);        while (*cur == ';') {            cur++;            while ((IS_PCHAR(cur)) ||	           ((uri != NULL) && (uri->cleanup & 1) && (IS_UNWISE(cur))))                NEXT(cur);        }        if (*cur != '/')            break;        cur++;    } while (1);    if (uri != NULL) {        int len, len2 = 0;        char *path;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久精品tv| 无码av免费一区二区三区试看 | 福利91精品一区二区三区| 亚洲精品一区二区三区四区高清| 麻豆精品一区二区av白丝在线| 久久综合中文字幕| 一本大道久久a久久综合| 日韩主播视频在线| 国产亚洲污的网站| 欧美色成人综合| 国产精品一色哟哟哟| 亚洲成人免费影院| 亚洲精品综合在线| 久久久久久久久久看片| 欧美日韩国产小视频| 成人aa视频在线观看| 奇米影视在线99精品| 亚洲精品自拍动漫在线| 国产婷婷色一区二区三区在线| 在线成人免费视频| 欧美三级乱人伦电影| 色综合久久综合网欧美综合网| 久草这里只有精品视频| 亚洲国产欧美另类丝袜| 国产精品高清亚洲| 国产亚洲一区字幕| 久久一区二区三区四区| 精品欧美乱码久久久久久| 欧美一区二区三区系列电影| 在线视频国内一区二区| 一本色道久久综合亚洲aⅴ蜜桃| 韩国成人在线视频| 国产成人av电影在线| 99久久国产综合色|国产精品| 成人免费看片app下载| 国产**成人网毛片九色| 国产成人一区二区精品非洲| 国产精品一品二品| 99精品视频免费在线观看| 91网页版在线| 在线成人小视频| 国产欧美1区2区3区| 亚洲精品亚洲人成人网| 亚洲国产日韩a在线播放性色| 日本在线不卡视频| 国产在线精品一区二区三区不卡| 成人av片在线观看| 欧美精品v日韩精品v韩国精品v| 精品少妇一区二区三区日产乱码| 日韩一级欧美一级| 亚洲精品老司机| 九九精品视频在线看| 91久久精品一区二区二区| 91精品国产综合久久香蕉的特点 | 91精彩视频在线| 精品国产乱码91久久久久久网站| 亚洲老司机在线| 国产成人欧美日韩在线电影| 欧美军同video69gay| 亚洲欧美日韩国产另类专区| 激情综合色综合久久| 在线观看日韩毛片| 亚洲色图另类专区| 成人动漫一区二区| 国产欧美日本一区视频| 国产一区在线观看麻豆| 日韩精品在线看片z| 日韩电影免费在线| 91精品视频网| 青青草原综合久久大伊人精品 | 欧美日韩国产成人在线91| 成人欧美一区二区三区在线播放| 国产精品一级在线| 26uuu另类欧美亚洲曰本| 国内精品视频一区二区三区八戒| 555夜色666亚洲国产免| 日韩精品电影在线| 亚洲精品一区二区三区在线观看| 国产在线国偷精品免费看| 久久伊99综合婷婷久久伊| 成人永久看片免费视频天堂| 国产日韩亚洲欧美综合| 懂色av一区二区三区蜜臀 | 综合分类小说区另类春色亚洲小说欧美| 国产在线精品一区二区| 国产精品色哟哟| 欧美午夜精品久久久久久孕妇| 日韩中文字幕亚洲一区二区va在线| 欧美日韩一本到| 国产馆精品极品| 一二三区精品福利视频| 亚洲精品一区二区三区四区高清| www.成人网.com| 蜜桃视频第一区免费观看| 日韩一区二区在线看片| 97久久精品人人做人人爽50路| 亚洲精品欧美专区| 国产日韩v精品一区二区| 欧美日韩免费在线视频| 高清视频一区二区| 日韩中文欧美在线| 亚洲一区在线免费观看| 国产精品久久免费看| 欧美xxxx在线观看| 欧美一区二区三区四区五区| 91在线播放网址| 国内精品嫩模私拍在线| 琪琪久久久久日韩精品| 亚洲国产一区二区三区| 亚洲欧美日韩久久精品| 中文成人综合网| 中文字幕巨乱亚洲| 欧美国产综合一区二区| 国产精品久久久久影院亚瑟| 久久久精品影视| 久久精品亚洲精品国产欧美| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 69久久夜色精品国产69蝌蚪网| 91免费国产在线| 91福利社在线观看| 91精品国产综合久久久久| 欧美视频三区在线播放| 欧美亚日韩国产aⅴ精品中极品| 日本道免费精品一区二区三区| 在线观看亚洲专区| 欧美一级夜夜爽| 久久久国产精华| 一区二区三区成人| 日本特黄久久久高潮| 国产成人av电影免费在线观看| 一本久久a久久精品亚洲| 欧美久久久久中文字幕| 久久日韩粉嫩一区二区三区| 亚洲欧洲日韩在线| 日韩精品电影在线观看| 国产在线精品国自产拍免费| 91福利在线导航| 欧美国产日本韩| 久久精品99久久久| 91高清视频在线| 久久久精品人体av艺术| 日日夜夜精品视频免费| 91亚洲男人天堂| 国产视频在线观看一区二区三区 | 亚洲免费毛片网站| 日韩在线a电影| 97久久精品人人澡人人爽| 欧美在线短视频| 中文av字幕一区| 婷婷亚洲久悠悠色悠在线播放 | 欧美日韩一区不卡| 国产欧美日韩精品a在线观看| 一二三四社区欧美黄| 国产成人精品亚洲午夜麻豆| 欧美性受xxxx黑人xyx| 久久久久久电影| 亚洲福利电影网| 色综合久久88色综合天天免费| 欧美在线一二三| 自拍偷拍国产精品| 粉嫩在线一区二区三区视频| 欧美精品丝袜久久久中文字幕| 666欧美在线视频| 一区二区在线看| 91网站最新网址| 亚洲视频免费看| 91高清视频在线| 洋洋成人永久网站入口| www.亚洲精品| 亚洲综合丝袜美腿| av一二三不卡影片| 亚洲摸摸操操av| 欧美日韩一区 二区 三区 久久精品| 中文字幕一区二区三区精华液| 成人听书哪个软件好| 欧美日韩1区2区| 久久不见久久见中文字幕免费| 精品国精品自拍自在线| 韩国一区二区在线观看| 国产三级三级三级精品8ⅰ区| 成人激情小说乱人伦| 亚洲欧洲精品一区二区精品久久久| 国产a久久麻豆| 亚洲午夜在线电影| 日韩视频在线永久播放| 国产精品综合一区二区三区| 久久九九99视频| 欧美日韩亚洲综合在线 | 自拍偷拍亚洲综合| 4438x亚洲最大成人网| 成人午夜av电影| 全国精品久久少妇| 国产精品毛片久久久久久| 91精品国产aⅴ一区二区| 成人午夜免费电影| 久久精品国产999大香线蕉| 亚洲美女少妇撒尿| 亚洲欧洲日本在线| 日本一区二区三区电影| 欧美一区二区在线免费观看|