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

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

?? gridtext.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*	Terminate finished line for printing*/    previous->data[previous->size] = 0;/*	Align left, right or center*/    spare =  (int) (HTScreenWidth - style->rightIndent + style->leftIndent -		    previous->size);		     /* @@ first line indent */		    switch (style->alignment) {	case HT_CENTER :	    previous->offset = previous->offset + indent + spare/2;	    break;	case HT_RIGHT :	    previous->offset = previous->offset + indent + spare;	    break;	case HT_LEFT :	case HT_JUSTIFY :		/* Not implemented */	default:	    previous->offset = previous->offset + indent;	    break;    } /* switch */    text->chars = text->chars + previous->size + 1;	/* 1 for the line */    text->in_line_1 = NO;		/* unless caller sets it otherwise */    /*	If displaying as we go, output it:*/    if (text->display_on_the_fly) {        if (text->display_on_the_fly == DISPLAY_LINES) { /* First line */	    if (previous->size == 0) {	        text->top_of_screen++;	/* Scroll white space off top */		return;	    }	    if (HTAnchor_title(text->node_anchor)) { /* Title exists */	        display_title(text);	        text->display_on_the_fly--;	    }	}	display_line(text, previous);	text->display_on_the_fly--;		/* Loop to top of next page? */	if (!text->display_on_the_fly && text->all_pages) {	    PUTS("\f\n"); /* Form feed on its own line a la rfc1111 */	    text->display_on_the_fly = DISPLAY_LINES;	}    }} /* split_line *//*	Allow vertical blank space**	--------------------------*/PRIVATE void blank_lines (HText * text, int newlines){    if (text->last_line->size == 0) {	/* No text on current line */	HTLine * line = text->last_line->prev;	while ((line!=text->last_line) && (line->size == 0)) {	    if (newlines==0) break;	    newlines--;		/* Don't bother: already blank */	    line = line->prev;	}    } else {	newlines++;			/* Need also to finish this line */    }    for(;newlines;newlines--) {	new_line(text);    }    text->in_line_1 = YES;}/*	New paragraph in current style**	------------------------------** See also: setStyle.*/PUBLIC void HText_appendParagraph (HText * text){    int after = (int) text->style->spaceAfter;    int before = (int) text->style->spaceBefore;    blank_lines(text, after>before ? after : before);}/*	Set Style**	---------****	Does not filter unnecessary style changes.*/PUBLIC void HText_setStyle (HText * text, HTStyle * style){    int after, before;    if (!style) return;				/* Safety */    after = (int) text->style->spaceAfter;    before = (int) style->spaceBefore;    HTTRACE(SGML_TRACE, "Rendering... Change to style %s\n" _ style->name);    blank_lines (text, after>before ? after : before);    text->style = style;}/*	Append a character to the text object**	-------------------------------------*/PUBLIC void HText_appendCharacter (HText * text, char ch){    HTLine * line = text->last_line;    HTStyle * style = text->style;    int indent = (int)(text->in_line_1 ? style->indent1st : style->leftIndent);    /*		New Line*/    if (ch == '\n') {	    new_line(text);	    text->in_line_1 = YES;	/* First line of new paragraph */	    return;    }/* 		Tabs*/    if (ch == '\t') {        HTTabStop * tab;	int target;	/* Where to tab to */	int here = line->size + line->offset +indent;        if (style->tabs) {	/* Use tab table */	    for (tab = style->tabs;	    	tab->position <= here;		tab++)		if (!tab->position) {		    new_line(text);		    return;		}	    target = (int) tab->position;	} else if (text->in_line_1) {	/* Use 2nd indent */	    if (here >= style->leftIndent) {	        new_line(text); /* wrap */		return;	    } else {	        target = (int) style->leftIndent;	    }	} else {		/* Default tabs align with left indent mod 8 */#ifdef DEFAULT_TABS_8	    target = ((line->offset + line->size + 8) & (-8))	    		+ style->leftIndent;#else	    new_line(text);	    return;#endif	}	if (target > HTScreenWidth - style->rightIndent) {	    new_line(text);	    return;	} else {            text->permissible_split = line->size;	/* Can split here */	    if (line->size == 0) line->offset = line->offset + target - here;	    else for(; here<target; here++) {                line->data[line->size++] = ' ';	/* Put character into line */	    }	    return;	}	/*NOTREACHED*/    } /* if tab */         if (ch==' ') {        text->permissible_split = line->size;	/* Can split here */    }/*	Check for end of line*/        if (indent + line->offset + line->size + style->rightIndent    		>= HTScreenWidth) {        if (style->wordWrap) {	    if(text->permissible_split > line->size)	/* HENRIK 21/02-94 */		text->permissible_split = line->size;	    split_line(text, text->permissible_split);	    if (ch==' ') return;	/* Ignore space causing split */	} else new_line(text);    }/*	Insert normal characters*/    if (ch == HT_NON_BREAK_SPACE) {        ch = ' ';    }    {        HTLine * line = text->last_line;	/* May have changed */        HTFont font = style->font;        line->data[line->size++] =	/* Put character into line */           font & HT_CAPITALS ? TOUPPER(ch) : ch;        if (font & HT_DOUBLE)		/* Do again if doubled */            HText_appendCharacter(text, HT_NON_BREAK_SPACE);	    /* NOT a permissible split */     }}PUBLIC void HText_appendText (HText * text, const char * str){    const char * p;    for(p=str; *p; p++) {        HText_appendCharacter(text, *p);    }}PUBLIC void HText_endAppend (HText * text){    new_line(text);        if (text->display_on_the_fly) {		/* Not finished? */        fill_screen(text, text->display_on_the_fly);	/* Finish it */	text->display_on_the_fly = 0;	text->next_line = text->last_line;	/* Bug fix after EvA 920117 */	text->stale = NO;    }}/*		Anchor handling**		---------------*//*	Start an anchor field*/PUBLIC void LMHText_beginAnchor (HText * text,    int elem_num, int attr_num, HTChildAnchor * anc,    const BOOL *present, const char **value){    TextAnchor * a;			/* this is because it's called as link callback */    if (elem_num != HTML_A)	return;    if ((a = (TextAnchor  *) HT_MALLOC(sizeof(*a))) == NULL)        HT_OUTOFMEM("HText_beginAnchor");    a->start = text->chars + text->last_line->size;    a->extent = 0;    if (text->last_anchor) {        text->last_anchor->next = a;    } else {        text->first_anchor = a;    }    a->next = 0;    a->anchor = anc;    text->last_anchor = a;     text->current_anchor = a;        if (HTAnchor_followMainLink((HTAnchor*)anc)) {        a->number = ++(text->last_anchor_number);    } else {        a->number = 0;    }}PUBLIC void LMHText_endAnchor (HText * text){    TextAnchor * a = text->current_anchor;    char marker[100];    if (!a)			/* </A> without <A> */	return;    if (a->number && display_anchors) {	 /* If it goes somewhere */	sprintf(marker, end_reference, a->number);	HText_appendText(text, marker);    }    a->extent = text->chars + text->last_line->size - a->start;    text->current_anchor = 0;}/* LMHText_addText() satisfies HText callback requirement.  */PUBLIC void LMHText_addText (HText * text, const char * str, int length){    const char * p;    int i;    for (i=0,p=str; i<length; ++i,++p) {        HText_appendCharacter(text, *p);    }}/*		IMAGES*/PUBLIC void HText_appendImage (	HText * 		text,	HTChildAnchor * 	anc,	const char * 		alt,	const char *  		alignment,	BOOL			isMap){    HText_appendText(text, alt? alt : "[IMAGE]");}PUBLIC void HText_appendObject (HText * text, int element_number,	                        const BOOL * present, const char ** value){}PUBLIC void HText_appendLink (HText * text, HTChildAnchor * anchor,			      const BOOL * present, const char ** value){}/*	Return the anchor associated with this node*/PUBLIC HTParentAnchor * HText_nodeAnchor (HText * text){    return text->node_anchor;}/*				GridText specials**				=================*//*	Return the anchor with index N****	The index corresponds to the number we print in the anchor.*/PUBLIC HTChildAnchor * HText_childNumber (HText * text, int number){    TextAnchor * a;    for (a = text->first_anchor; a; a = a->next) {        if (a->number == number) return a->anchor;    }    return (HTChildAnchor *)0;	/* Fail */}PUBLIC void HText_setStale (HText * text){    if (text)	text->stale = YES;}PUBLIC void HText_refresh (HText * text){    if (text && text->stale)	display_page(text, text->top_of_screen);}PUBLIC int HText_sourceAnchors (HText * text){    return (text ? text->last_anchor_number : -1);}PUBLIC BOOL HText_canScrollUp (HText * text){    return (text && text->top_of_screen != 0);}PUBLIC BOOL HText_canScrollDown (HText * text){    return (text && (text->top_of_screen + DISPLAY_LINES -		     (text->title ? TITLE_LINES : 0)) < text->lines);}/*		Scroll actions*/PUBLIC void HText_scrollTop (HText * text){    display_page(text, 0);}PUBLIC void HText_scrollDown (HText * text){    display_page(text, text->top_of_screen + DISPLAY_LINES -1);}PUBLIC void HText_scrollUp (HText * text){    display_page(text, text->top_of_screen - DISPLAY_LINES +1);}PUBLIC void HText_scrollBottom (HText * text){    display_page(text, text->lines - DISPLAY_LINES +1);}/*		Browsing functions**		==================*//* Bring to front and highlight it*/PRIVATE int line_for_char (HText * text, int char_num){    int line_number =0;    int characters = 0;    HTLine * line = text->last_line->next;    for(;;) {	if (line == text->last_line) return 0;	/* Invalid */        characters = characters + line->size + 1;	if (characters > char_num) return line_number;	line_number ++;	line = line->next;    }}PUBLIC BOOL HText_select (HText * text){    if (text) {        HTMainText = text;	HTMainAnchor = text->node_anchor;	display_page(text, text->top_of_screen);	return YES;    }    HTTRACE(SGML_TRACE, "Rendering... Nothing to select!\n");    return NO;}PUBLIC BOOL HText_selectAnchor (HText * text, HTChildAnchor * anchor){    TextAnchor * a;    for(a=text->first_anchor; a; a=a->next) {        if (a->anchor == anchor) break;    }    if (!a) {        HTTRACE(SGML_TRACE, "Rendering... No such anchor in this text!\n");        return NO;    }    if (text != HTMainText) {		/* Comment out by ??? */        HTMainText = text;		/* Put back in by tbl 921208 */	HTMainAnchor = text->node_anchor;    }    {	int l = line_for_char(text, a->start);	HTTRACE(SGML_TRACE, "Rendering... Selecting anchor [%d] at char %d, line %d\n" _ 		    a->number _ a->start _ l);	if ( !text->stale &&	    (l >= text->top_of_screen) &&	    ( l < text->top_of_screen + DISPLAY_LINES-1))	    return YES;        display_page(text, l - (DISPLAY_LINES/3));	/* Scroll to it */    }    return YES;} /*		Editing functions		- NOT IMPLEMENTED**		=================****	These are called from the application. There are many more functions**	not included here from the orginal text object.*//*	Style handling:*//*	Apply this style to the selection*/PUBLIC void HText_applyStyle (HText *  me, HTStyle * style){    }/*	Update all text with changed style.*/PUBLIC void HText_updateStyle (HText *  me, HTStyle * style){    }/*	Return style of  selection*/PUBLIC HTStyle * HText_selectionStyle (	HText * me,	HTStyleSheet * sheet){    return 0;}/*	Paste in styled text*/PUBLIC void HText_replaceSel (	HText * me,	const char * aString, 	HTStyle * aStyle){}/*	Apply this style to the selection and all similarly formatted text**	(style recovery only)*/PUBLIC void HTextApplyToSimilar (HText * me, HTStyle * style){    } /*	Select the first unstyled run.**	(style recovery only)*/PUBLIC void HTextSelectUnstyled (HText * me, HTStyleSheet * sheet){    }/*	Anchor handling:*/PUBLIC void		HText_unlinkSelection (HText * me){    }PUBLIC HTAnchor *	HText_referenceSelected (HText * me){     return 0;   }#ifdef CURSESPUBLIC int HText_getTopOfScreen (HText * text){      return text->top_of_screen;}PUBLIC int HText_getLines (HText * text){      return text->lines;}#endifPUBLIC HTAnchor *	HText_linkSelTo (HText * me, HTAnchor * anchor){    return 0;}/*	HTML callback functions*/PUBLIC void LMHText_beginElement (HText * text,    int elem_num, const BOOL * present, const char ** value){    return;}PUBLIC void LMHText_endElement (HText * text, int elem_num){    switch (elem_num) {    case HTML_A:	LMHText_endAnchor (text);	break;    default:	break;    }    return;   }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丝袜美腿亚洲一区二区图片| 九九精品视频在线看| 视频一区国产视频| 狠狠v欧美v日韩v亚洲ⅴ| 99久久精品99国产精品| 91麻豆精品91久久久久同性| 337p日本欧洲亚洲大胆精品| 亚洲人成网站在线| 激情图区综合网| 在线观看不卡视频| 国产精品免费av| 看片网站欧美日韩| 国产欧美一区二区三区网站| 亚洲国产中文字幕| 成人自拍视频在线| 精品欧美一区二区久久| 亚洲高清在线视频| 色中色一区二区| 国产亚洲欧美一区在线观看| 日韩在线一区二区三区| 在线精品视频免费播放| 中文字幕一区二区三区蜜月| 国产一区二区美女| 日韩三级高清在线| 免费在线观看精品| 一区二区三区色| 成人小视频在线观看| 日韩精品一区二区三区中文不卡 | 日韩精品久久久久久| 国产成人小视频| 久久欧美中文字幕| 精品一区二区三区久久| 欧美一区在线视频| 香蕉影视欧美成人| 精品视频一区二区不卡| 亚洲日本欧美天堂| 一本大道综合伊人精品热热| 日韩黄色免费电影| 欧美精品xxxxbbbb| 亚洲成人免费视| 欧美日韩免费一区二区三区视频| 亚洲精品精品亚洲| 国产成人福利片| 日韩精品一区国产麻豆| 男人的天堂久久精品| 日韩欧美一区二区不卡| 蜜臀av一区二区在线观看| 精品国产乱码久久久久久图片 | 在线视频一区二区三| 国产精品对白交换视频| av在线不卡免费看| 亚洲欧美日韩成人高清在线一区| 色综合天天综合网天天狠天天 | 欧美在线观看视频在线| 欧美本精品男人aⅴ天堂| 九九九久久久精品| 国产精品毛片久久久久久久| 91麻豆免费视频| 亚洲mv在线观看| 日韩精品中午字幕| 国产成人夜色高潮福利影视| 国产精品久线观看视频| 91成人免费在线视频| 性欧美疯狂xxxxbbbb| 精品日韩一区二区三区免费视频| 国产精品亚洲午夜一区二区三区| 综合网在线视频| 7777精品伊人久久久大香线蕉完整版 | 精品国产91乱码一区二区三区| 理论片日本一区| 国产精品三级久久久久三级| 色综合av在线| 美日韩一区二区三区| 国产亚洲一区二区在线观看| 波多野结衣欧美| 亚洲成人av免费| 欧美精品一区二区三区蜜臀| 成人深夜在线观看| 亚洲一区二区三区四区五区中文 | 亚洲人午夜精品天堂一二香蕉| 欧美日韩国产综合一区二区 | 精品国精品国产| 99久久国产综合精品色伊| 亚洲丰满少妇videoshd| 国产精品视频yy9299一区| 欧美日韩大陆一区二区| 成人免费视频国产在线观看| 亚洲丰满少妇videoshd| 欧美国产成人精品| 制服丝袜亚洲网站| 99久久婷婷国产| 免费看欧美美女黄的网站| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲一区二区视频在线| 久久久不卡网国产精品一区| 欧美日韩亚洲综合在线| 成人白浆超碰人人人人| 麻豆国产精品官网| 伊人性伊人情综合网| 久久午夜免费电影| 精品视频一区二区不卡| 972aa.com艺术欧美| 狠狠色综合日日| 亚洲第一电影网| 亚洲伦理在线免费看| 国产欧美一区二区精品性| 欧美成人精精品一区二区频| 欧美三级中文字幕在线观看| 91丨porny丨国产| 国产激情视频一区二区三区欧美 | 高清国产一区二区三区| 韩国精品免费视频| 蜜臀av一区二区| 免费观看成人av| 喷水一区二区三区| 日韩二区在线观看| 亚洲福中文字幕伊人影院| 亚洲猫色日本管| 亚洲视频在线一区二区| 亚洲欧洲日本在线| 国产日本欧美一区二区| 欧美大片一区二区| 日韩女优av电影| 欧美videossexotv100| 欧美成人精品高清在线播放| 日韩欧美二区三区| 欧美mv日韩mv| 久久久久久久久久美女| 久久久亚洲精华液精华液精华液 | 久久九九99视频| 久久综合九色综合97婷婷 | 欧美系列日韩一区| 欧美性猛片xxxx免费看久爱| 在线观看视频一区二区欧美日韩| 在线观看视频91| 欧美日韩国产另类一区| 日韩一区二区三区四区| 精品剧情v国产在线观看在线| 日韩久久免费av| 欧美国产欧美亚州国产日韩mv天天看完整| 国产亚洲欧洲997久久综合| 亚洲国产精品av| 亚洲精品乱码久久久久久日本蜜臀| 亚洲欧美日韩国产手机在线| 亚洲成av人片观看| 国内外成人在线| www.性欧美| 欧美日韩mp4| 26uuu久久天堂性欧美| 日韩一区欧美一区| 午夜影院在线观看欧美| 久久不见久久见免费视频7| 福利电影一区二区| 欧美午夜精品一区| 久久综合国产精品| 亚洲天堂2014| 日本aⅴ免费视频一区二区三区| 国模少妇一区二区三区| 色综合咪咪久久| 91精品婷婷国产综合久久竹菊| 久久免费偷拍视频| 亚洲人成在线播放网站岛国| 日韩精品乱码免费| av不卡免费电影| 91精品国产91热久久久做人人 | 精品亚洲成a人| 91视频在线观看免费| 日韩美一区二区三区| 亚洲少妇30p| 精品在线一区二区| 欧美系列亚洲系列| 欧美国产综合一区二区| 日韩电影在线看| 91在线小视频| 精品福利一区二区三区免费视频| 亚洲激情五月婷婷| 国产精品一二二区| 日韩一区二区三区观看| 亚洲综合图片区| 国产成人精品免费网站| 欧美日本在线视频| 亚洲色欲色欲www在线观看| 国产精选一区二区三区| 91精品欧美综合在线观看最新| 最新不卡av在线| 国产精品亚洲一区二区三区妖精 | 欧美成人a∨高清免费观看| 亚洲一区欧美一区| 色综合天天综合网天天看片| 久久久91精品国产一区二区精品| 五月天亚洲婷婷| 在线这里只有精品| 国产精品灌醉下药二区| 国产一区二区毛片| 精品99999| 麻豆精品国产91久久久久久| 欧美二区三区的天堂| 亚洲午夜免费电影| 欧美亚洲一区三区| 玉米视频成人免费看|