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

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

?? sgml.c

?? firtext搜索引擎源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
			/*			** Character reference or Entity			*/		    case S_ero:			if (c == '#')			    {				/*   &# is Char Ref Open */ 				context->state = S_cro;				break;			    }			context->state = S_entity;			/** FALL THROUGH TO S_entity !! ***/			/*			** Handle Entities			*/		    case S_entity:			if (IS_ALNUM((int) c))				HTChunk_putc(string, c);			else			    {				HTChunk_terminate(string);				handle_entity(context);				text = b;				count = 0;				if (c != ';')				    {					--text;					goto S_text;				    }				context->state = S_text;			    }			break;			/*	Character reference			 */		    case S_cro:			if (IS_ALNUM((int)c))				/* accumulate a character NUMBER */				HTChunk_putc(string, c);			else			    {				int value;				HTChunk_terminate(string);				if (sscanf(HTChunk_data(string), "%d", &value)==1)					PUTC((char)value);				else				    {					PUTB("&#", 2);					PUTB(HTChunk_data(string), HTChunk_size(string)-1);				    }				text = b;				count = 0;				if (c != ';')				    {					--text;					goto S_text;				    }				context->state = S_text;			    }			break;		    case S_tag:		/* new tag */		    handle_S_tag:			if (IS_ALNUM((int)c))				HTChunk_putc(string, c);			else { /* End of tag name */			    int i;			    if (c == '/') {				if (HTChunk_size(string) > 0)				    HTTRACE(SGML_TRACE, "`<%s/' found!\n" _ HTChunk_data(string));				context->state = S_end;				break;			    } else if (c == '!') {				if (HTChunk_size(string) > 0)				    HTTRACE(SGML_TRACE, " `<%s!' found!\n" _ HTChunk_data(string));				context->state = S_md;				break;			    }			    HTChunk_terminate(string);			    context->current_tag  = SGMLFindTag(dtd, HTChunk_data(string));			    if (context->current_tag == NULL) {				HTTRACE(SGML_TRACE, "*** Unknown element %s\n" _ HTChunk_data(string));				(*context->actions->unparsed_begin_element)				    (context->target, HTChunk_data(string), HTChunk_size(string));			    } else {				for (i=0; i<context->current_tag->number_of_attributes; i++) {				    context->present[i] = NO;				    context->value[i] = -1;				}			    }			    context->token = 0;			    HTChunk_clear(string);			    context->current_attribute_number = INVALID;			    goto S_tag_gap;			}			break;		    S_tag_gap:			context->state = S_tag_gap;		    case S_tag_gap:		/* Expecting attribute or > */			if (IS_SPACE((int) c))				break;	/* Gap between attributes */			if (c == '>')				goto got_element_open;			else				goto S_attr;		    S_attr:			/*			** Start collecting the attribute name and collect			** it in S_attr.			*/			context->state = S_attr;			HTChunk_truncate(string, context->token);		    case S_attr:			if (IS_SPACE((int) c) || c == '>' || c == '=')				goto got_attribute_name;			else				HTChunk_putc(string, c);			break;		    got_attribute_name:			/*			** This label is entered when attribute name has been			** collected. Process it and enter S_attr_gap for			** potential value or start of the next attribute.			*/			HTChunk_terminate(string) ;			handle_attribute_name				(context, HTChunk_data(string) + context->token);			HTChunk_truncate(string, context->token);			context->state = S_attr_gap;		    case S_attr_gap:	/* Expecting attribute or = or > */			if (IS_SPACE((int) c))				break;	/* Gap after attribute */			if (c == '>')				goto got_element_open;			else if (c == '=')				context->state = S_equals;			else				goto S_attr; /* Get next attribute */			break;		    case S_equals:	/* After attr = */ 			if (IS_SPACE((int) c))				break;	/* Before attribute value */			if (c == '>')			    {		/* End of tag */				HTTRACE(SGML_TRACE, "found = but no value\n");				goto got_element_open;			    }			else if (c == '\'')				context->state = S_squoted;			else if (c == '"')				context->state = S_dquoted;			else				goto S_value;			break;		    S_value:			context->state = S_value;			HTChunk_truncate(string, context->token);		    case S_value:			if (IS_SPACE((int) c) || c == '>')			    {				HTChunk_terminate(string);				handle_attribute_value(context);				context->token = HTChunk_size(string);				goto S_tag_gap;			    }			else				HTChunk_putc(string, c);			break;				    case S_squoted:	/* Quoted attribute value */			if (c == '\'')			    {				HTChunk_terminate(string);				handle_attribute_value(context);				context->token = HTChunk_size(string);				context->state = S_tag_gap;			    }			else if (c && c != '\n' && c != '\r')				HTChunk_putc(string, c);			break;			    case S_dquoted:	/* Quoted attribute value */			if (c == '"')			    {				HTChunk_terminate(string);				handle_attribute_value(context);				context->token = HTChunk_size(string);				context->state = S_tag_gap;			    }			else if (c && c != '\n' && c != '\r')				HTChunk_putc(string, c);			break;		    case S_end:	/* </ */			if (IS_ALNUM((int) c))				HTChunk_putc(string, c);			else			    {		/* End of end tag name */				HTTag *t;				char * first;				HTChunk_terminate(string);				if ((first=HTChunk_data(string))!=NULL && *first != '\0')				        t = SGMLFindTag(dtd, HTChunk_data(string));				else				    	/* Empty end tag */					/* Original code popped here one					   from the stack. If this feature					   is required, I have to put the					   stack back... -- msa */					t = NULL;				if (!t) {				    HTTRACE(SGML_TRACE, "Unknown end tag </%s>\n" _ HTChunk_data(string));				    (*context->actions->unparsed_end_element)					(context->target, HTChunk_data(string), HTChunk_size(string));				} else {				    context->current_tag = NULL;				    end_element(context, t);				}				HTChunk_clear(string);				context->current_attribute_number = INVALID;				if (c != '>')				    {					if (!IS_SPACE((int) c))					    HTTRACE(SGML_TRACE, "`</%s%c' found!\n" _ HTChunk_data(string) _ c);					context->state = S_junk_tag;				    }				else				    {					text = b;					count = 0;					context->state = S_text;				    }			    }			break;		    case S_junk_tag:			if (c == '>')			    {				text = b;				count = 0;				context->state = S_text;			    }			break;			/*			** Scanning (actually skipping) declarations			*/		    case S_md:			if (c == '-')				context->state = S_com_1;			else if (c == '"')				context->state = S_md_dqs;			else if (c == '\'')				context->state = S_md_sqs;			else if (c == '>')			    {				text = b;				count = 0;				context->state = S_text;			    }			break;		    case S_md_dqs: /* Skip double quoted string */			if (c == '"')				context->state = S_md;			else if (c == '>')			    {				text = b;				count = 0;				context->state = S_text;			    }			break;		    case S_md_sqs: /* Skip single quoted string */			if (c == '\'')				context->state = S_md;			else if (c == '>')			    {				text = b;				count = 0;				context->state = S_text;			    }			break;		    case S_com_1: /* Starting a comment? */			context->state = (c == '-') ? S_com : S_md;			if (c == '>')			    {				text = b;				count = 0;				context->state = S_text;			    }			break;		    case S_com: /* ..within comment */			if (c == '-')				context->state = S_com_2;			break;		    case S_com_2: /* Ending a comment ? */			context->state = (c == '-') ? S_com_2a : S_com;			break;		    		    case S_com_2a:			if (c == '>') {			    text = b;			    count = 0;			    context->state = S_text;			} else if (c == '-') {			    context->state = S_com_2a;			} else			    context->state = S_com;			break;		    }	    }	if (count > 0)		PUTB(text, count);	return HT_OK;    }PRIVATE int SGML_string (HTStream * context, const char* s)    {	return SGML_write(context, s, (int) strlen(s));    }PRIVATE int SGML_character (HTStream * context, char c)    {	return SGML_write(context, &c, 1);    }/*_______________________________________________________________________*//*	Structured Object Class**	-----------------------*/PRIVATE const HTStreamClass SGMLParser = {    "SGML",    SGML_flush,    SGML_free,    SGML_abort,    SGML_character,     SGML_string,    SGML_write}; /*	Create SGML Engine**	------------------**** On entry,**	dtd		represents the DTD, along with**	actions		is the sink for the data as a set of routines.***/PUBLIC HTStream *SGML_new(const SGML_dtd * dtd, HTStructured * target){    int i;    HTStream* context;    if ((context = (HTStream  *) HT_CALLOC(1, sizeof(HTStream))) == NULL)	HT_OUTOFMEM("SGML_begin");    context->isa = &SGMLParser;    context->string = HTChunk_new(128);	/* Grow by this much */    context->dtd = dtd;    context->target = target;    context->actions = (HTStructuredClass*)(((HTStream*)target)->isa);    /* Ugh: no OO */    context->state = S_text;    for(i=0; i<MAX_ATTRIBUTES; i++)	context->value[i] = 0;    return context;}PUBLIC HTTag * SGML_findTag (SGML_dtd * dtd, int element_number){    return (dtd && element_number>=0 && element_number<dtd->number_of_tags) ?	(dtd->tags+element_number) : NULL;}PUBLIC char * SGML_findTagName (SGML_dtd * dtd, int element_number){    return (dtd && element_number>=0 && element_number<dtd->number_of_tags) ?	(dtd->tags+element_number)->name : NULL;}PUBLIC SGMLContent SGML_findTagContents (SGML_dtd * dtd, int element_number){    return (dtd && element_number>=0 && element_number<dtd->number_of_tags) ?	(dtd->tags+element_number)->contents : SGML_ELEMENT;}PUBLIC int SGML_findElementNumber (SGML_dtd * dtd, char * name_element){    if (dtd && name_element) {	int i;	HTTag *ct;	for (i = 0; i< dtd->number_of_tags; i++) {	    ct = &(dtd->tags[i]);	    if (!strcasecomp(ct->name,name_element))		return i;	}    }    return -1;}PUBLIC char * HTTag_name (HTTag * tag){    return tag ? tag->name : NULL;}PUBLIC SGMLContent HTTag_content (HTTag * tag){    return tag ? tag->contents : SGML_EMPTY;}PUBLIC int HTTag_attributes (HTTag * tag){    return tag ? tag->number_of_attributes : -1;}PUBLIC char * HTTag_attributeName (HTTag * tag, int attribute_number){    return (tag && attribute_number>=0 && attribute_number<tag->number_of_attributes) ?	(tag->attributes+attribute_number)->name : NULL;}PUBLIC char * HTAttr_name (HTAttr * attr){    return attr ? attr->name : NULL;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区在线| 伊人夜夜躁av伊人久久| 99精品国产视频| 久草精品在线观看| 樱花草国产18久久久久| 国产欧美综合在线| 欧美电视剧免费全集观看| 91成人免费电影| 成人激情视频网站| 国产在线精品一区二区夜色| 亚洲精品国产第一综合99久久| 亚洲精品一线二线三线| 在线观看91av| 欧美色综合影院| 一本一本大道香蕉久在线精品 | 精品久久一区二区三区| 欧美亚洲免费在线一区| 99精品热视频| 成人伦理片在线| 国产成人综合网| 极品尤物av久久免费看| 日本伊人精品一区二区三区观看方式| 国产精品麻豆网站| 国产三级精品在线| 国产视频一区二区在线| 精品国产免费一区二区三区四区 | 久久看人人爽人人| 日韩亚洲欧美在线| 5858s免费视频成人| 欧美日韩亚洲丝袜制服| 欧美亚洲丝袜传媒另类| 欧美午夜精品久久久| 欧美三级三级三级爽爽爽| 99国产精品久久久久久久久久| 国产91露脸合集magnet| 成人免费视频免费观看| 国产盗摄视频一区二区三区| 国产aⅴ综合色| 成人综合激情网| 成人福利视频在线看| 成人免费精品视频| 99久免费精品视频在线观看| 成人免费va视频| 91在线视频播放地址| 色婷婷精品大在线视频| 欧美日韩在线免费视频| 7777精品伊人久久久大香线蕉最新版| 欧美日韩免费电影| 欧美一级理论性理论a| 精品美女被调教视频大全网站| 日韩欧美国产成人一区二区| 久久蜜桃av一区精品变态类天堂| 国产日韩欧美高清| 亚洲欧美成aⅴ人在线观看| 国产精品久久久久婷婷 | 青青草精品视频| 极品少妇xxxx精品少妇偷拍 | 蜜桃视频在线观看一区| 美女尤物国产一区| 国产乱码精品一区二区三| 国产a视频精品免费观看| 成人午夜视频免费看| 99久久免费精品高清特色大片| 99re热这里只有精品免费视频| 欧美丝袜丝nylons| 欧美电影免费提供在线观看| 国产精品久久久久久户外露出 | 国产一区二区0| 91在线porny国产在线看| 欧美日韩一区二区三区免费看| 欧美成人精品福利| 国产精品乱码人人做人人爱| 亚洲精品国产品国语在线app| 日本中文字幕一区二区视频 | 成人午夜碰碰视频| 欧美日韩在线播| www久久精品| 一区二区三区国产精华| 蜜桃视频免费观看一区| 成人av资源在线| 欧美一区二区免费视频| 国产精品国产三级国产普通话蜜臀| 亚洲国产成人av网| 国产成人一区在线| 欧美福利视频导航| 国产精品理论在线观看| 日本不卡一区二区三区| 99re成人精品视频| 日韩欧美精品在线视频| 亚洲码国产岛国毛片在线| 老司机免费视频一区二区| av一区二区三区四区| 日韩欧美一区二区三区在线| 国产精品久久久一区麻豆最新章节| 日本不卡不码高清免费观看 | 欧美tickling挠脚心丨vk| **欧美大码日韩| 国产一区 二区| 欧美精品丝袜中出| 亚洲啪啪综合av一区二区三区| 国产综合一区二区| 欧美乱妇一区二区三区不卡视频| 中文字幕日本不卡| 国内一区二区在线| 欧美一区二区三区四区视频 | 婷婷夜色潮精品综合在线| 丁香激情综合五月| 日韩美女天天操| 日韩国产欧美三级| 色94色欧美sute亚洲线路一久| 中文字幕乱码亚洲精品一区| 韩国v欧美v亚洲v日本v| 欧美一区二区在线播放| 亚洲狠狠丁香婷婷综合久久久| 国产成人av电影在线| 2014亚洲片线观看视频免费| 青青青伊人色综合久久| 在线不卡的av| 午夜a成v人精品| 欧美日韩aaaaa| 亚洲国产精品一区二区久久| 日本精品视频一区二区| 亚洲日本在线天堂| 91小视频免费看| 1区2区3区国产精品| 福利一区福利二区| 国产三级欧美三级| 国产高清在线精品| 国产午夜精品福利| 风间由美一区二区av101 | 亚洲色图欧美激情| 99久久99久久免费精品蜜臀| 国产精品国产三级国产普通话99| 国产suv精品一区二区三区| 久久精品一区二区三区不卡| 国产成人精品网址| 国产精品久久久久久久久图文区| 成人久久18免费网站麻豆| 中文字幕av一区 二区| 成人app网站| 亚洲精品乱码久久久久| 在线观看亚洲a| 偷拍亚洲欧洲综合| 日韩欧美在线网站| 国产一区二区精品久久99| 国产视频一区二区在线观看| 成人av免费观看| 亚洲一区二区高清| 日韩午夜在线观看| 国产精品羞羞答答xxdd| 国产精品欧美一区二区三区| 色综合天天视频在线观看| 亚洲一区二区欧美激情| 日韩一区二区高清| 国产高清在线精品| 亚洲蜜桃精久久久久久久| 欧美男男青年gay1069videost| 秋霞电影网一区二区| 国产亚洲欧美在线| 在线日韩一区二区| 另类的小说在线视频另类成人小视频在线 | 美女一区二区三区在线观看| 久久久五月婷婷| 91在线观看地址| 日韩不卡在线观看日韩不卡视频| 精品入口麻豆88视频| 91在线观看一区二区| 日本不卡中文字幕| 国产精品天天看| 欧美三级视频在线| 国产黄色精品视频| 亚洲一区二区三区四区不卡| 久久综合久久综合久久综合| 99这里都是精品| 蜜桃视频一区二区三区在线观看| 国产精品久久毛片| 日韩午夜激情电影| 色哟哟精品一区| 黄色精品一二区| 亚洲自拍偷拍av| 久久精品亚洲麻豆av一区二区| 日本久久电影网| 国产在线精品一区二区不卡了| 一级特黄大欧美久久久| 久久精品一区二区三区四区| 欧美久久一区二区| jvid福利写真一区二区三区| 日韩成人伦理电影在线观看| ...av二区三区久久精品| 欧美mv和日韩mv国产网站| 欧美在线免费视屏| 国产成人av影院| 美女一区二区三区在线观看| 亚洲主播在线观看| 国产精品福利在线播放| 日韩欧美亚洲一区二区| 精品视频一区三区九区| 91免费在线看| 国产激情视频一区二区三区欧美| 美女网站在线免费欧美精品|