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

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

?? explode.c

?? zip壓縮
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*  Copyright (c) 1990-2002 Info-ZIP.  All rights reserved.  See the accompanying file LICENSE, version 2000-Apr-09 or later  (the contents of which are also included in unzip.h) for terms of use.  If, for some reason, all these files are missing, the Info-ZIP license  also may be found at:  ftp://ftp.info-zip.org/pub/infozip/license.html*//* explode.c -- by Mark Adler   version c15, 6 July 1996 *//* Copyright history:   - Starting with UnZip 5.41 of 16-April-2000, this source file     is covered by the Info-Zip LICENSE cited above.   - Prior versions of this source file, found in UnZip source packages     up to UnZip 5.40, were put in the public domain.     The original copyright note by Mark Adler was:         "You can do whatever you like with this source file,         though I would prefer that if you modify it and         redistribute it that you include comments to that effect         with your name and the date.  Thank you."   History:   vers    date          who           what   ----  ---------  --------------  ------------------------------------    c1   30 Mar 92  M. Adler        explode that uses huft_build from inflate                                    (this gives over a 70% speed improvement                                    over the original unimplode.c, which                                    decoded a bit at a time)    c2    4 Apr 92  M. Adler        fixed bug for file sizes a multiple of 32k.    c3   10 Apr 92  M. Adler        added a little memory tracking if DEBUG    c4   11 Apr 92  M. Adler        added NOMEMCPY do kill use of memcpy()    c5   21 Apr 92  M. Adler        added the WSIZE #define to allow reducing                                    the 32K window size for specialized                                    applications.    c6   31 May 92  M. Adler        added typecasts to eliminate some warnings    c7   27 Jun 92  G. Roelofs      added more typecasts.    c8   17 Oct 92  G. Roelofs      changed ULONG/UWORD/byte to ulg/ush/uch.    c9   19 Jul 93  J. Bush         added more typecasts (to return values);                                    made l[256] array static for Amiga.    c10   8 Oct 93  G. Roelofs      added used_csize for diagnostics; added                                    buf and unshrink arguments to flush();                                    undef'd various macros at end for Turbo C;                                    removed NEXTBYTE macro (now in unzip.h)                                    and bytebuf variable (not used); changed                                    memset() to memzero().    c11   9 Jan 94  M. Adler        fixed incorrect used_csize calculation.    c12   9 Apr 94  G. Roelofs      fixed split comments on preprocessor lines                                    to avoid bug in Encore compiler.    c13  25 Aug 94  M. Adler        fixed distance-length comment (orig c9 fix)    c14  22 Nov 95  S. Maxwell      removed unnecessary "static" on auto array    c15   6 Jul 96  W. Haidinger    added ulg typecasts to flush() calls.    c16   8 Feb 98  C. Spieler      added ZCONST modifiers to const tables                                    and #ifdef DEBUG around debugging code.    c16b 25 Mar 98  C. Spieler      modified DLL code for slide redirection.    c16d 05 Jul 99  C. Spieler      take care of flush() return values and                                    stop processing in case of errors    c17  04 Feb 01  C. Spieler      reorganized code to reduce repetitions                                    of large code parts; adapted huft decoding                                    to the changes in inflate's huft_build()                                    due to support of deflate64; fixed memory                                    leaks (huft tables were not free'd when                                    get_tree() failed).    c17b 16 Feb 02  C. Spieler      changed type of the "extra lengths" array                                    "extra" from ush into uch (to save space) *//*   Explode imploded (PKZIP method 6 compressed) data.  This compression   method searches for as much of the current string of bytes (up to a length   of ~320) in the previous 4K or 8K bytes.  If it doesn't find any matches   (of at least length 2 or 3), it codes the next byte.  Otherwise, it codes   the length of the matched string and its distance backwards from the   current position.  Single bytes ("literals") are preceded by a one (a   single bit) and are either uncoded (the eight bits go directly into the   compressed stream for a total of nine bits) or Huffman coded with a   supplied literal code tree.  If literals are coded, then the minimum match   length is three, otherwise it is two.   There are therefore four kinds of imploded streams: 8K search with coded   literals (min match = 3), 4K search with coded literals (min match = 3),   8K with uncoded literals (min match = 2), and 4K with uncoded literals   (min match = 2).  The kind of stream is identified in two bits of a   general purpose bit flag that is outside of the compressed stream.   Distance-length pairs for matched strings are preceded by a zero bit (to   distinguish them from literals) and are always coded.  The distance comes   first and is either the low six (4K) or low seven (8K) bits of the   distance (uncoded), followed by the high six bits of the distance coded.   Then the length is six bits coded (0..63 + min match length), and if the   maximum such length is coded, then it's followed by another eight bits   (uncoded) to be added to the coded length.  This gives a match length   range of 2..320 or 3..321 bytes.   The literal, length, and distance codes are all represented in a slightly   compressed form themselves.  What is sent are the lengths of the codes for   each value, which is sufficient to construct the codes.  Each byte of the   code representation is the code length (the low four bits representing   1..16), and the number of values sequentially with that length (the high   four bits also representing 1..16).  There are 256 literal code values (if   literals are coded), 64 length code values, and 64 distance code values,   in that order at the beginning of the compressed stream.  Each set of code   values is preceded (redundantly) with a byte indicating how many bytes are   in the code description that follows, in the range 1..256.   The codes themselves are decoded using tables made by huft_build() from   the bit lengths.  That routine and its comments are in the inflate.c   module. */#define __EXPLODE_C     /* identifies this source module */#define UNZIP_INTERNAL#include "unzip.h"      /* must supply slide[] (uch) array and NEXTBYTE macro */#ifndef WSIZE#  define WSIZE 0x8000  /* window size--must be a power of two, and */#endif                  /* at least 8K for zip's implode method */#if (defined(DLL) && !defined(NO_SLIDE_REDIR))#  define wszimpl (unsigned)(G._wsize)#else#  if defined(USE_DEFLATE64) && defined(INT_16BIT)#    define wszimpl (unsigned)(WSIZE>>1)#  else /* !(USE_DEFLATE64 && INT_16BIT) */#    define wszimpl WSIZE#  endif /* !(USE_DEFLATE64 && INT_16BIT) */#endif/* routines here */static int get_tree OF((__GPRO__ unsigned *l, unsigned n));static int explode_lit OF((__GPRO__ struct huft *tb, struct huft *tl,                           struct huft *td, int bb, int bl, int bd,                           unsigned bdl));static int explode_nolit OF((__GPRO__ struct huft *tl, struct huft *td,                             int bl, int bd, unsigned bdl));int explode OF((__GPRO));/* The implode algorithm uses a sliding 4K or 8K byte window on the   uncompressed stream to find repeated byte strings.  This is implemented   here as a circular buffer.  The index is updated simply by incrementing   and then and'ing with 0x0fff (4K-1) or 0x1fff (8K-1).  Here, the 32K   buffer of inflate is used, and it works just as well to always have   a 32K circular buffer, so the index is anded with 0x7fff.  This is   done to allow the window to also be used as the output buffer. *//* This must be supplied in an external module useable like "uch slide[8192];"   or "uch *slide;", where the latter would be malloc'ed.  In unzip, slide[]   is actually a 32K area for use by inflate, which uses a 32K sliding window. */#define INVALID_CODE 99#define IS_INVALID_CODE(c)  ((c) == INVALID_CODE)/* Tables for length and distance */static ZCONST ush cplen2[] =        {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,        18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,        35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,        52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65};static ZCONST ush cplen3[] =        {3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,        19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,        36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,        53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66};static ZCONST uch extra[] =        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,        8};static ZCONST ush cpdist4[] =        {1, 65, 129, 193, 257, 321, 385, 449, 513, 577, 641, 705,        769, 833, 897, 961, 1025, 1089, 1153, 1217, 1281, 1345, 1409, 1473,        1537, 1601, 1665, 1729, 1793, 1857, 1921, 1985, 2049, 2113, 2177,        2241, 2305, 2369, 2433, 2497, 2561, 2625, 2689, 2753, 2817, 2881,        2945, 3009, 3073, 3137, 3201, 3265, 3329, 3393, 3457, 3521, 3585,        3649, 3713, 3777, 3841, 3905, 3969, 4033};static ZCONST ush cpdist8[] =        {1, 129, 257, 385, 513, 641, 769, 897, 1025, 1153, 1281,        1409, 1537, 1665, 1793, 1921, 2049, 2177, 2305, 2433, 2561, 2689,        2817, 2945, 3073, 3201, 3329, 3457, 3585, 3713, 3841, 3969, 4097,        4225, 4353, 4481, 4609, 4737, 4865, 4993, 5121, 5249, 5377, 5505,        5633, 5761, 5889, 6017, 6145, 6273, 6401, 6529, 6657, 6785, 6913,        7041, 7169, 7297, 7425, 7553, 7681, 7809, 7937, 8065};/* Macros for inflate() bit peeking and grabbing.   The usage is:        NEEDBITS(j)        x = b & mask_bits[j];        DUMPBITS(j)   where NEEDBITS makes sure that b has at least j bits in it, and   DUMPBITS removes the bits from b.  The macros use the variable k   for the number of bits in b.  Normally, b and k are register   variables for speed. */#define NEEDBITS(n) {while(k<(n)){b|=((ulg)NEXTBYTE)<<k;k+=8;}}#define DUMPBITS(n) {b>>=(n);k-=(n);}#define DECODEHUFT(htab, bits, mask) {\  NEEDBITS((unsigned)(bits))\  t = (htab) + ((~(unsigned)b)&(mask));\  while (1) {\    DUMPBITS(t->b)\    if ((e=t->e) <= 32) break;\    if (IS_INVALID_CODE(e)) return 1;\    e &= 31;\    NEEDBITS(e)\    t = t->v.t + ((~(unsigned)b)&mask_bits[e]);\  }\}static int get_tree(__G__ l, n)     __GDEFunsigned *l;            /* bit lengths */unsigned n;             /* number expected *//* Get the bit lengths for a code representation from the compressed   stream.  If get_tree() returns 4, then there is an error in the data.   Otherwise zero is returned. */{  unsigned i;           /* bytes remaining in list */  unsigned k;           /* lengths entered */  unsigned j;           /* number of codes */  unsigned b;           /* bit length for those codes */  /* get bit lengths */  i = NEXTBYTE + 1;                     /* length/count pairs to read */  k = 0;                                /* next code */  do {    b = ((j = NEXTBYTE) & 0xf) + 1;     /* bits in code (1..16) */    j = ((j & 0xf0) >> 4) + 1;          /* codes with those bits (1..16) */    if (k + j > n)      return 4;                         /* don't overflow l[] */    do {      l[k++] = b;    } while (--j);  } while (--i);  return k != n ? 4 : 0;                /* should have read n of them */}static int explode_lit(__G__ tb, tl, td, bb, bl, bd, bdl)     __GDEFstruct huft *tb, *tl, *td;      /* literal, length, and distance tables */int bb, bl, bd;                 /* number of bits decoded by those */unsigned bdl;                   /* number of distance low bits *//* Decompress the imploded data using coded literals and a sliding   window (of size 2^(6+bdl) bytes). */{  ulg s;                /* bytes to decompress */  register unsigned e;  /* table entry flag/number of extra bits */  unsigned n, d;        /* length and index for copy */  unsigned w;           /* current window position */  struct huft *t;       /* pointer to table entry */  unsigned mb, ml, md;  /* masks for bb, bl, and bd bits */  unsigned mdl;         /* mask for bdl (distance lower) bits */  register ulg b;       /* bit buffer */  register unsigned k;  /* number of bits in bit buffer */  unsigned u;           /* true if unflushed */  int retval = 0;       /* error code returned: initialized to "no error" */  /* explode the coded data */  b = k = w = 0;                /* initialize bit buffer, window */  u = 1;                        /* buffer unflushed */  mb = mask_bits[bb];           /* precompute masks for speed */  ml = mask_bits[bl];  md = mask_bits[bd];  mdl = mask_bits[bdl];  s = G.lrec.ucsize;  while (s > 0)                 /* do until ucsize bytes uncompressed */  {    NEEDBITS(1)    if (b & 1)                  /* then literal--decode it */    {      DUMPBITS(1)      s--;      DECODEHUFT(tb, bb, mb)    /* get coded literal */      redirSlide[w++] = (uch)t->v.n;      if (w == wszimpl)      {        if ((retval = flush(__G__ redirSlide, (ulg)w, 0)) != 0)          return retval;        w = u = 0;      }    }    else                        /* else distance/length */    {      DUMPBITS(1)      NEEDBITS(bdl)             /* get distance low bits */      d = (unsigned)b & mdl;      DUMPBITS(bdl)      DECODEHUFT(td, bd, md)    /* get coded distance high bits */      d = w - d - t->v.n;       /* construct offset */      DECODEHUFT(tl, bl, ml)    /* get coded length */      n = t->v.n;      if (e)                    /* get length extra bits */      {        NEEDBITS(8)        n += (unsigned)b & 0xff;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚一区二区| 亚洲另类春色校园小说| 亚洲日本电影在线| 蜜臀av一区二区| 91视频精品在这里| 26uuu国产在线精品一区二区| 亚洲精品乱码久久久久久久久| 国产毛片精品视频| 欧美一区二区视频在线观看| 中文字幕视频一区二区三区久| 久久国产福利国产秒拍| 欧美丝袜第三区| 国产精品国产三级国产专播品爱网| 男女性色大片免费观看一区二区 | 亚洲一区二区五区| 国产福利一区二区三区在线视频| 欧美精品高清视频| 夜夜精品浪潮av一区二区三区| 国产福利一区二区三区视频在线| 日韩欧美国产一区在线观看| 婷婷国产v国产偷v亚洲高清| 色哟哟国产精品免费观看| 中文字幕第一区| 成人教育av在线| 欧美国产精品久久| 不卡影院免费观看| 国产精品免费久久| 成人午夜精品一区二区三区| 国产亚洲精品资源在线26u| 韩国一区二区三区| 欧美成人精品福利| 国内成人精品2018免费看| 日韩免费看的电影| 久久99日本精品| 欧美不卡激情三级在线观看| 免费xxxx性欧美18vr| 日韩一区二区中文字幕| 奇米精品一区二区三区四区| 日韩欧美国产综合一区| 国精产品一区一区三区mba视频| 久久在线观看免费| 国产成人免费视频网站高清观看视频| 国产人成亚洲第一网站在线播放| 国产成人精品免费一区二区| 欧美国产禁国产网站cc| 91欧美激情一区二区三区成人| 亚洲乱码日产精品bd| 欧美偷拍一区二区| 麻豆专区一区二区三区四区五区| 精品国产伦一区二区三区免费| 国产精品中文有码| 国产精品国产三级国产普通话蜜臀| 成人免费高清视频| 亚洲一区二区视频在线| 日韩欧美123| 成人avav在线| 亚洲在线中文字幕| 2024国产精品| 欧洲国内综合视频| 麻豆成人免费电影| 中文字幕一区二区三区不卡 | 日韩一区二区在线看| 国产成人精品三级| 亚洲一区二区在线观看视频 | 午夜精彩视频在线观看不卡| 日韩女优电影在线观看| 91同城在线观看| jizz一区二区| 午夜精品影院在线观看| 亚洲国产精品av| 69堂精品视频| 一本色道久久综合狠狠躁的推荐| 美女视频黄频大全不卡视频在线播放| 日本一区二区三区视频视频| 欧美视频在线不卡| 不卡av在线免费观看| 奇米精品一区二区三区在线观看 | 精品91自产拍在线观看一区| 97se亚洲国产综合自在线| 日本不卡的三区四区五区| 中文字幕一区三区| 26uuu国产电影一区二区| 欧美日韩黄视频| gogogo免费视频观看亚洲一| 激情小说欧美图片| 日本欧美韩国一区三区| 亚洲美女免费在线| 中文字幕第一区综合| 精品免费日韩av| 色猫猫国产区一区二在线视频| 激情深爱一区二区| 人人狠狠综合久久亚洲| 亚洲电影在线免费观看| 国产精品久久久久久久裸模| 久久久久国色av免费看影院| 欧美一区二区三区视频免费| 欧美性xxxxx极品少妇| 9人人澡人人爽人人精品| 一本大道久久精品懂色aⅴ| 国产成人小视频| 国产在线精品免费| 九九国产精品视频| 精品一区二区三区香蕉蜜桃 | 亚洲精品免费电影| 综合欧美一区二区三区| 欧美国产1区2区| 日本一区二区视频在线| 中文字幕成人在线观看| 日本一区二区视频在线观看| 久久精品视频在线看| 精品国产髙清在线看国产毛片| 欧美精品日韩综合在线| 欧美日韩一区在线| 91精品欧美久久久久久动漫| 欧美三级视频在线观看| 欧美丝袜自拍制服另类| 欧美日韩亚洲综合一区| 欧美一区在线视频| 精品国产一区二区三区忘忧草| 2021久久国产精品不只是精品| 26uuu亚洲| 中文字幕av一区 二区| 日韩美女视频一区二区| 一区二区三区日韩欧美精品| 亚洲国产欧美在线| 久久99精品久久久| 风间由美一区二区三区在线观看 | 国产精品影视在线| 国产精品白丝jk黑袜喷水| 成人听书哪个软件好| 99久久婷婷国产综合精品电影| 在线观看欧美精品| 56国语精品自产拍在线观看| 欧美r级在线观看| 国产精品传媒入口麻豆| 一个色综合av| 精品在线观看免费| av不卡在线观看| 91精品国产综合久久久久久久久久| 91.麻豆视频| 中文字幕av免费专区久久| 亚洲一本大道在线| 免费观看在线综合| av影院午夜一区| 在线观看91av| 国产精品久久久久久久久久免费看| 亚洲综合在线观看视频| 日本不卡123| 色综合欧美在线| 欧美videos中文字幕| 中文字幕乱码亚洲精品一区| 亚洲韩国一区二区三区| 国产风韵犹存在线视精品| 欧美在线一二三| 国产性天天综合网| 日一区二区三区| 成人h动漫精品一区二区| 欧美喷潮久久久xxxxx| 中文字幕欧美日韩一区| 久久精品国产精品青草| 91色九色蝌蚪| 国产欧美一区二区三区网站 | 亚洲高清视频在线| 国产91在线观看| 欧美大片免费久久精品三p| 一区二区三区毛片| 成人动漫视频在线| 2024国产精品| 青青草国产精品97视觉盛宴 | 久久综合久久综合久久综合| 亚洲成人免费观看| 91视视频在线观看入口直接观看www| 亚洲精品一区二区精华| 日韩精品国产欧美| 在线观看一区日韩| 国产精品乱人伦一区二区| 老司机免费视频一区二区三区| 欧美熟乱第一页| 亚洲精品日韩专区silk| 成人av中文字幕| 亚洲国产精品av| 国产不卡视频一区二区三区| 日韩欧美成人一区| 日韩电影免费一区| 欧美日韩久久久一区| 亚洲精品中文在线影院| av亚洲精华国产精华精华| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲第一激情av| 91黄色免费网站| 亚洲小少妇裸体bbw| 91在线码无精品| 亚洲色图欧洲色图| 在线观看日韩精品| 一区二区三区在线影院| 色悠悠亚洲一区二区| 一区二区激情小说| 欧美日韩国产免费| 日韩国产欧美在线视频| 欧美一级黄色大片|