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

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

?? htatom.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
字號:
/*								       HTAtom.c**	ATOMS: STRINSGS TO NUMBERS****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTAtom.c,v 2.31 1999/02/22 22:10:10 frystyk Exp $****	Atoms are names which are given representative pointer values**	so that they can be stored more efficiently, and comparisons**	for equality done more efficiently.****	Atoms are kept in a hash table consisting of an array of linked lists.**** Authors:**	TBL	Tim Berners-Lee, WorldWideWeb project, CERN***//* Library include files */#include "wwwsys.h"#include "HTUtils.h"#include "HTString.h"#include "HTList.h"#include "HTAtom.h"PRIVATE HTAtom * hash_table[HT_XL_HASH_SIZE];PRIVATE BOOL initialised = NO;/***	Finds an atom representation for a string. The atom doesn't have to be**	a new one but can be an already existing atom.*/PUBLIC HTAtom * HTAtom_for (const char * string){    int hash;    const unsigned char * p;    HTAtom * a;    if (!string) return NULL;			/* prevent core dumps */        /*		First time around, clear hash table    */    if (!initialised) {        memset((void *) hash_table, '\0', sizeof(HTAtom *) * HT_XL_HASH_SIZE);	initialised = YES;    }        /*		Generate hash function    */    for (p=string, hash=0; *p; p++) {        hash = (hash * 3 + TOLOWER(*p)) % HT_XL_HASH_SIZE;    }        /*		Search for the string in the list    */    for (a=hash_table[hash]; a; a=a->next) {	if (0==strcmp(a->name, string)) {    	    /* HTTRACE(UTIL_TRACE, "HTAtom: Old atom %p for `%s'\n" _ a _ string); */	    return a;				/* Found: return it */	}    }        /*		Generate a new entry    */    if ((a = (HTAtom  *) HT_MALLOC(sizeof(*a))) == NULL)        HT_OUTOFMEM("HTAtom_for");    if ((a->name = (char  *) HT_MALLOC(strlen(string)+1)) == NULL)        HT_OUTOFMEM("HTAtom_for");    strcpy(a->name, string);    a->next = hash_table[hash];		/* Put onto the head of list */    hash_table[hash] = a;/*    HTTRACE(UTIL_TRACE, "HTAtom: New atom %p for `%s'\n" _ a _ string); */    return a;}/***	CASE INSENSITIVE VERSION OF HTAtom_for()**	Finds an atom representation for a string. The atom doesn't have to be**	a new one but can be an already existing atom.*/PUBLIC HTAtom * HTAtom_caseFor (const char * string){    int hash;    const unsigned char * p;    HTAtom * a;    if (!string) return NULL;			/* prevent core dumps */        /*		First time around, clear hash table    */    if (!initialised) {        memset((void *) hash_table, '\0', sizeof(HTAtom *) * HT_XL_HASH_SIZE);	initialised = YES;    }        /*		Generate hash function    */    for(p=string, hash=0; *p; p++) {        hash = (hash * 3 + TOLOWER(*p)) % HT_XL_HASH_SIZE;    }        /*		Search for the string in the list    */    for (a=hash_table[hash]; a; a=a->next) {	if (!strcasecomp(a->name, string)) {	    return a;					/* Found: return it */	}    }        /*		Generate a new entry    */    if ((a = (HTAtom  *) HT_MALLOC(sizeof(*a))) == NULL)        HT_OUTOFMEM("HTAtom_for");    if ((a->name = (char  *) HT_MALLOC(strlen(string)+1)) == NULL)        HT_OUTOFMEM("HTAtom_for");    strcpy(a->name, string);    a->next = hash_table[hash];		/* Put onto the head of list */    hash_table[hash] = a;    return a;}/***	This function cleans up the memory used by atoms.**	Written by Eric Sink, eric@spyglass.com*/PUBLIC void HTAtom_deleteAll (void){    int i;    HTAtom *cur;    HTAtom *next;        for (i=0; i<HT_XL_HASH_SIZE; i++) {	if (hash_table[i]) {	    cur = hash_table[i];	    while (cur) {		next = cur->next;		HT_FREE(cur->name);		HT_FREE(cur);		cur = next;		    }		}    }    initialised = NO;}PRIVATE BOOL mime_match (const char * name, const char * templ){    if (name && templ) {	static char *n1 = NULL;	static char *t1 = NULL;	char *n2;	char *t2;	StrAllocCopy(n1, name);		/* These also HT_FREE the ones	*/	StrAllocCopy(t1, templ);	/* from previous call.		*/	if (!(n2 = strchr(n1, '/'))  ||  !(t2 = strchr(t1, '/')))	    return NO;	*(n2++) = (char)0;	*(t2++) = (char)0;	if ((0==strcmp(t1, "*") || 0==strcmp(t1, n1)) &&	    (0==strcmp(t2, "*") || 0==strcmp(t2, n2)))	    return YES;    }    return NO;}	PUBLIC HTList *HTAtom_templateMatches (const char * templ){    HTList *matches = HTList_new();    if (initialised && templ) {	int i;	HTAtom *cur;	for (i=0; i<HT_XL_HASH_SIZE; i++) {	    for (cur = hash_table[i];  cur;  cur=cur->next) {		if (mime_match(cur->name, templ))		    HTList_addObject(matches, (void*)cur);	    }	}    }    return matches;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一区在线看| 老司机精品视频在线| 91老司机福利 在线| 中文字幕第一区| 成人午夜电影网站| 亚洲欧美在线视频观看| 在线免费一区三区| 五月天久久比比资源色| 欧美一区二区三区精品| 国产高清久久久久| 亚洲欧洲av一区二区三区久久| 色综合久久88色综合天天6 | 亚洲一区二区三区不卡国产欧美| 在线观看日韩高清av| 日韩国产一二三区| 久久久久久久综合日本| 色狠狠av一区二区三区| 日韩在线一二三区| 国产人妖乱国产精品人妖| 日本韩国一区二区三区视频| 午夜私人影院久久久久| 久久综合精品国产一区二区三区| 成人av一区二区三区| 亚洲国产一区二区a毛片| 欧美mv和日韩mv的网站| 99国产精品99久久久久久| 午夜精品在线看| 国产精品视频在线看| 在线播放中文字幕一区| 国产jizzjizz一区二区| 偷拍一区二区三区四区| 亚洲国产岛国毛片在线| 日韩一区二区电影在线| 99视频精品免费视频| 美女高潮久久久| 亚洲精品va在线观看| 久久久精品2019中文字幕之3| 欧美中文字幕一区二区三区| 国产成人av一区二区三区在线| 亚洲成人午夜电影| 中文字幕一区二区三区不卡在线 | 久久新电视剧免费观看| 在线精品视频免费播放| 国产成人免费视频网站高清观看视频| 一级精品视频在线观看宜春院| 国产视频一区在线观看| 欧美一区二区视频网站| 91黄色免费观看| 成人性生交大片免费看在线播放| 三级久久三级久久久| 亚洲欧美视频在线观看| 国产日韩欧美精品一区| 日韩一区二区免费视频| 欧美三级蜜桃2在线观看| 成人精品gif动图一区| 国产一区二区三区在线观看免费视频 | 成人动漫av在线| 国产综合色产在线精品| 青青草国产成人99久久| 亚洲尤物视频在线| 一区二区在线观看免费视频播放| 欧美国产激情一区二区三区蜜月| 欧美精品一区二区高清在线观看| 欧美二区乱c少妇| 欧美亚洲综合另类| 欧美丝袜自拍制服另类| 色婷婷国产精品| 91浏览器打开| 在线观看亚洲精品| 91高清视频在线| 日本黄色一区二区| 日本道色综合久久| 色狠狠综合天天综合综合| av男人天堂一区| 成人av网在线| www.66久久| 色悠悠久久综合| 欧美性大战xxxxx久久久| 日本久久一区二区| 欧美在线三级电影| 欧美日韩在线播放三区四区| 在线观看一区日韩| 欧美乱妇23p| 欧美成人aa大片| 国产视频亚洲色图| 国产精品女人毛片| 亚洲毛片av在线| 亚洲一二三区视频在线观看| 亚洲一二三区不卡| 伦理电影国产精品| 国产成人av电影| 99久久99久久免费精品蜜臀| 色哟哟亚洲精品| 欧美老肥妇做.爰bbww| 日韩亚洲国产中文字幕欧美| 欧美成人福利视频| 中文一区在线播放| 亚洲精品视频一区| 日韩福利视频导航| 国产精品1024| 欧美伊人久久大香线蕉综合69 | 中文字幕人成不卡一区| 亚洲综合激情网| 精品制服美女久久| 成人18视频在线播放| 欧美日韩一区二区三区在线 | www.av精品| 欧美精品一卡二卡| 久久久精品国产免大香伊| 最近中文字幕一区二区三区| 亚洲国产日韩一级| 九色porny丨国产精品| 97精品久久久久中文字幕 | 91在线视频官网| 91精品一区二区三区久久久久久| 久久久久久久久久久99999| 亚洲人123区| 精品一区二区三区免费播放| 99久久99久久久精品齐齐| 69堂国产成人免费视频| 国产欧美视频一区二区三区| 亚洲观看高清完整版在线观看| 国产精品自拍毛片| 欧美性极品少妇| 欧美国产精品一区二区| 天堂久久久久va久久久久| 成人性生交大片免费看视频在线 | 国产精品污www在线观看| 视频在线观看一区| 91在线免费看| 欧美变态tickle挠乳网站| 亚洲色图色小说| 韩国在线一区二区| 91精品欧美久久久久久动漫| 日韩伦理电影网| 国产美女精品在线| 欧美日韩电影在线| 综合av第一页| 丁香天五香天堂综合| 日韩欧美一区在线| 午夜一区二区三区在线观看| 成人黄色软件下载| 久久免费偷拍视频| 美国av一区二区| 欧美二区乱c少妇| 亚洲高清三级视频| 在线免费观看一区| 亚洲欧美色图小说| gogogo免费视频观看亚洲一| 久久亚洲精精品中文字幕早川悠里| 午夜亚洲福利老司机| 欧美三级在线看| 一区二区三区四区国产精品| 成人免费黄色在线| 欧美国产日韩精品免费观看| 久久福利视频一区二区| 欧美一级高清片在线观看| 日本欧美肥老太交大片| 欧美精品在线观看一区二区| 亚洲va在线va天堂| 欧美色倩网站大全免费| 一二三四区精品视频| 欧美在线免费观看视频| 亚洲自拍偷拍麻豆| 欧美亚洲高清一区二区三区不卡| 尤物视频一区二区| 在线观看精品一区| 午夜精品久久久久久久99水蜜桃 | 一区二区三区欧美亚洲| 91美女视频网站| 一级女性全黄久久生活片免费| 欧美亚一区二区| 丝袜脚交一区二区| 欧美一区二区日韩| 九九精品视频在线看| 国产日韩欧美激情| 91视频在线看| 石原莉奈在线亚洲二区| 日韩视频免费观看高清在线视频| 美脚の诱脚舐め脚责91 | 亚洲精品久久嫩草网站秘色| 不卡的av在线播放| 洋洋成人永久网站入口| 欧美男生操女生| 国内精品久久久久影院色 | 一区二区三区在线不卡| 色哟哟一区二区三区| 日韩电影在线免费观看| 精品国产污网站| 99久久久无码国产精品| 亚洲在线中文字幕| 日韩欧美精品三级| 丰满放荡岳乱妇91ww| 一区二区三区四区在线| 日韩免费一区二区| 91在线云播放| 日韩国产高清影视| 中文字幕在线观看一区二区| 欧美日韩一区二区在线观看视频| 激情综合五月天|