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

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

?? zip.cpp

?? zip解壓源碼.
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
#include "stdafx.h"
#include <sys/stat.h>
#include <ctype.h>
#include <errno.h>

#include "zipsha.h"
#include "revision.h"
#include "tailor.h"

#include "Zip.h"
#include "ZipDate.h"

//bits.cpp--------------------------------
typedef struct config {
   ush good_length; /* reduce lazy search above this match length */
   ush max_lazy;    /* do not perform lazy search above this match length */
   ush nice_length; /* quit search above this match length */
   ush max_chain;
} config;

local config configuration_table[10] = {
/*      good lazy nice chain */
/* 0 */ {0,    0,  0,    0},  /* store only */
/* 1 */ {4,    4,  8,    4},  /* maximum speed, no lazy matches */
/* 2 */ {4,    5, 16,    8},
/* 3 */ {4,    6, 32,   32},

/* 4 */ {4,    4, 16,   16},  /* lazy matches */
/* 5 */ {8,   16, 32,   32},
/* 6 */ {8,   16, 128, 128},
/* 7 */ {8,   32, 128, 256},
/* 8 */ {32, 128, 258, 1024},
/* 9 */ {32, 258, 258, 4096}}; /* maximum compression */


//////////////////////////////////////////////////
local int extra_lbits[LENGTH_CODES] /* extra bits for each length code */
   = {0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0};

local int extra_dbits[D_CODES] /* extra bits for each distance code */
   = {0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13};

local int extra_blbits[BL_CODES]/* extra bits for each bit length code */
   = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7};

extern ulg __crc_32_tab[];

//part1-----------------------------------------------
#define source1 zipdate-> source1 
#define dest1 zipdate-> dest1 
#define sourceLen1 zipdate-> sourceLen1 
#define destLen1 zipdate-> destLen1 
#define inSize zipdate-> inSize 
#define outSize zipdate-> outSize
#define errorNumber zipdate->errorNumber

#define crc zipdate-> crc 
#define static_crc zipdate-> static_crc 
#define header_bytes zipdate-> header_bytes 
#define verbose zipdate-> verbose 
#define level zipdate-> level 
#define bytes_in zipdate-> bytes_in 
#define bytes_out zipdate-> bytes_out
#define insize zipdate-> insize
#define inptr zipdate-> inptr
#define outcnt zipdate-> outcnt
//part2----------------------------------------
//bits
#define bi_buf zipdate-> bi_buf
#define bi_valid zipdate-> bi_valid
//tree
#define file_type zipdate-> file_type
#define bl_count zipdate-> bl_count
#define bl_order zipdate-> bl_order
#define heap zipdate-> heap
#define heap_len  zipdate-> heap_len 
#define heap_max zipdate-> heap_max
#define depth zipdate-> depth
#define length_code zipdate-> length_code
#define dist_code zipdate-> dist_code
#define base_length zipdate-> base_length
#define base_dist zipdate-> base_dist
#define flag_buf zipdate-> flag_buf
#define last_lit  zipdate-> last_lit 
#define last_dist zipdate-> last_dist
#define last_flags zipdate-> last_flags
#define flags zipdate-> flags
#define flag_bit zipdate-> flag_bit
#define opt_len zipdate-> opt_len 
#define static_len zipdate-> static_len
#define compressed_len zipdate-> compressed_len
#define input_len zipdate-> input_len
//part3-----------------------------------------------------
//deflate
#define block_start zipdate-> block_start
#define strstart zipdate-> strstart
#define window_size zipdate-> window_size
#define nice_match zipdate-> nice_match
#define match_start zipdate-> match_start
#define prev_length zipdate-> prev_length
#define max_chain_length zipdate-> max_chain_length
#define good_match zipdate-> good_match
#define ins_h zipdate-> ins_h
#define eofile zipdate-> eofile
#define lookahead zipdate-> lookahead
#define max_lazy_match zipdate-> max_lazy_match
//part4-----------------------------------------------------
#define dyn_ltree zipdate-> dyn_ltree
#define dyn_dtree zipdate-> dyn_dtree
#define static_ltree zipdate-> static_ltree
#define static_dtree zipdate-> static_dtree
#define bl_tree zipdate-> bl_tree
#define l_desc zipdate-> l_desc
#define d_desc zipdate-> d_desc
#define bl_desc zipdate-> bl_desc

