亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩av成人高清| 久久99精品国产麻豆不卡| 国产精品丝袜在线| 国产清纯在线一区二区www| 久久综合色婷婷| 久久久久久一级片| 久久久久久久久久电影| 精品国产髙清在线看国产毛片| 欧美tickling挠脚心丨vk| 日韩欧美电影一二三| 日韩精品在线一区| 久久先锋资源网| 日本一区二区三区电影| 国产精品丝袜黑色高跟| 亚洲男人天堂av网| 亚洲成人7777| 久久99国产精品久久99果冻传媒| 国产在线精品一区二区不卡了| 国产麻豆精品theporn| 成人黄色在线网站| 色老汉一区二区三区| 欧美日韩中文国产| 欧美zozozo| 国产精品视频你懂的| 亚洲一区视频在线观看视频| 三级久久三级久久久| 国产一区91精品张津瑜| 97久久超碰精品国产| 欧美日韩免费在线视频| 欧美大肚乱孕交hd孕妇| 日本美女一区二区三区视频| 精品无人区卡一卡二卡三乱码免费卡| 国产乱码精品一品二品| 91丨九色丨黑人外教| 91精品国产色综合久久不卡蜜臀 | 成人久久视频在线观看| 色国产综合视频| 日韩亚洲欧美在线| 国产精品视频免费| 日韩黄色小视频| 丁香婷婷深情五月亚洲| 欧美日韩一本到| 久久久精品免费免费| 夜夜嗨av一区二区三区| 久久99精品国产麻豆婷婷| 91免费观看在线| 精品国产第一区二区三区观看体验| 国产精品国产成人国产三级| 日韩av在线播放中文字幕| 成人一区二区视频| 欧美福利一区二区| 国产精品久久久久久福利一牛影视 | 精品免费国产二区三区| 亚洲丝袜自拍清纯另类| 蜜桃精品视频在线观看| 色激情天天射综合网| 精品日韩av一区二区| 亚洲乱码国产乱码精品精98午夜 | √…a在线天堂一区| 蜜桃视频在线一区| 色老汉av一区二区三区| 久久久国产精品午夜一区ai换脸| 亚洲一区二区三区四区不卡| 成人h动漫精品一区二区| 欧美v亚洲v综合ⅴ国产v| 亚洲自拍与偷拍| 成人av网站在线观看| 7777精品伊人久久久大香线蕉经典版下载| 国产精品少妇自拍| 国产一区二区美女诱惑| 88在线观看91蜜桃国自产| 亚洲视频资源在线| 国产.精品.日韩.另类.中文.在线.播放 | 欧美日韩二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 色综合色综合色综合| 久久久91精品国产一区二区精品 | 亚洲综合在线第一页| 高清在线观看日韩| 精品国精品自拍自在线| 天天色天天操综合| 日本丶国产丶欧美色综合| 欧美国产日韩a欧美在线观看| 久久精品国产一区二区| 欧美综合欧美视频| 亚洲黄网站在线观看| voyeur盗摄精品| 国产人妖乱国产精品人妖| 国产米奇在线777精品观看| 欧美一区二区视频网站| 午夜成人免费视频| 91官网在线免费观看| 亚洲色图视频网站| av激情亚洲男人天堂| 国产精品久久网站| 福利电影一区二区三区| 国产亚洲欧美一级| 国产在线一区二区综合免费视频| 欧美高清dvd| 日韩国产高清影视| 日韩一区二区三区三四区视频在线观看| 午夜视频在线观看一区二区| 欧美怡红院视频| 亚洲午夜影视影院在线观看| 欧美制服丝袜第一页| 亚洲精品国产无套在线观| 91麻豆免费看片| 樱花影视一区二区| 欧美午夜视频网站| 亚洲成a人片综合在线| 欧美日韩久久不卡| 麻豆国产91在线播放| 精品国产免费人成在线观看| 国模少妇一区二区三区| 日本一区二区免费在线观看视频| 国产精品资源在线看| 中文字幕国产一区| 99久久婷婷国产综合精品电影| 中文字幕一区二区不卡| 91成人在线免费观看| 天堂影院一区二区| 26uuu国产电影一区二区| 成人手机电影网| 韩国精品久久久| 中文字幕一区视频| 欧美影视一区二区三区| 奇米精品一区二区三区在线观看一| 精品国产乱码久久久久久老虎 | av电影一区二区| 亚洲图片欧美一区| 精品国产三级电影在线观看| 成人一区二区三区在线观看 | 色综合天天做天天爱| 天堂午夜影视日韩欧美一区二区| 日韩欧美一区二区三区在线| 国产91在线观看| 亚洲国产中文字幕| 久久综合久久综合久久| 99视频在线精品| 欧美aa在线视频| 国产精品久久久久久妇女6080| 欧美丝袜丝nylons| 精彩视频一区二区三区| 中文字幕字幕中文在线中不卡视频| 欧美日韩在线电影| 国产成人综合在线播放| 亚洲情趣在线观看| 欧美一级日韩免费不卡| 成人午夜激情影院| 日韩电影一区二区三区四区| 国产精品污网站| 日韩一区二区三区免费观看| av在线播放成人| 免费xxxx性欧美18vr| 中文字幕在线观看不卡视频| 日韩欧美一区在线观看| 91亚洲精品乱码久久久久久蜜桃| 麻豆精品视频在线观看免费| 亚洲欧美综合在线精品| 欧美刺激脚交jootjob| 93久久精品日日躁夜夜躁欧美| 九九**精品视频免费播放| 亚洲色图清纯唯美| 国产亚洲精品aa午夜观看| 欧美高清视频不卡网| 99久久99精品久久久久久| 卡一卡二国产精品| 亚洲一区二区三区小说| 国产精品久久久久久久久动漫 | 日韩高清一区二区| 亚洲欧美激情小说另类| 久久久久国产精品厨房| 日韩三级精品电影久久久| 在线观看91视频| 成a人片国产精品| 国产在线视频不卡二| 日韩国产欧美在线观看| 一区二区国产视频| 亚洲欧洲av色图| 国产精品网站在线| 国产亚洲欧美中文| 337p日本欧洲亚洲大胆色噜噜| 中文在线一区二区| 久久青草国产手机看片福利盒子 | 日韩一二三区不卡| 欧美日韩一区久久| 欧洲亚洲精品在线| 91美女视频网站| 成人的网站免费观看| 国产成人综合在线观看| 国产在线精品一区二区夜色| 全国精品久久少妇| 日韩精品一级二级 | 国产 日韩 欧美大片| 国产一区二区电影| 国产麻豆成人精品| 国产成人免费视频网站| 国产激情视频一区二区在线观看 | 国内国产精品久久| 国产一区二区三区免费播放|