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

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

?? unlzh.c

?? GZip Compress Souce Code
?? C
字號:
/* unlzh.c -- decompress files in SCO compress -H (LZH) format. * The code in this file is directly derived from the public domain 'ar002' * written by Haruhiko Okumura. */#ifdef RCSIDstatic char rcsid[] = "$Id: unlzh.c,v 1.2 1993/06/24 10:59:01 jloup Exp $";#endif#include <stdio.h>#include "tailor.h"#include "gzip.h"#include "lzw.h" /* just for consistency checking */#include "bsdebug.h"//#define _DEBUG_UNLZH_C_#ifdef DBGPrintfi#undef DBGPrintfi#endif#ifdef DBGPrintfo#undef DBGPrintfo#endif#if defined(_TRACEHELPER_DEBUG_ALL_)  #define DBGPrintfi(a) DbgPrintfi a;  #define DBGPrintfo(a) DbgPrintfo a;#elif defined(_DEBUG_UNLZH_C_) && defined(_TRACEHELPER_DEBUG_EACH_OF_FILE_)  #define DBGPrintfi(a) DbgPrintfi a;  #define DBGPrintfo(a) DbgPrintfo a;#else  #define DBGPrintfi(a)  #define DBGPrintfo(a)#endif/* decode.c */local unsigned  decode  OF((unsigned count, uch buffer[]));local void decode_start OF((void));/* huf.c */local void huf_decode_start OF((void));local unsigned decode_c     OF((void));local unsigned decode_p     OF((void));local int read_pt_len      OF((int nn, int nbit, int i_special));local int read_c_len       OF((void));/* io.c */local void fillbuf      OF((int n));local unsigned getbits  OF((int n));local void init_getbits OF((void));/* maketbl.c */local int make_table OF((int nchar, uch bitlen[],			  int tablebits, ush table[]));#define DICBIT    13    /* 12(-lh4-) or 13(-lh5-) */#define DICSIZ ((unsigned) 1 << DICBIT)#ifndef CHAR_BIT#  define CHAR_BIT 8#endif#ifndef UCHAR_MAX#  define UCHAR_MAX 255#endif#define BITBUFSIZ (CHAR_BIT * 2 * sizeof(char))/* Do not use CHAR_BIT * sizeof(bitbuf), does not work on machines * for which short is not on 16 bits (Cray). *//* encode.c and decode.c */#define MAXMATCH 256    /* formerly F (not more than UCHAR_MAX + 1) */#define THRESHOLD  3    /* choose optimal value *//* huf.c */#define NC (UCHAR_MAX + MAXMATCH + 2 - THRESHOLD)	/* alphabet = {0, 1, 2, ..., NC - 1} */#define CBIT 9  /* $\lfloor \log_2 NC \rfloor + 1$ */#define CODE_BIT  16  /* codeword length */#define NP (DICBIT + 1)#define NT (CODE_BIT + 3)#define PBIT 4  /* smallest integer such that (1U << PBIT) > NP */#define TBIT 5  /* smallest integer such that (1U << TBIT) > NT */#if NT > NP# define NPT NT#else# define NPT NP#endif/* local ush left[2 * NC - 1]; *//* local ush right[2 * NC - 1]; */#define left  prev#define right head#if NC > (1<<(BITS-2))    error cannot overlay left+right and prev#endif/* local uch c_len[NC]; */#define c_len outbuf#if NC > OUTBUFSIZ    error cannot overlay c_len and outbuf#endiflocal uch pt_len[NPT];local unsigned blocksize;local ush pt_table[256];/* local ush c_table[4096]; */#define c_table d_buf#if (DIST_BUFSIZE-1) < 4095    error cannot overlay c_table and d_buf#endif/***********************************************************        io.c -- input/output***********************************************************/local ush       bitbuf;local unsigned  subbitbuf;local int       bitcount;local void fillbuf(n)  /* Shift bitbuf n bits left, read n bits */    int n;{  DBGPrintfi(("fillbuf(In)\r\n"));  {    bitbuf <<= n;    while (n > bitcount) {	bitbuf |= subbitbuf << (n -= bitcount);	subbitbuf = (unsigned)try_byte();	if ((int)subbitbuf == EOF) subbitbuf = 0;	bitcount = CHAR_BIT;    }    bitbuf |= subbitbuf >> (bitcount -= n);  }  DBGPrintfo(("fillbuf(out)\r\n"));}local unsigned getbits(n)    int n;{  DBGPrintfi(("getbits(In)\r\n"));  {    unsigned x;    x = bitbuf >> (BITBUFSIZ - n);  fillbuf(n);        DBGPrintfo(("getbits(out1)\r\n"));    return  x;  }}local void init_getbits(){  DBGPrintfi(("init_getbits(In)\r\n"));  {    bitbuf = 0;  subbitbuf = 0;  bitcount = 0;    fillbuf(BITBUFSIZ);  }  DBGPrintfo(("init_getbits(out)\r\n"));}/***********************************************************	maketbl.c -- make table for decoding***********************************************************/local int make_table(nchar, bitlen, tablebits, table)    int nchar;    uch bitlen[];    int tablebits;    ush table[];{  DBGPrintfi(("make_table(In)\r\n"));  {    ush count[17], weight[17], start[18], *p;    unsigned i, k, len, ch, jutbits, avail, nextcode, mask;    for (i = 1; i <= 16; i++) count[i] = 0;    for (i = 0; i < (unsigned)nchar; i++) count[bitlen[i]]++;    start[1] = 0;    for (i = 1; i <= 16; i++)	start[i + 1] = start[i] + (count[i] << (16 - i));    if ((start[17] & 0xffff) != 0)	{		error("Bad table\n");		DBGPrintfo(("make_table(out1)\r\n"));		return -1;	}    jutbits = 16 - tablebits;    for (i = 1; i <= (unsigned)tablebits; i++) {	start[i] >>= jutbits;	weight[i] = (unsigned) 1 << (tablebits - i);    }    while (i <= 16) {	weight[i] = (unsigned) 1 << (16 - i);	i++;    }    i = start[tablebits + 1] >> jutbits;    if (i != 0) {	k = 1 << tablebits;	while (i != k) table[i++] = 0;    }    avail = nchar;    mask = (unsigned) 1 << (15 - tablebits);    for (ch = 0; ch < (unsigned)nchar; ch++) {	if ((len = bitlen[ch]) == 0) continue;	nextcode = start[len] + weight[len];	if (len <= (unsigned)tablebits) {	    for (i = start[len]; i < nextcode; i++) table[i] = ch;	} else {	    k = start[len];	    p = &table[k >> jutbits];	    i = len - tablebits;	    while (i != 0) {		if (*p == 0) {		    right[avail] = left[avail] = 0;		    *p = avail++;		}		if (k & mask) p = &right[*p];		else          p = &left[*p];		k <<= 1;  i--;	    }	    *p = ch;	}	start[len] = nextcode;    }  }  DBGPrintfo(("make_table(out)\r\n"));  return 0;}/***********************************************************        huf.c -- static Huffman***********************************************************/local int read_pt_len(nn, nbit, i_special)    int nn;    int nbit;    int i_special;{  DBGPrintfi(("read_pt_len(In)\r\n"));  {    int i, c, n;    unsigned mask;    n = getbits(nbit);    if (n == 0) {	c = getbits(nbit);	for (i = 0; i < nn; i++) pt_len[i] = 0;	for (i = 0; i < 256; i++) pt_table[i] = c;    } else {	i = 0;	while (i < n) {	    c = bitbuf >> (BITBUFSIZ - 3);	    if (c == 7) {		mask = (unsigned) 1 << (BITBUFSIZ - 1 - 3);		while (mask & bitbuf) {  mask >>= 1;  c++;  }	    }	    fillbuf((c < 7) ? 3 : c - 3);	    pt_len[i++] = c;	    if (i == i_special) {		c = getbits(2);		while (--c >= 0) pt_len[i++] = 0;	    }	}	while (i < nn) pt_len[i++] = 0;	if ( make_table(nn, pt_len, 8, pt_table) < 0 )	{		DBGPrintfo(("read_pt_len(out1)\r\n"));		return -1;	}    }  }  DBGPrintfo(("read_pt_len(out)\r\n"));  return 0;}local int read_c_len(){  DBGPrintfi(("read_c_len(In)\r\n"));  {    int i, c, n;    unsigned mask;    n = getbits(CBIT);    if (n == 0) {	c = getbits(CBIT);	for (i = 0; i < NC; i++) c_len[i] = 0;	for (i = 0; i < 4096; i++) c_table[i] = c;    } else {	i = 0;	while (i < n) {	    c = pt_table[bitbuf >> (BITBUFSIZ - 8)];	    if (c >= NT) {		mask = (unsigned) 1 << (BITBUFSIZ - 1 - 8);		do {		    if (bitbuf & mask) c = right[c];		    else               c = left [c];		    mask >>= 1;		} while (c >= NT);	    }	    fillbuf((int) pt_len[c]);	    if (c <= 2) {		if      (c == 0) c = 1;		else if (c == 1) c = getbits(4) + 3;		else             c = getbits(CBIT) + 20;		while (--c >= 0) c_len[i++] = 0;	    } else c_len[i++] = c - 2;	}	while (i < NC) c_len[i++] = 0;	if ( make_table(NC, c_len, 12, c_table) < 0 )	{		DBGPrintfo(("read_c_len(out1)\r\n"));		return -1;	}    }  }  DBGPrintfo(("read_c_len(out)\r\n"));  return 0;}local unsigned decode_c(){  DBGPrintfi(("decode_c(In)\r\n"));  {    unsigned j, mask;    if (blocksize == 0) {	blocksize = getbits(16);	if (blocksize == 0) {	    DBGPrintfo(("decode_c(out1)\r\n"));    	return  NC; /* end of file */	}	if ( read_pt_len(NT, TBIT, 3) < 0 )	{		DBGPrintfo(("decode_c(out11)\r\n"));		return -1;	}	read_c_len();	if ( read_pt_len(NP, PBIT, -1) < 0)	{		DBGPrintfo(("decode_c(out11)\r\n"));		return -1;	}    }    blocksize--;    j = c_table[bitbuf >> (BITBUFSIZ - 12)];    if (j >= NC) {	mask = (unsigned) 1 << (BITBUFSIZ - 1 - 12);	do {	    if (bitbuf & mask) j = right[j];	    else               j = left [j];	    mask >>= 1;	} while (j >= NC);    }    fillbuf((int) c_len[j]);        DBGPrintfo(("decode_c(out2)\r\n"));    return  j;  }}local unsigned decode_p(){  DBGPrintfi(("decode_p(In)\r\n"));  {    unsigned j, mask;    j = pt_table[bitbuf >> (BITBUFSIZ - 8)];    if (j >= NP) {	mask = (unsigned) 1 << (BITBUFSIZ - 1 - 8);	do {	    if (bitbuf & mask) j = right[j];	    else               j = left [j];	    mask >>= 1;	} while (j >= NP);    }    fillbuf((int) pt_len[j]);    if (j != 0) j = ((unsigned) 1 << (j - 1)) + getbits((int) (j - 1));        DBGPrintfo(("decode_p(out1)\r\n"));    return  j;  }}local void huf_decode_start(){  DBGPrintfi(("huf_decode_start(In)\r\n"));  {    init_getbits();  blocksize = 0;  }  DBGPrintfo(("huf_decode_start(out)\r\n"));}/***********************************************************        decode.c***********************************************************/local int j;    /* remaining bytes to copy */local int done; /* set at end of input */local void decode_start(){  DBGPrintfi(("decode_start(In)\r\n"));  {    huf_decode_start();    j = 0;    done = 0;  }  DBGPrintfo(("decode_start(out)\r\n"));}/* Decode the input and return the number of decoded bytes put in buffer */local unsigned decode(count, buffer)    unsigned count;    uch buffer[];    /* The calling function must keep the number of       bytes to be processed.  This function decodes       either 'count' bytes or 'DICSIZ' bytes, whichever       is smaller, into the array 'buffer[]' of size       'DICSIZ' or more.       Call decode_start() once for each new file       before calling this function.     */{  DBGPrintfi(("decode(In)\r\n"));  {    local unsigned i;    unsigned r, c;    r = 0;    while (--j >= 0) {	buffer[r] = buffer[i];	i = (i + 1) & (DICSIZ - 1);	if (++r == count) {                   	 DBGPrintfo(("decode(out1)\r\n"));                  	 return  r;                   	}    }    for ( ; ; ) {	c = decode_c();	if ( c == -1)	{		DBGPrintfo(("decode(out20)\r\n"));		return -1;	}	if (c == NC) {	    done = 1;	        	DBGPrintfo(("decode(out2)\r\n"));    	return  r;	}	if (c <= UCHAR_MAX) {	    buffer[r] = c;	    if (++r == count) {                       	 DBGPrintfo(("decode(out3)\r\n"));                      	 return  r;                       	}	} else {	    j = c - (UCHAR_MAX + 1 - THRESHOLD);	    i = (r - decode_p() - 1) & (DICSIZ - 1);	    while (--j >= 0) {		buffer[r] = buffer[i];		i = (i + 1) & (DICSIZ - 1);		if (++r == count) {                   		 DBGPrintfo(("decode(out4)\r\n"));                  		 return  r;                   		}	    }	}    }  }}/* =========================================================================== * Unlzh in to out. Return OK or ERROR. */int unlzh(in, out)    int in;    int out;{  DBGPrintfi(("unlzh(In)\r\n"));  {    unsigned n;    ifd = in;    ofd = out;    decode_start();    while (!done) {	n = decode((unsigned) DICSIZ, window);	if ( n == -1 )	{		DBGPrintfo(("unlzh(out10)\r\n"));		return -1;	}	if (!test && n > 0) {	    write_buf(out, (char*)window, n);	}    }    DBGPrintfo(("unlzh(out1)\r\n"));    return  OK;  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费成人网| 色999日韩国产欧美一区二区| 久久久国产一区二区三区四区小说| 菠萝蜜视频在线观看一区| 午夜不卡在线视频| 综合久久综合久久| 久久久亚洲精品石原莉奈| 精品污污网站免费看| 国产91精品欧美| 精品欧美乱码久久久久久1区2区| 色狠狠一区二区| 高清成人在线观看| 极品瑜伽女神91| 日韩和欧美一区二区三区| 欧美久久一二三四区| 在线视频国内自拍亚洲视频| 欧美日韩激情一区二区| 天堂久久久久va久久久久| 亚洲男人的天堂在线aⅴ视频 | 色88888久久久久久影院野外| 国产一二三精品| 奇米色777欧美一区二区| 欧美精品一区二区不卡| 国产肉丝袜一区二区| 九九**精品视频免费播放| 午夜av一区二区| 亚洲国产va精品久久久不卡综合| 亚洲乱码一区二区三区在线观看| 中文字幕第一页久久| 国产日韩欧美不卡在线| 国产成人鲁色资源国产91色综| 美腿丝袜在线亚洲一区| 精品成人在线观看| 日韩一区二区精品| 91精品久久久久久蜜臀| 91精品婷婷国产综合久久竹菊| 欧美丰满少妇xxxbbb| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 91在线视频18| 99久久久精品| 在线观看91精品国产入口| 在线看日韩精品电影| 日本乱码高清不卡字幕| 欧美色老头old∨ideo| 日本不卡在线视频| 久久99热这里只有精品| 国产美女在线观看一区| 国产a区久久久| 91视频.com| 欧美日韩一区视频| 欧美一级日韩免费不卡| 26uuu精品一区二区三区四区在线| 精品国产乱码久久久久久久久| 久久这里只有精品视频网| 91色视频在线| 蜜桃av噜噜一区| 91九色02白丝porn| 精品系列免费在线观看| 国产精品一线二线三线| 不卡一区在线观看| 欧美优质美女网站| 一区二区三区日韩精品视频| 久久一留热品黄| 亚洲婷婷综合色高清在线| 一区二区三区视频在线看| 亚洲欧洲日本在线| 欧美久久久久久久久| 6080日韩午夜伦伦午夜伦| 精品国产髙清在线看国产毛片| 久久久精品黄色| 亚洲日本欧美天堂| 日本伊人午夜精品| 国产福利一区二区| 欧美日韩一区三区| 国产精品美女www爽爽爽| 中文久久乱码一区二区| 亚洲国产精品自拍| 国产真实精品久久二三区| 91在线无精精品入口| 亚洲黄网站在线观看| 欧美电影免费观看高清完整版在线| 久久久噜噜噜久久中文字幕色伊伊 | 国产亚洲美州欧州综合国| 亚洲男人天堂av网| 久久97超碰国产精品超碰| 91在线无精精品入口| 日韩精品中文字幕在线不卡尤物| 国产精品国产三级国产普通话蜜臀| 偷拍亚洲欧洲综合| 中文字幕在线观看不卡| 日本视频中文字幕一区二区三区| 成人久久18免费网站麻豆 | 国产精品1区二区.| 欧美日韩成人在线| 不卡在线观看av| 国产成人欧美日韩在线电影| 欧美日韩国产在线播放网站| 中文字幕第一区二区| 蜜臀久久久99精品久久久久久| 91免费在线看| 久久精品男人天堂av| 视频一区视频二区中文字幕| gogo大胆日本视频一区| 日韩精品一区二区在线| 亚洲成人在线观看视频| 亚洲综合在线电影| 成人伦理片在线| 国产肉丝袜一区二区| 麻豆成人综合网| 欧美人体做爰大胆视频| 亚洲欧美日韩电影| 成人短视频下载| 首页亚洲欧美制服丝腿| 夜夜夜精品看看| 亚洲自拍偷拍麻豆| 99国产精品一区| 国产女人18毛片水真多成人如厕| 久久精品久久99精品久久| 欧美乱熟臀69xxxxxx| 亚洲最大成人网4388xx| 91国产精品成人| 亚洲欧美怡红院| 国产午夜精品美女毛片视频| 最新国产の精品合集bt伙计| 国产成a人无v码亚洲福利| 日韩免费一区二区| 免费看欧美女人艹b| 欧美一区二区三区在线| 久久美女艺术照精彩视频福利播放| 美日韩一级片在线观看| 欧美一卡二卡在线观看| 青青草91视频| 日韩欧美一级二级| 久色婷婷小香蕉久久| 6080国产精品一区二区| 午夜视频在线观看一区二区三区| 欧美网站一区二区| 亚洲一区二区成人在线观看| 欧美专区亚洲专区| 性久久久久久久| 日韩女优毛片在线| 国内精品嫩模私拍在线| 久久日韩精品一区二区五区| 亚洲天堂成人网| 欧美亚洲国产一卡| 天堂蜜桃91精品| 欧美精品一区二区三区一线天视频| 国产一区在线观看视频| 中文字幕第一页久久| 色婷婷激情久久| 同产精品九九九| 精品久久久久久久久久久院品网| 欧美精品一区在线观看| 国产在线观看一区二区| 国产女人18水真多18精品一级做| 99久久久精品| 日韩精品高清不卡| www日韩大片| 91在线视频播放| 日韩高清电影一区| 久久看人人爽人人| 色诱亚洲精品久久久久久| 亚洲成人免费电影| 久久久国产精品午夜一区ai换脸| caoporn国产精品| 午夜一区二区三区视频| 久久无码av三级| 91久久久免费一区二区| 免费高清视频精品| 日韩理论片网站| 日韩一区二区三区免费看| 懂色一区二区三区免费观看| 在线不卡中文字幕| 国产99久久精品| 天堂蜜桃一区二区三区| 国产精品伦理一区二区| 欧美日韩成人在线| 国产1区2区3区精品美女| 一区二区三区毛片| 精品盗摄一区二区三区| 欧美性猛交xxxxxxxx| 国产专区欧美精品| 日韩黄色在线观看| 一区在线播放视频| 日韩视频免费直播| 一本到一区二区三区| 韩国理伦片一区二区三区在线播放| 成人免费一区二区三区视频| 欧美一区二区三区四区高清| 91视频精品在这里| 国产一区高清在线| 亚洲精品在线三区| 欧美日韩在线精品一区二区三区激情| 国产一区二区三区香蕉| 亚洲高清视频在线| 中文字幕一区二区三区视频 | 欧美日韩激情一区| 成人深夜在线观看| 国产在线视频精品一区| 午夜久久久影院|