#define inbuf zipdate-> inbuf
#define outbuf zipdate-> outbuf
#define d_buf zipdate-> d_buf
#define window zipdate-> window
#ifndef MAXSEG_64K
//	#define tab_prefix zipdate-> tab_prefix
	#define prev zipdate->prev
#else
	#define tab_prefix0 zipdate-> tab_prefix0
	#define prev zipdate->prev
	#define tab_prefix1 zipdate-> tab_prefix1
	#define head zipdate->tab_prefix1
#endif
//part5------------------------------------------
//gzip
extern DWORD ZipMain(ZipDate* zipdate);
extern int read_buf(ZipDate* zipdate,char *buf,  unsigned size);
extern ulg  updcrc(ZipDate* zipdate,uch *s, unsigned n);
extern void flush_outbuf(ZipDate* zipdate);
extern void write_buf(ZipDate* zipdate,voidp buf, unsigned cnt);
extern UINT Read(ZipDate* zipdate,char *buf,UINT size);
extern UINT Write(ZipDate* zipdate,char *buf,UINT size);

//deflate
extern void fill_window(ZipDate* zipdate);
extern int  longest_match(ZipDate* zipdate,IPos cur_match);
extern void lm_init(ZipDate* zipdate,int pack_level);
extern ulg  deflate(ZipDate* zipdate);

//tree------------------
//	
extern void ct_init(ZipDate* zipdate);
extern int  ct_tally(ZipDate* zipdate,int dist, int lc);
extern ulg  flush_block(ZipDate* zipdate,char *buf, ulg stored_len, int eof);
extern void init_block(ZipDate* zipdate);
extern void pqdownheap(ZipDate* zipdate,ct_data *tree, int k);
extern void gen_bitlen(ZipDate* zipdate,tree_desc *desc);
extern void gen_codes(ZipDate* zipdate,ct_data *tree, int max_code);
extern void build_tree(ZipDate* zipdate,tree_desc  *desc);
extern void scan_tree(ZipDate* zipdate,ct_data *tree, int max_code);
extern void send_tree(ZipDate* zipdate,ct_data *tree, int max_code);
extern int  build_bl_tree(ZipDate* zipdate);
extern void send_all_trees(ZipDate* zipdate,int lcodes, int dcodes, int blcodes);
extern void compress_block(ZipDate* zipdate,ct_data *ltree, ct_data *dtree);
extern void set_file_type(ZipDate* zipdate);
////////////////
//bits
extern void     bi_init(ZipDate* zipdate);
extern void     send_bits(ZipDate* zipdate,int value, int length);
extern unsigned bi_reverse(ZipDate* zipdate,unsigned value, int length);
extern void     bi_windup(ZipDate* zipdate);
extern void     copy_block(ZipDate* zipdate,char *buf, unsigned len, int header);

//part6------------------------------------------

void ZipDate_init(ZipDate* zipdate)
{
	tree_desc desc1={dyn_ltree, static_ltree, extra_lbits, LITERALS+1, L_CODES, MAX_BITS, 0};
	l_desc =desc1;
	tree_desc desc2={dyn_dtree, static_dtree, extra_dbits, 0,          D_CODES, MAX_BITS, 0};
	d_desc =desc2;
	tree_desc desc3={bl_tree, (ct_data near *)0, extra_blbits, 0,      BL_CODES, MAX_BL_BITS, 0};
	bl_desc =desc3;
	uch bl_order1[BL_CODES]  = {16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15};
	for(int i=0;i<BL_CODES;i++)	bl_order[i]= bl_order1[i];

}

