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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? htformat.c

?? www工具包. 這是W3C官方支持的www支撐庫. 其中提供通用目的的客戶端的WebAPI: complete HTTP/1.1 (with caching, pipelining, PUT, POS
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*								     HTFormat.c**	MANAGE DIFFERENT FILE FORMATS****	(c) COPYRIGHT MIT 1995.**	Please first read the full copyright statement in the file COPYRIGH.**	@(#) $Id: HTFormat.c,v 1.100 1999/02/22 22:10:11 frystyk Exp $**** Bugs:**	Assumes the incoming stream is ASCII, rather than a local file**	format, and so ALWAYS converts from ASCII on non-ASCII machines.**	Therefore, non-ASCII machines can't read local files.**** HISTORY:**	8 Jul 94  FM	Insulate free from _free structure element.**	8 Nov 94  HFN	Changed a lot to make reentrant*//* Library Include files */#include "wwwsys.h"#include "WWWUtil.h"#include "HTStream.h"#include "HTWWWStr.h"#include "HTFWrite.h"#include "HTError.h"#include "HTFormat.h"					 /* Implemented here */#define NO_VALUE_FOUND	-1e30		 /* Stream Stack Value if none found */PRIVATE HTList * HTConversions = NULL;			    /* Content types */PRIVATE HTList * HTContentCoders = NULL;		   /* Content coders */PRIVATE HTList * HTTransferCoders = NULL;	  /* Content transfer coders */PRIVATE HTList * HTCharsets = NULL;PRIVATE HTList * HTLanguages = NULL;PRIVATE double HTMaxSecs = 1e10;		/* No effective limit */PRIVATE HTConverter * presentation_converter = NULL;struct _HTStream {    const HTStreamClass *	isa;};struct _HTCoding {    HTEncoding		encoding;    HTCoder *		encoder;    HTCoder *		decoder;    double		quality;};PRIVATE HTStream	HTBaseConverterStreamInstance;/* ------------------------------------------------------------------------- *//*				BASIC CONVERTERS			     *//* ------------------------------------------------------------------------- */PRIVATE int HTBlackHoleConverter_put_character (HTStream * me, char c){    return HT_OK;}PRIVATE int HTBlackHoleConverter_put_string (HTStream * me, const char * s){    return HT_OK;}PRIVATE int HTBlackHoleConverter_write (HTStream * me, const char * s, int l){    return HT_OK;}PRIVATE int HTBlackHoleConverter_flush (HTStream * me){    return HT_OK;}PRIVATE int HTBlackHoleConverter_free (HTStream * me){    return HT_OK;}PRIVATE int HTBlackHoleConverter_abort (HTStream * me, HTList * e){    return HT_ERROR;}PRIVATE const HTStreamClass HTBlackHoleConverterClass ={		    "BlackHoleConverter",    HTBlackHoleConverter_flush,    HTBlackHoleConverter_free,    HTBlackHoleConverter_abort,    HTBlackHoleConverter_put_character,    HTBlackHoleConverter_put_string,    HTBlackHoleConverter_write}; PUBLIC HTStream * HTBlackHoleConverter (HTRequest *	request,					void *		param,					HTFormat	input_format,					HTFormat	output_format,					HTStream *	output_stream){    HTTRACE(STREAM_TRACE, "BlackHole... Converter Created\n");    HTBaseConverterStreamInstance.isa = &HTBlackHoleConverterClass;    return &HTBaseConverterStreamInstance;}/*	HTThroughLine**	-------------**** This function is a dummy function that returns the same output stream** as given as a parameter. Henrik 01/03-94*/PUBLIC HTStream* HTThroughLine (HTRequest *	request,				void *		param,				HTFormat	input_format,				HTFormat	output_format,				HTStream *	output_stream){    return output_stream;}/*	HTSaveConverter**** This function is a place holder for a save to local file converter*/PUBLIC HTStream * HTSaveConverter (HTRequest *	request,				   void *	param,				   HTFormat	input_format,				   HTFormat	output_format,				   HTStream *	output_stream){    return HTBlackHole();}PUBLIC HTStream * HTIdentityCoding (HTRequest *	request,				    void *	param,				    HTEncoding	coding,				    HTStream *	output_stream){    return output_stream;}/***	For all `accept lists' there is a local list and a global list. The**	local list is a part of the request structure and the global list is**	internal to the HTFormat module. The global lists can be used when**	specifying accept lists for ALL requests and the local list can be **	used to add specific accept headers to the request.*//* ------------------------------------------------------------------------- *//* 	  			CONTENT TYPES				     *//* ------------------------------------------------------------------------- */PUBLIC void HTPresentation_setConverter (HTConverter * pconv){    presentation_converter = pconv;}PUBLIC HTConverter * HTPresentation_converter (void){    return presentation_converter;}/*	Define a presentation system command for a content-type**	-------------------------------------------------------** INPUT:**	conversions:	The list of conveters and presenters**	representation:	the MIME-style format name**	command:	the MAILCAP-style command template**	quality:	A degradation faction [0..1]**	maxbytes:	A limit on the length acceptable as input (0 infinite)**	maxsecs:	A limit on the time user will wait (0 for infinity)*/PUBLIC void HTPresentation_add (HTList *	conversions,				const char *	representation,				const char *	command,				const char *	test_command,				double		quality,				double		secs, 				double		secs_per_byte){    HTPresentation * pres;    if (presentation_converter) {	if ((pres = (HTPresentation  *) HT_CALLOC(1,sizeof(HTPresentation))) == NULL)	    HT_OUTOFMEM("HTSetPresentation");        pres->rep = HTAtom_for(representation);	pres->rep_out = WWW_PRESENT;		/* Fixed for now ... :-) */	pres->converter = presentation_converter;	pres->quality = quality;	pres->secs = secs;	pres->secs_per_byte = secs_per_byte;	pres->rep = HTAtom_for(representation);	pres->command = NULL;	StrAllocCopy(pres->command, command);	pres->test_command = NULL;	StrAllocCopy(pres->test_command, test_command);	HTTRACE(CORE_TRACE, "Presentation Adding `%s\' with quality %.2f\n" _ 		    command _ quality);	HTList_addObject(conversions, pres);    }}PUBLIC void HTPresentation_deleteAll (HTList * list){    if (list) {	HTList *cur = list;	HTPresentation *pres;	while ((pres = (HTPresentation*) HTList_nextObject(cur))) {	    HT_FREE(pres->command);	    HT_FREE(pres);	}	HTList_delete(list);    }}/*	Define a built-in function for a content-type**	---------------------------------------------*/PUBLIC void HTConversion_add (HTList *		conversions,			      const char *	representation_in,			      const char *	representation_out,			      HTConverter *	converter,			      double		quality,			      double		secs, 			      double		secs_per_byte){    HTPresentation * pres;    if ((pres = (HTPresentation*) HT_CALLOC(1,sizeof(HTPresentation))) == NULL)        HT_OUTOFMEM("HTSetPresentation");    pres->rep = HTAtom_for(representation_in);    pres->rep_out = HTAtom_for(representation_out);    pres->converter = converter;    pres->command = NULL;		/* Fixed */    pres->test_command = NULL;    pres->quality = quality;    pres->secs = secs;    pres->secs_per_byte = secs_per_byte;    HTTRACE(CORE_TRACE, "Conversions. Adding %p with quality %.2f\n" _ 		converter _ quality);    HTList_addObject(conversions, pres);}PUBLIC void HTConversion_deleteAll (HTList * list){    HTPresentation_deleteAll(list);}/* ------------------------------------------------------------------------- *//*		CONTENT ENCODING AND CONTENT TRANSFER ENCODING 		     *//* ------------------------------------------------------------------------- */PUBLIC BOOL HTCoding_add (HTList * 	list,			  const char *	encoding,			  HTCoder *	encoder,			  HTCoder *	decoder,			  double	quality){    if (list && encoding && (encoder || decoder)) {	HTCoding * me;	if ((me = (HTCoding *) HT_CALLOC(1, sizeof(HTCoding))) == NULL)	    HT_OUTOFMEM("HTCoding_add");	me->encoding = HTAtom_for(encoding);	me->encoder = encoder;	me->decoder = decoder;	me->quality = quality;	HTTRACE(CORE_TRACE, "Codings..... Adding %s with quality %.2f\n" _ 		    encoding _ quality);	return HTList_addObject(list, (void *) me);    }    HTTRACE(CORE_TRACE, "Codings..... Bad argument\n");    return NO;}PUBLIC void HTCoding_deleteAll (HTList * list){    if (list) {	HTList * cur = list;	HTCoding * pres;	while ((pres = (HTCoding *) HTList_nextObject(cur)))	    HT_FREE(pres);	HTList_delete(list);    }}PUBLIC const char * HTCoding_name (HTCoding * me){    return me ? HTAtom_name(me->encoding) : NULL;}PUBLIC double HTCoding_quality (HTCoding * me){    return me ? me->quality : 0.0;}/* ------------------------------------------------------------------------- *//* 	  			CONTENT LANGUAGE			     *//* ------------------------------------------------------------------------- */PUBLIC void HTLanguage_add (HTList *		list,			    const char *	lang,			    double		quality){    HTAcceptNode * node;    if (!list || !lang || !*lang)  {	HTTRACE(CORE_TRACE, "Languages... Bad argument\n");	return;    }    if ((node = (HTAcceptNode *) HT_CALLOC(1, sizeof(HTAcceptNode))) == NULL)        HT_OUTOFMEM("HTAcceptLanguage");    HTList_addObject(list, (void*)node);    node->atom = HTAtom_for(lang);    node->quality = quality;}PUBLIC void HTLanguage_deleteAll (HTList * list){    if (list) {	HTList *cur = list;	HTAcceptNode *pres;	while ((pres = (HTAcceptNode *) HTList_nextObject(cur))) {	    HT_FREE(pres);	}	HTList_delete(list);    }}/* ------------------------------------------------------------------------- *//* 	  			CONTENT CHARSET				     *//* ------------------------------------------------------------------------- */PUBLIC void HTCharset_add (HTList *		list,			   const char *		charset,			   double		quality){    HTAcceptNode * node;    if (!list || !charset || !*charset)  {	HTTRACE(CORE_TRACE, "Charset..... Bad argument\n");	return;    }    if ((node = (HTAcceptNode *) HT_CALLOC(1, sizeof(HTAcceptNode))) == NULL)        HT_OUTOFMEM("HTAcceptCharsetuage");    HTList_addObject(list, (void*)node);    node->atom = HTAtom_for(charset);    node->quality = quality;}PUBLIC void HTCharset_deleteAll (HTList * list){    if (list) {	HTList *cur = list;	HTAcceptNode *pres;	while ((pres = (HTAcceptNode *) HTList_nextObject(cur))) {	    HT_FREE(pres);	}	HTList_delete(list);    }}/* ------------------------------------------------------------------------- *//* 			GLOBAL LIST OF CONVERTERS ETC.			     *//* ------------------------------------------------------------------------- *//***	Global Accept Format Types Conversions**	list can be NULL*/PUBLIC void HTFormat_setConversion (HTList * list){    HTConversions = list;}PUBLIC HTList * HTFormat_conversion (void){    return HTConversions;}PUBLIC void HTFormat_addConversion (const char *	input_format,				    const char *	output_format,				    HTConverter *	converter,				    double		quality,				    double		secs, 				    double		secs_per_byte){    if (!HTConversions) HTConversions = HTList_new();    HTConversion_add(HTConversions, input_format, output_format,		     converter, quality, secs, secs_per_byte);}/***	Global list of Content Encodings**	list can be NULL*/PUBLIC void HTFormat_setContentCoding (HTList *list){    HTContentCoders = list;}PUBLIC HTList * HTFormat_contentCoding (void){    return HTContentCoders;}PUBLIC BOOL HTFormat_addCoding ( char *		encoding,				 HTCoder *	encoder,				 HTCoder *	decoder,				 double		quality){    if (!HTContentCoders) HTContentCoders = HTList_new();    return HTCoding_add(HTContentCoders, encoding, encoder, decoder, quality);}/***	Global list of Content Transfer Encodings**	list can be NULL*/PUBLIC void HTFormat_setTransferCoding (HTList *list){    HTTransferCoders = list;}PUBLIC HTList * HTFormat_transferCoding (void){    return HTTransferCoders;}PUBLIC BOOL HTFormat_addTransferCoding ( char *		encoding,					 HTCoder *	encoder,					 HTCoder *	decoder,					 double		quality){    if (!HTTransferCoders) HTTransferCoders = HTList_new();    return HTCoding_add(HTTransferCoders, encoding, encoder, decoder, quality);}/***	Global Accept Languages**	list can be NULL*/PUBLIC void HTFormat_setLanguage (HTList *list){    HTLanguages = list;}PUBLIC HTList * HTFormat_language (void){    return HTLanguages;}/***	Global Accept Charsets**	list can be NULL*/PUBLIC void HTFormat_setCharset (HTList *list){

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线一区二区| 久久综合精品国产一区二区三区| 欧美久久久影院| 国产午夜精品一区二区三区嫩草| 一区二区三区中文字幕| 韩国毛片一区二区三区| 日本韩国精品在线| 国产日韩欧美在线一区| 石原莉奈一区二区三区在线观看 | 91女人视频在线观看| 91精品啪在线观看国产60岁| 亚洲美女视频在线| 国产mv日韩mv欧美| 久久夜色精品国产噜噜av | 亚洲欧洲成人av每日更新| 蜜臀av性久久久久蜜臀av麻豆| 91蜜桃免费观看视频| 国产欧美一区二区三区鸳鸯浴 | 亚洲国产va精品久久久不卡综合| 不卡av在线网| 国产欧美精品区一区二区三区 | 2021国产精品久久精品| 日韩电影一区二区三区| 欧美视频在线观看一区二区| 亚洲欧美怡红院| 午夜天堂影视香蕉久久| 91成人免费电影| 一区二区三区电影在线播| av成人老司机| 国产精品久久久久一区二区三区共| 国产美女精品在线| 欧美精品一区二| 黑人精品欧美一区二区蜜桃| 精品国产免费人成电影在线观看四季| 日本视频一区二区| 91精品国产综合久久精品性色| 丝袜亚洲另类欧美综合| 欧美人伦禁忌dvd放荡欲情| 亚洲第一福利视频在线| 欧美久久久久免费| 日韩国产精品91| 欧美刺激午夜性久久久久久久| 三级欧美在线一区| 日韩精品中文字幕在线不卡尤物 | 色悠悠久久综合| 亚洲综合丝袜美腿| 欧美肥妇毛茸茸| 久久精品国产99久久6| 久久久精品免费观看| 9色porny自拍视频一区二区| 亚洲美女淫视频| 欧美人动与zoxxxx乱| 精彩视频一区二区三区| 国产亚洲一区字幕| 色综合天天天天做夜夜夜夜做| 亚洲一区二区三区四区在线观看 | 欧美影视一区在线| 免费一区二区视频| 欧美国产一区在线| 在线观看av一区二区| 免费成人在线影院| 国产精品久久久久影视| 欧美日韩国产三级| 国产精品一级黄| 麻豆成人av在线| 中文字幕在线观看不卡| 欧美人牲a欧美精品| 国产成人av影院| 亚洲bt欧美bt精品777| 久久夜色精品一区| 精品视频在线免费看| 国产精品一二二区| 亚洲高清不卡在线观看| 日本一区二区三区四区在线视频 | av资源网一区| 一个色综合av| 欧美激情一区在线观看| 在线不卡一区二区| 91在线精品一区二区| 美女看a上一区| 亚洲一区二区三区四区中文字幕| 久久久国产午夜精品| 7777精品久久久大香线蕉| www.综合网.com| 精品一区二区久久久| 亚洲一区在线视频观看| 国产精品第一页第二页第三页| 日韩片之四级片| 欧美三级韩国三级日本一级| 成人黄色在线视频| 精品一二三四区| 日日摸夜夜添夜夜添国产精品| 亚洲欧美在线aaa| 中文字幕巨乱亚洲| 久久久久久久久久久久久久久99 | 欧美精品一级二级| 成人av在线电影| 国产另类ts人妖一区二区| 日韩高清不卡在线| 亚洲午夜影视影院在线观看| 亚洲天堂免费看| 欧美国产精品一区二区| 久久伊人蜜桃av一区二区| 日韩精品一区二区三区四区视频| 欧美午夜精品一区二区三区| 99久久777色| 成人毛片老司机大片| 国产精品一区二区果冻传媒| 久久99国产精品麻豆| 日韩高清一区在线| 美女被吸乳得到大胸91| 免费成人在线视频观看| 亚洲成av人**亚洲成av**| 亚洲一区在线免费观看| 亚洲一区中文在线| 午夜电影网亚洲视频| 午夜精品免费在线观看| 婷婷丁香激情综合| 美女一区二区视频| 久久99国产精品麻豆| 国产露脸91国语对白| 成人午夜视频在线| 高清成人在线观看| 91视频在线看| 欧洲一区二区三区在线| 欧美男男青年gay1069videost | 国产精品国产精品国产专区不片 | 国产日韩影视精品| 日韩理论片中文av| 亚洲一本大道在线| 日韩电影免费一区| 国产成人一区在线| 91视频91自| 欧美三级欧美一级| 久久综合狠狠综合久久综合88| 国产亚洲精品中文字幕| 日韩一区中文字幕| 亚洲超碰精品一区二区| 国产在线一区二区| kk眼镜猥琐国模调教系列一区二区| 色综合久久综合网欧美综合网| 欧美三级乱人伦电影| 欧美精品一区二区三区很污很色的| 国产亚洲精品超碰| 一区二区三区日本| 黄色日韩网站视频| 一本色道久久综合亚洲精品按摩 | 色妞www精品视频| 91精品在线一区二区| 国产亚洲欧美色| 亚洲第一主播视频| 国产精品中文有码| 欧美日韩一区二区三区不卡 | 国产宾馆实践打屁股91| 色婷婷精品大在线视频| 日韩精品中文字幕一区| 亚洲欧洲综合另类在线| 婷婷国产在线综合| 成人开心网精品视频| 7777精品伊人久久久大香线蕉| 国产精品理论片在线观看| 日韩专区在线视频| 91免费看片在线观看| 久久综合九色综合欧美98| 午夜精品一区二区三区免费视频| 国产jizzjizz一区二区| 678五月天丁香亚洲综合网| 国产精品久久久久三级| 毛片av中文字幕一区二区| 色天天综合色天天久久| 久久久久久久久久电影| 视频在线观看国产精品| 9l国产精品久久久久麻豆| 26uuu成人网一区二区三区| 亚洲国产成人精品视频| 99久久精品国产精品久久| 精品国精品国产尤物美女| 午夜一区二区三区在线观看| 99久久er热在这里只有精品66| 久久久久久免费毛片精品| 青青国产91久久久久久| 欧美曰成人黄网| 亚洲女与黑人做爰| a在线播放不卡| 国产精品丝袜91| 国产福利精品一区二区| 欧美精品一区二区在线观看| 午夜精品久久久久久久久 | 91丨porny丨国产| 中文字幕成人av| 成人免费黄色在线| 中文字幕巨乱亚洲| 懂色av一区二区三区蜜臀| 久久综合九色欧美综合狠狠| 国内精品伊人久久久久影院对白| 欧美精品一级二级三级| 青青草原综合久久大伊人精品优势| 8x福利精品第一导航| 日精品一区二区| 日韩一区二区三区四区|