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

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

?? htbrowse.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
?? 第 1 頁 / 共 5 頁
字號:
      case '>':	if (!lm->host) {	    HText *curText = HTMainText;     /* Remember current main vindow */	    req = Thread_new(lm, NO, LM_NO_UPDATE);	    HTRequest_setReloadMode(req, HT_CACHE_FLUSH_MEM);	    if (OutSource) HTRequest_setOutputFormat(req, WWW_SOURCE);	    SaveOutputStream(req, token, next_word);	    HText_select(curText);	}	break;	#ifdef GOT_PIPE      case '|':	if (!lm->host) {	             	           /* Local only!!!! */	    char * address = HTAnchor_address((HTAnchor *) HTMainAnchor);	    char * command;	    int result;	    if ((command = (char *) HT_MALLOC(strlen(address) +strlen(this_command)+30)) == NULL)	        HT_OUTOFMEM("command");	    sprintf(command, "www %s \"%s\" %s", 		    OutSource ? "-source" : "-n -na -p", address,this_command);	    OutputData(lm->pView, "Command: %s\n", command);	    result = system(command);	    if (result) OutputData(lm->pView, "  %s  returns %d\n", command, result);	    HT_FREE(command);     	    HT_FREE(address);	}	break;#endif	    #ifdef HAVE_SYSTEM      case '!':	if (!lm->host) {				      /* Local only! */	    int result;	    if (SHOW_MSG) HTPrint("Executing `%s\'\n", this_command);	    result = system(strchr(this_command, '!') + 1);	    if (result) OutputData(lm->pView, "  %s  returns %d\n",				 strchr(this_command, '!') + 1, result);	}	break;#endif /* HAVE_SYSTEM */      default:	found = NO;	break;    } /* Switch on 1st character */    if (!found) {	if (is_index && *token) {  /* No commands, search keywords */	    next_word = other_words = this_command;	    found = YES;	    goto find;	} else {             	    if (SHOW_MSG)		HTPrint("Bad command (%s), for list of commands type help\n", this_command);	}    }    MakeCommandLine(lm, is_index);    HT_FREE(the_choice);    /*     ** If we have created a new Request and is to update the history list then    ** we can set the inactive bit on this request object.    */    if (cur_req == req)	cur_context->state |= LM_NO_UPDATE;    else	cur_context->state |= LM_INACTIVE;        return (status==YES) ? HT_OK : HT_ERROR;}/*	readConsole**	-----------**	non-blocking read of the WIN32 console. EGP*/#ifdef WWW_WIN_CONSOLEPUBLIC BOOL readConsole(HANDLE conIn, char* buf, int len, int* pRed){    DWORD recordIndex, bufferIndex, toRead, red;    PINPUT_RECORD pInput;    /* grab the pending input records (keystrokes plus other garbage). */    GetNumberOfConsoleInputEvents(conIn, &toRead);    if (len < (int)toRead)	/* we'll get the rest on the next pass(es). */    toRead = len;    if ((pInput = (PINPUT_RECORD) HT_MALLOC(toRead * sizeof(INPUT_RECORD))) == NULL)	/* room for n input records */	return (FALSE);    ReadConsoleInput(conIn, pInput, toRead, &red);    for (recordIndex = bufferIndex = 0; recordIndex < red; recordIndex++) {	/* grab all keydown events */#if 1        KEY_EVENT_RECORD keyEvent = pInput[recordIndex].Event.KeyEvent;     /* only used if EventType == KEY_EVENT */    	if (pInput[recordIndex].EventType == KEY_EVENT && keyEvent.bKeyDown) {    	    while (keyEvent.wRepeatCount && keyEvent.uChar.AsciiChar) {    		/* stuff the buffer with the keys */    		buf[bufferIndex] = keyEvent.uChar.AsciiChar;    		if (buf[bufferIndex] == '\r')    		    buf[bufferIndex] = '\n';    		if (buf[bufferIndex] == '\b')    		    OutputData(lm->pView, "\b ");    		OutputData(lm->pView, "%c", buf[bufferIndex]);    		bufferIndex++;    		keyEvent.wRepeatCount--;    	    }    	}#else    	if (pInput[recordIndex].EventType == KEY_EVENT && pInput[recordIndex].Event.KeyEvent.bKeyDown) {    	    while (pInput[recordIndex].Event.KeyEvent.wRepeatCount && pInput[recordIndex].Event.KeyEvent.uChar.AsciiChar) {    		/* stuff the buffer with the keys */    		buf[bufferIndex] = pInput[recordIndex].Event.KeyEvent.uChar.AsciiChar;    		if (buf[bufferIndex] == '\r')    		    buf[bufferIndex] = '\n';    		if (buf[bufferIndex] == '\b')    		    OutputData(lm->pView, "\b ");    		OutputData(lm->pView, "%c", buf[bufferIndex]);    		bufferIndex++;    		pInput[recordIndex].Event.KeyEvent.wRepeatCount--;    	    }    	}#endif    }    HT_FREE(pInput);    *pRed = bufferIndex;		/* actual characters stuck into buffer */    return (TRUE);}#endif /* WWW_WIN_CONSOLE *//*	bufferInput**	-----------**	Read available characters from buf into stat. buf maybe bigger or**	smaller than stat.*/PUBLIC int bufferInput (char* buf, int len, SOCKET s, HTRequest * req, HTEventType type){    static char stat[RESPONSE_LENGTH];    static int iStat = 0;    static int ignoreNext = 0;    int iBuf;    for (iBuf = 0; iBuf < len; iBuf++) {	switch (buf[iBuf]) {	    case '\r':	    case '\n':		if (ignoreNext)		    ignoreNext = 0;		else {		    int ret;		    stat[iStat] = 0;		    iStat = 0;		    if ((ret = (*PInputParser)(stat, s, req, type)) != HT_OK)			return (ret);		}		break;	    case '\b':		if (iStat) /* don't worry about ignoreNext as iStat will be 0*/		    iStat--;		break;	    default:		if (!ignoreNext)		    stat[iStat++] = buf[iBuf];	}	if (iStat == sizeof(stat)) {	    HTPrint("Read Console... BUFFER OVERRUN\n");	    iStat = 0;	    ignoreNext = 1;	}    }    return (HT_OK);}/*	timeout_handler**	---------------**	This function is registered to handle timeout in select eventloop*/PRIVATE int timeout_handler (SOCKET s, void * param, HTEventType type){    if (!HTAlert_interactive()) {	HTRequest * req = (HTRequest *) param;	Context * context = (Context *) HTRequest_context(req);	LineMode * lm = context->lm;	if (SHOW_MSG) HTPrint("Request timed out");	HTNet_killAll();	Cleanup(lm, -1);    }    if (HTNet_count() > 0)	if (SHOW_MSG) HTPrint(".");    return 0;}PRIVATE int scan_command (SOCKET s, void * param, HTEventType type){    HTRequest * req = (HTRequest *)param;    /* buf happens to == eatText's buffer but not neccesary */    static char buf[RESPONSE_LENGTH];#ifdef WWW_MSWINDOWS    int red;    int ret;#endif    /* Handle any timeout here */    if (type == HTEvent_TIMEOUT) return timeout_handler (s, param, type);#ifdef WWW_MSWINDOWS    while(1) {#ifdef WWW_WIN_CONSOLE	if (!readConsole((HANDLE)s, buf, sizeof(buf), &red)) {        HTTRACE(PROT_TRACE, "Read Console... READ ERROR\n");	    return HT_ERROR;	}#endif /* WWW_WIN_CONSOLE */	if (!red) return (HT_OK);	ret = bufferInput(buf, red, s, req, type);	if (ret != HT_OK) return (ret);    }#else /* WWW_MSWINDOWS */    if (!fgets(buf, sizeof(buf), stdin))		  /* Read User Input */        return HT_ERROR;				      /* Exit if EOF */    return ((*PInputParser)(buf, s, req, type));#endif /* !WWW_MSWINOWS */}/*	terminate_handler**	-----------------**	This function is registered to handle the result of the request*/PRIVATE int terminate_handler (HTRequest * request, HTResponse * response,			       void * param, int status) {    Context * context = (Context *) HTRequest_context(request);    LineMode * lm;    BOOL is_index;    if (!context)        return HT_OK;    lm = context->lm;    if (context->state == LM_IGNORE) return HT_OK;    if (CSApp_unregisterReq(request) == NO && lm->pCSUser)        HTPrint("PICS request not found\n");    is_index = HTAnchor_isIndex(HTMainAnchor);    if (status == HT_LOADED) {	/* Should we output a command line? */	if (HTAlert_interactive()) {	    HText_setStale(HTMainText);	    MakeCommandLine(lm, is_index);	} else {	    if (lm->flags & LM_REFS) Reference_List(lm, NO);	    Cleanup(lm, 0);	}	/* Record new history if we have not moved around in the old one */	if (context->state & LM_UPDATE)	    HTHistory_replace(lm->history, (HTAnchor *) HTMainAnchor);	/* Now generate the new prompt line as a function of the result */	if (!HText_canScrollDown(HTMainText) &&	    !HTAnchor_hasChildren(HTMainAnchor) && !is_index &&	    (!HTHistory_canBacktrack(lm->history))) {	    return HT_OK;	}    } else { /* No page loaded so sit around and wait for a go command */	/*	was MakeCommandLine(lm, is_index); */	/*	**	stolen from above	*/	if (HTAlert_interactive()) {/*	    HText_setStale(HTMainText); */	    MakeCommandLine(lm, is_index);	} else {	    if (lm->flags & LM_REFS) Reference_List(lm, NO);	    Cleanup(lm, 0);	}    }    context->state |= LM_DONE;    Thread_cleanup(lm);    if (!HTAlert_interactive()) Cleanup(lm, -1);    return HT_OK;}/***	Check the Memory Cache (History list) BEFORE filter**	---------------------------------------------------**	Check if document is already loaded. The user can define whether**	the history list should follow normal expiration or work as a**	traditional history list where expired documents are not updated.**	We don't check for anything but existence proof of a document**	associated with the anchor as the definition is left to the application*/PRIVATE int MemoryCacheFilter (HTRequest * request, void * param, int mode){    HTReload validation = HTRequest_reloadMode(request);    HTParentAnchor * anchor = HTRequest_anchor(request);    void * document = HTAnchor_document(anchor);    /*    **  We only check the memory cache if it's a GET method    */    if (HTRequest_method(request) != METHOD_GET) {	HTTRACE(APP_TRACE, "Mem Cache... We only check GET methods\n");	return HT_OK;    }    /*    **  If we are asked to flush the persistent cache then there is no reason    **  to do anything here - we're flushing it anyway. Also if no document    **  then just exit from this filter.    */    if (!document || validation > HT_CACHE_FLUSH_MEM) {	HTTRACE(APP_TRACE, "Mem Cache... No fresh document...\n");	return HT_OK;    }    /*    **  If we have a document object associated with this anchor then we also    **  have the object in the history list. Depending on what the user asked,    **  we can add a cache validator    */    if (document && validation != HT_CACHE_FLUSH_MEM) {	HTParentAnchor * parent = HTRequest_anchor(request);	HTChildAnchor * child = HTRequest_childAnchor(request);	HText * document =  HTAnchor_document(parent);	HTTRACE(APP_TRACE, "Mem Cache... Document %p already in memory\n" _ document);	/*	**  Make sure that we have selected the HText object. This is normally	**  done by the HText interface but must be repeated here.	*/	if (child && (HTAnchor *) child != (HTAnchor *) parent)	    HText_selectAnchor(document, child);	else	    HText_select(document);	return HT_LOADED;    }    return HT_OK;}/* ------------------------------------------------------------------------- *//*				  MAIN PROGRAM				     *//* ------------------------------------------------------------------------- */int main (int argc, char ** argv){    int		status = 0;	    int		arg;			       		  /* Index into argv */    HTChunk *	keywords = NULL;			/* From command line */    int		keycnt = 0;    HTRequest *	request = NULL;    LineMode *	lm;    char *      picsUser = NULL;#ifndef WWW_WIN_WINDOW    OUTPUT = stdout;#endif    /* Starts Mac GUSI socket library */#ifdef GUSI    GUSISetup(GUSIwithSIOUXSockets);    GUSISetup(GUSIwithInternetSockets);#endif#ifdef __MWERKS__ /* STR */    InitGraf((Ptr) &qd.thePort);     InitFonts();     InitWindows();     InitMenus(); TEInit();     InitDialogs(nil);     InitCursor();    SIOUXSettings.asktosaveonclose = false;    argc=ccommand(&argv);#endif    /* HWL 18/7/94: patch from agl@glas2.glas.apc.org (Anton Tropashko) */#ifdef CYRILLIC    arc.locale=0; arc.encoding=0; arc.i_encoding=0; doinull();#endif#ifdef HT_MEMLOG    HTMemLog_open(DEFAULT_MEMLOG, 8192, YES);    HTTraceData_setCallback(HTMemLog_callback);#endif    /* Initiate W3C Reference Library with a client profile */    HTProfile_newClient(APP_NAME, APP_VERSION);        /* It's confusing to have progress notofications in linemode browser */    HTAlert_deleteOpcode(HT_A_PROGRESS);    /* Add the default HTML parser to the set of converters */    {	HTList * converters = HTFormat_conversion();	HTMLInit(converters);    }    /* Create a new Line Mode object */    lm = LineMode_new();    request = Thread_new(lm, NO, LM_UPDATE);    /* Scan command Line for parameters */    for (arg=1; arg<argc ; arg++) {	if (*argv[arg] == '-') {	    /* - alone => filter */	    if (argv[arg][1] == '\0') {		lm->flags |= LM_FILTER;		HTAlert_setInteractive(NO);	    	    /* non-interactive */	    } else if (!strcmp(argv[arg], "-n")) {		HTAlert_setInteractive(NO);	    /* from -- Initial represntation (only with filter) */	    } else if (!strcmp(argv[arg], "-from")) {		lm->format = (arg+1 < argc && *argv[arg+1] != '-') ?		    HTAtom_for(argv[++arg]) : WWW_HTML;		HTAlert_setInteractive(NO);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩专区一卡二卡| 一区二区三区不卡在线观看| 欧美三级欧美一级| 日韩欧美中文一区二区| 欧美日韩免费观看一区二区三区| 波多野结衣欧美| 99久久精品国产精品久久| heyzo一本久久综合| 成人av动漫在线| 色婷婷综合久色| 欧美午夜理伦三级在线观看| 日韩美女天天操| 欧美mv和日韩mv国产网站| 国产欧美精品国产国产专区| 国产精品欧美经典| 亚洲永久精品大片| 激情综合五月天| 国产一区二区福利| 在线免费亚洲电影| 久久精品日产第一区二区三区高清版| 国产人久久人人人人爽| 国产精品久久久久精k8| 亚洲成av人在线观看| 男人的j进女人的j一区| 成人在线综合网站| 欧美另类久久久品| 1024精品合集| 国产综合久久久久久鬼色| 欧美亚洲国产一卡| 精品欧美乱码久久久久久1区2区| 亚洲日本va午夜在线影院| 免费观看久久久4p| 在线观看一区日韩| 自拍偷拍国产精品| 成人免费视频视频| 国产亚洲成年网址在线观看| 亚洲成年人网站在线观看| 丁香网亚洲国际| 欧美成人精精品一区二区频| 亚洲图片欧美色图| 欧美日韩国产一级| 亚洲妇熟xx妇色黄| 在线精品视频免费播放| 国产精品无遮挡| 成人av电影观看| 亚洲乱码中文字幕综合| 91九色最新地址| 亚洲自拍偷拍综合| 欧美日韩情趣电影| 天天综合日日夜夜精品| 欧美精品九九99久久| 久久97超碰色| 国产日韩亚洲欧美综合| 成人精品免费看| 日韩制服丝袜先锋影音| 精品欧美一区二区久久 | 成人高清视频在线观看| 日韩理论片中文av| 欧美日韩一本到| 国产麻豆精品在线观看| 中文字幕一区二区三区视频| 一本一道久久a久久精品综合蜜臀| 亚洲狠狠丁香婷婷综合久久久| 欧美网站大全在线观看| 国产中文字幕精品| 亚洲福利电影网| 国产精品沙发午睡系列990531| 97se亚洲国产综合在线| 精品一区二区在线看| 成人免费视频在线观看| 日韩一区二区三区在线| 色88888久久久久久影院野外| 国产精品一区二区在线播放 | 国产福利视频一区二区三区| 亚洲综合偷拍欧美一区色| 久久综合九色欧美综合狠狠| 69堂国产成人免费视频| 欧美一区二区三区小说| 欧美精品xxxxbbbb| 欧美日韩黄色影视| 8x福利精品第一导航| 欧美男女性生活在线直播观看| 一本大道久久a久久精二百| 岛国精品在线观看| 国产裸体歌舞团一区二区| 美国毛片一区二区| 国产成人精品一区二| 国产成人av电影免费在线观看| www.av精品| 色偷偷久久人人79超碰人人澡| 从欧美一区二区三区| 不卡大黄网站免费看| 欧美日韩一卡二卡三卡| 欧美日韩久久久| 国产精品色呦呦| 亚洲狠狠丁香婷婷综合久久久| 亚洲国产成人av网| 精品一区二区三区视频在线观看| 国产91综合网| 制服丝袜成人动漫| 国产精品久99| 激情六月婷婷久久| 91成人免费网站| 中文av一区特黄| 亚洲妇女屁股眼交7| 国产999精品久久| 日韩美女一区二区三区四区| 久久精品欧美日韩精品| 天天av天天翘天天综合网| 国产91丝袜在线播放九色| 日韩一级大片在线| 亚洲国产欧美一区二区三区丁香婷| 久久国内精品自在自线400部| 欧美伊人精品成人久久综合97 | 国产成人免费视频网站| 7777精品伊人久久久大香线蕉超级流畅 | 欧美精品一区视频| 奇米在线7777在线精品| 91麻豆swag| 中文字幕综合网| 高清beeg欧美| 国产欧美一区二区三区鸳鸯浴 | 亚洲午夜视频在线观看| 99re这里只有精品6| 国产精品精品国产色婷婷| 国产精品18久久久久久vr| 日韩精品一区二区三区视频在线观看| 亚洲精品你懂的| 欧美最新大片在线看| 亚洲福利视频一区| 精品国产乱码久久久久久久久| 蜜桃一区二区三区在线观看| 91精品国产品国语在线不卡| 日本不卡一区二区三区| 久久久久久久久久美女| 99久久久久久| 亚洲超丰满肉感bbw| 精品国产亚洲在线| 91免费版在线看| 日韩av一区二| 中文字幕第一区综合| 欧美三级三级三级爽爽爽| 精品国产91九色蝌蚪| 国产精品乡下勾搭老头1| 亚洲免费观看在线观看| 欧美一三区三区四区免费在线看| 九色综合狠狠综合久久| |精品福利一区二区三区| 欧美一卡2卡3卡4卡| 99热在这里有精品免费| 美女视频黄免费的久久 | 国产一区二区久久| 亚洲成人免费电影| 亚洲欧美综合色| www久久精品| 国产拍欧美日韩视频二区| 欧美一区二区三区公司| 91亚洲资源网| 成人免费观看男女羞羞视频| 毛片av一区二区三区| 一二三四区精品视频| 中文字幕在线观看不卡| 国产喷白浆一区二区三区| 日韩精品一区二区三区在线播放 | 91亚洲国产成人精品一区二区三 | 六月婷婷色综合| 亚洲成人黄色影院| 一区二区三区中文字幕精品精品| 国产精品丝袜一区| 欧美国产欧美综合| 国产精品无码永久免费888| 久久噜噜亚洲综合| 中文字幕在线不卡视频| 国产精品精品国产色婷婷| 国产欧美日产一区| 亚洲精品成人天堂一二三| 亚洲一区二区三区四区在线观看 | 国产欧美综合在线观看第十页| 国产亚洲人成网站| 亚洲另类在线视频| 日韩中文字幕1| 国产99精品国产| 色女孩综合影院| 欧美伦理视频网站| 中文字幕精品—区二区四季| 亚洲精品第一国产综合野| 婷婷六月综合亚洲| 国产成人8x视频一区二区| 色欧美乱欧美15图片| 欧美成人猛片aaaaaaa| 亚洲人成电影网站色mp4| 美女一区二区三区在线观看| www.av亚洲| 久久久蜜桃精品| 亚洲国产精品视频| 色综合中文字幕| 久久久一区二区三区| 日韩一区欧美二区| 在线免费不卡电影| 中文字幕不卡在线播放|