/* ======================================================================== */
DWORD ZipMain(ZipDate* zipdate)
{	
	inSize=outSize=0;
	errorNumber=0;
	
	ZipDate_init(zipdate);
	verbose = 0;
	window_size = (ulg)2*WSIZE;
	level = 6;
	file_type = 0;          /* ascii/binary flag */
    outcnt = 0;
	insize = inptr = 0;
	bytes_in = bytes_out = 0L;
	static_crc=(ulg)0xffffffffL;

	/* Write the header to the gzip file. See algorithm.doc for the format */
	put_byte(GZIP_MAGIC[0]); /* magic header */
	put_byte(GZIP_MAGIC[1]);
	put_byte(DEFLATED);      /* compression method */
	crc = updcrc( zipdate,0, 0);
	bi_init( zipdate);
	ct_init( zipdate);
	lm_init( zipdate,level);
	header_bytes = (long)outcnt;
	deflate( zipdate);
	put_long(crc);
	put_long(isize);
	header_bytes += 2*sizeof(long);
	flush_outbuf(zipdate);

	if(errorNumber!=0) return -2;

	if(destLen1<outSize)return 0;
	return DEFLATED;
}

/* ===========================================================================
 * Read a new buffer from the current input file, perform end-of-line
 * translation, and update the crc and input file size.
 * IN assertion: size >= 2 (for end-of-line translation)
 */
int read_buf(ZipDate* zipdate,char* buf, unsigned size)
{
    unsigned len;

	len = Read( zipdate, buf, size);

    if (len == (unsigned)(-1) || len == 0) return (int)len;

    crc = updcrc( zipdate,(uch*)buf, len);
    isize += (ulg)len;
    return (int)len;
}

/* ===========================================================================
 * Run a set of bytes through the crc shift register.  If s is a NULL
 * pointer, then initialize the crc shift register contents instead.
 * Return the current crc in either case.
 */
ulg updcrc(ZipDate* zipdate,	uch *	 s,                 /* pointer to bytes to pump through */
			unsigned n)             /* number of bytes in s[] */
{
    register ulg c;         /* temporary variable */

//    static ulg crc = (ulg)0xffffffffL; /* shift register contents */

    if (s == NULL) {
	c = 0xffffffffL;
    } else {
	c = static_crc;
        if (n) do {
            c = __crc_32_tab[((int)c ^ (*s++)) & 0xff] ^ (c >> 8);
        } while (--n);
    }
    static_crc = c;
    return c ^ 0xffffffffL;       /* (instead of ~c for 64-bit machines) */
}

/* ===========================================================================
 * Write the output buffer outbuf[0..outcnt-1] and update bytes_out.
 * (used for the compressed data only)
 */
void flush_outbuf(ZipDate* zipdate)
{
    if (outcnt == 0) return;

    write_buf( zipdate,(char *)outbuf, outcnt);
    bytes_out += (ulg)outcnt;
    outcnt = 0;
}

/* ===========================================================================
 * Does the same as write(), but also handles partial pipe writes and checks for error return.
 */
void write_buf(ZipDate* zipdate,	voidp     buf,		unsigned  cnt)
{
    unsigned  n;
    n = Write( zipdate, buf, cnt);
	cnt -= n;
	buf = (voidp)((char*)buf+n);
}

UINT Read(ZipDate* zipdate,char *buf,UINT size)
{
	UINT i,size0;
	DWORD temp;
	char *p1;
	BYTE *p2;
	p1=buf;		p2=source1+inSize;


	if(sourceLen1>inSize)
	{	temp=sourceLen1-inSize;
		size0=size;
		if(temp<size)size0=temp;
		if(inSize+size0<inSize)
		{	errorNumber=1;
			return EOF;
		}

		i=0;
		while(i<size0)
		{	
			*p1++=*p2++;
			i++;
		}
		inSize+=size0;
		return size0;
	}
	else
		return EOF;
}

UINT Write(ZipDate* zipdate,char *buf,UINT size)
{
	UINT i,size0;
	DWORD temp;
	char *p1;
	BYTE *p2;
	p1=buf;		p2=dest1+outSize;

	if(outSize+size<outSize)
	{	errorNumber=2;
		return size;
	}

	if(destLen1>outSize)
	{
		temp=destLen1-outSize;
		size0=size;
		if(temp<size)	size0=temp;
		i=0;
		while(i<size0)
		{	*p2++=*p1++;
			i++;
		}
	}
	outSize+=size;
	return size;
}

//===============================================
//#include "Bits.h"
/* =========Initialize the bit string routines.===================*/
void bi_init (ZipDate* zipdate) /* output zip file, NO_FILE for in-memory compression */
{
    bi_buf = 0;
    bi_valid = 0;
}

/* =======================================*/
void send_bits(ZipDate* zipdate,	int value,  /* value to send */
				int length) /* number of bits */
{
    /* If not enough room in bi_buf, use (valid) bits from bi_buf and
     * (16 - bi_valid) bits from value, leaving (width - (16-bi_valid))
     * unused bits in value.
     */
    if (bi_valid > (int)Buf_size - length) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美高清视频不卡网| 91黄色免费版| 成人动漫一区二区在线| 成人激情综合网站| 91色.com| 日韩三级在线免费观看| 国产日韩视频一区二区三区| 污片在线观看一区二区| 国产黑丝在线一区二区三区| 91精品欧美久久久久久动漫| 久久色视频免费观看| 亚洲黄网站在线观看| 国产麻豆成人传媒免费观看| 99国产欧美另类久久久精品| 91精品国产入口在线| 亚洲欧洲av色图| 国产在线精品视频| 日韩一区二区麻豆国产| 亚洲黄网站在线观看| 不卡电影一区二区三区| 久久久亚洲精品石原莉奈| 日韩中文字幕av电影| 一本久久a久久精品亚洲| 久久亚洲综合色| 日韩激情在线观看| 欧美视频在线观看一区二区| 国产视频亚洲色图| 麻豆成人免费电影| 欧美电影一区二区| 亚洲成人在线网站| 在线中文字幕一区二区| 国产精品久久久久久久裸模| 伦理电影国产精品| 91精品国产色综合久久ai换脸| 一区二区高清在线| 99国产欧美另类久久久精品| 中文字幕一区二区三区蜜月| 成人激情开心网| 国产亲近乱来精品视频| 大陆成人av片| 中文字幕一区二区三区不卡在线| 成人免费视频app| 亚洲欧洲99久久| 色综合久久久久久久| 亚洲精品中文字幕在线观看| 色哟哟国产精品| 亚洲成人一区二区| 日韩一级高清毛片| 日本精品裸体写真集在线观看 | 中文字幕高清一区| 92国产精品观看| 亚洲欧美日韩国产成人精品影院 | 精品制服美女久久| 欧美国产日韩一二三区| 99精品视频一区二区| 一区二区三区蜜桃| 538在线一区二区精品国产| 亚洲成人一区二区在线观看| 精品国产免费久久| gogo大胆日本视频一区| 日日骚欧美日韩| 国产喷白浆一区二区三区| 在线精品视频免费观看| 精品亚洲porn| 亚洲综合小说图片| 精品国产a毛片| 欧美伊人久久大香线蕉综合69 | 久久精品人人做人人综合| 日本精品视频一区二区| 老色鬼精品视频在线观看播放| 久久理论电影网| 91极品美女在线| 国产精品综合一区二区三区| 天天综合色天天综合色h| 精品国产区一区| 91精品国产综合久久香蕉的特点| 久久免费的精品国产v∧| 欧美日韩久久一区二区| 99久久综合色| 精品一区二区三区免费视频| 亚洲国产综合在线| 亚洲视频 欧洲视频| 日本一区二区不卡视频| 2020国产精品| 精品三级av在线| 欧美不卡一区二区三区四区| 欧美日韩高清一区二区| 色综合久久久久网| 99久久99久久精品免费观看| 国产不卡免费视频| 狠狠色狠狠色综合日日91app| 日韩不卡一区二区三区| 亚洲综合色成人| 国产精品毛片久久久久久久| 久久蜜桃av一区二区天堂 | 成人一区二区三区视频在线观看| 激情图区综合网| 蜜臀av国产精品久久久久| 日韩av一区二区在线影视| 视频一区视频二区中文| 日本怡春院一区二区| 蜜臀a∨国产成人精品| 久久99精品视频| 国产剧情av麻豆香蕉精品| 国产成人综合在线| 成人黄色免费短视频| 国产高清无密码一区二区三区| 麻豆精品在线观看| 国产成人精品亚洲777人妖| 风流少妇一区二区| 在线国产电影不卡| 精品国产自在久精品国产| 国产香蕉久久精品综合网| 亚洲同性gay激情无套| 亚洲一区二区视频| 久久99精品久久久| 国产成人精品免费| 色婷婷精品久久二区二区蜜臂av| 91国偷自产一区二区三区成为亚洲经典 | 丁香六月久久综合狠狠色| 国产98色在线|日韩| 国产成人在线看| 99久久精品免费看国产| 日韩午夜激情电影| 26uuu精品一区二区| 亚洲激情图片小说视频| 蜜桃一区二区三区在线观看| 国产九色精品成人porny| 色美美综合视频| 久久久国产午夜精品| 一区二区三区av电影| 日韩av午夜在线观看| 99久久亚洲一区二区三区青草| 日韩精品资源二区在线| 青青草97国产精品免费观看| 国产69精品一区二区亚洲孕妇| 337p亚洲精品色噜噜噜| 亚洲精品国产无套在线观| 国产91精品一区二区麻豆网站| 欧美一区二区三区公司| 五月天一区二区三区| 一本大道久久a久久精二百| 中文字幕免费不卡在线| 激情另类小说区图片区视频区| 欧美日韩一级片在线观看| 亚洲欧美色一区| av不卡免费在线观看| 国产人伦精品一区二区| 国产一区欧美日韩| 26uuu亚洲| 国产成人av网站| 国产精品日日摸夜夜摸av| www.日韩大片| 一区二区三区免费看视频| 日本韩国一区二区| 亚洲欧美日韩在线| 欧美精品在线观看播放| 欧美a级一区二区| 欧美大尺度电影在线| 国产精品一区二区果冻传媒| 国产性色一区二区| 一本色道久久加勒比精品 | 中文字幕不卡三区| 91香蕉视频污在线| 亚洲成a天堂v人片| 精品久久人人做人人爰| 欧美电影免费观看高清完整版在线观看| 免费xxxx性欧美18vr| 国产日韩综合av| 在线观看视频欧美| 卡一卡二国产精品| 国产精品久久久久久久久搜平片| 99久久久无码国产精品| 肉肉av福利一精品导航| 中文字幕精品综合| 欧美日韩另类一区| 大胆亚洲人体视频| 日本免费新一区视频| 最新日韩在线视频| 久久综合狠狠综合久久综合88| 色综合一个色综合| 精品一区二区在线观看| 一区二区三区美女| 国产日韩在线不卡| 精品国产一区二区三区av性色| 欧美主播一区二区三区美女| 精品亚洲成av人在线观看| 亚洲成人福利片| 中文字幕人成不卡一区| 久久综合狠狠综合| 9191久久久久久久久久久| 99精品视频在线观看免费| 国产精品一品视频| 久久91精品国产91久久小草| 亚洲va韩国va欧美va精品| 一区二区三区美女| 亚洲愉拍自拍另类高清精品| 国产精品丝袜一区| 国产日产亚洲精品系列| 欧美不卡一二三|