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

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

?? gzappend.c

?? StormLib是對MPQ文件進行處理的庫 MPQ是暴雪公司的私有的一種壓縮格式
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* decompress gzip file "name", return strm with a deflate stream ready to   continue compression of the data in the gzip file, and return a file   descriptor pointing to where to write the compressed data -- the deflate   stream is initialized to compress using level "level" */local int gzscan(char *name, z_stream *strm, int level){    int ret, lastbit, left, full;    unsigned have;    unsigned long crc, tot;    unsigned char *window;    off_t lastoff, end;    file gz;    /* open gzip file */    gz.name = name;    gz.fd = open(name, O_RDWR, 0);    if (gz.fd == -1) bye("cannot open ", name);    gz.buf = malloc(CHUNK);    if (gz.buf == NULL) bye("out of memory", "");    gz.size = LGCHUNK;    gz.left = 0;    /* skip gzip header */    gzheader(&gz);    /* prepare to decompress */    window = malloc(DSIZE);    if (window == NULL) bye("out of memory", "");    strm->zalloc = Z_NULL;    strm->zfree = Z_NULL;    strm->opaque = Z_NULL;    ret = inflateInit2(strm, -15);    if (ret != Z_OK) bye("out of memory", " or library mismatch");    /* decompress the deflate stream, saving append information */    lastbit = 0;    lastoff = lseek(gz.fd, 0L, SEEK_CUR) - gz.left;    left = 0;    strm->avail_in = gz.left;    strm->next_in = gz.next;    crc = crc32(0L, Z_NULL, 0);    have = full = 0;    do {        /* if needed, get more input */        if (strm->avail_in == 0) {            readmore(&gz);            strm->avail_in = gz.left;            strm->next_in = gz.next;        }        /* set up output to next available section of sliding window */        strm->avail_out = DSIZE - have;        strm->next_out = window + have;        /* inflate and check for errors */        ret = inflate(strm, Z_BLOCK);        if (ret == Z_STREAM_ERROR) bye("internal stream error!", "");        if (ret == Z_MEM_ERROR) bye("out of memory", "");        if (ret == Z_DATA_ERROR)            bye("invalid compressed data--format violated in", name);        /* update crc and sliding window pointer */        crc = crc32(crc, window + have, DSIZE - have - strm->avail_out);        if (strm->avail_out)            have = DSIZE - strm->avail_out;        else {            have = 0;            full = 1;        }        /* process end of block */        if (strm->data_type & 128) {            if (strm->data_type & 64)                left = strm->data_type & 0x1f;            else {                lastbit = strm->data_type & 0x1f;                lastoff = lseek(gz.fd, 0L, SEEK_CUR) - strm->avail_in;            }        }    } while (ret != Z_STREAM_END);    inflateEnd(strm);    gz.left = strm->avail_in;    gz.next = strm->next_in;    /* save the location of the end of the compressed data */    end = lseek(gz.fd, 0L, SEEK_CUR) - gz.left;    /* check gzip trailer and save total for deflate */    if (crc != read4(&gz))        bye("invalid compressed data--crc mismatch in ", name);    tot = strm->total_out;    if ((tot & 0xffffffffUL) != read4(&gz))        bye("invalid compressed data--length mismatch in", name);    /* if not at end of file, warn */    if (gz.left || readin(&gz))        fprintf(stderr,            "gzappend warning: junk at end of gzip file overwritten\n");    /* clear last block bit */    lseek(gz.fd, lastoff - (lastbit != 0), SEEK_SET);    if (read(gz.fd, gz.buf, 1) != 1) bye("reading after seek on ", name);    *gz.buf = (unsigned char)(*gz.buf ^ (1 << ((8 - lastbit) & 7)));    lseek(gz.fd, -1L, SEEK_CUR);    if (write(gz.fd, gz.buf, 1) != 1) bye("writing after seek to ", name);    /* if window wrapped, build dictionary from window by rotating */    if (full) {        rotate(window, DSIZE, have);        have = DSIZE;    }    /* set up deflate stream with window, crc, total_in, and leftover bits */    ret = deflateInit2(strm, level, Z_DEFLATED, -15, 8, Z_DEFAULT_STRATEGY);    if (ret != Z_OK) bye("out of memory", "");    deflateSetDictionary(strm, window, have);    strm->adler = crc;    strm->total_in = tot;    if (left) {        lseek(gz.fd, --end, SEEK_SET);        if (read(gz.fd, gz.buf, 1) != 1) bye("reading after seek on ", name);        deflatePrime(strm, 8 - left, *gz.buf);    }    lseek(gz.fd, end, SEEK_SET);    /* clean up and return */    free(window);    free(gz.buf);    return gz.fd;}/* append file "name" to gzip file gd using deflate stream strm -- if last   is true, then finish off the deflate stream at the end */local void gztack(char *name, int gd, z_stream *strm, int last){    int fd, len, ret;    unsigned left;    unsigned char *in, *out;    /* open file to compress and append */    fd = 0;    if (name != NULL) {        fd = open(name, O_RDONLY, 0);        if (fd == -1)            fprintf(stderr, "gzappend warning: %s not found, skipping ...\n",                    name);    }    /* allocate buffers */    in = fd == -1 ? NULL : malloc(CHUNK);    out = malloc(CHUNK);    if (out == NULL) bye("out of memory", "");    /* compress input file and append to gzip file */    do {        /* get more input */        len = fd == -1 ? 0 : read(fd, in, CHUNK);        if (len == -1) {            fprintf(stderr,                    "gzappend warning: error reading %s, skipping rest ...\n",                    name);            len = 0;        }        strm->avail_in = (unsigned)len;        strm->next_in = in;        if (len) strm->adler = crc32(strm->adler, in, (unsigned)len);        /* compress and write all available output */        do {            strm->avail_out = CHUNK;            strm->next_out = out;            ret = deflate(strm, last && len == 0 ? Z_FINISH : Z_NO_FLUSH);            left = CHUNK - strm->avail_out;            while (left) {                len = write(gd, out + CHUNK - strm->avail_out - left, left);                if (len == -1) bye("writing gzip file", "");                left -= (unsigned)len;            }        } while (strm->avail_out == 0 && ret != Z_STREAM_END);    } while (len != 0);    /* write trailer after last entry */    if (last) {        deflateEnd(strm);        out[0] = (unsigned char)(strm->adler);        out[1] = (unsigned char)(strm->adler >> 8);        out[2] = (unsigned char)(strm->adler >> 16);        out[3] = (unsigned char)(strm->adler >> 24);        out[4] = (unsigned char)(strm->total_in);        out[5] = (unsigned char)(strm->total_in >> 8);        out[6] = (unsigned char)(strm->total_in >> 16);        out[7] = (unsigned char)(strm->total_in >> 24);        len = 8;        do {            ret = write(gd, out + 8 - len, len);            if (ret == -1) bye("writing gzip file", "");            len -= ret;        } while (len);        close(gd);    }    /* clean up and return */    free(out);    if (in != NULL) free(in);    if (fd > 0) close(fd);}/* process the compression level option if present, scan the gzip file, and   append the specified files, or append the data from stdin if no other file   names are provided on the command line -- the gzip file must be writable   and seekable */int main(int argc, char **argv){    int gd, level;    z_stream strm;    /* ignore command name */    argv++;    /* provide usage if no arguments */    if (*argv == NULL) {        printf("gzappend 1.1 (4 Nov 2003) Copyright (C) 2003 Mark Adler\n");        printf(            "usage: gzappend [-level] file.gz [ addthis [ andthis ... ]]\n");        return 0;    }    /* set compression level */    level = Z_DEFAULT_COMPRESSION;    if (argv[0][0] == '-') {        if (argv[0][1] < '0' || argv[0][1] > '9' || argv[0][2] != 0)            bye("invalid compression level", "");        level = argv[0][1] - '0';        if (*++argv == NULL) bye("no gzip file name after options", "");    }    /* prepare to append to gzip file */    gd = gzscan(*argv++, &strm, level);    /* append files on command line, or from stdin if none */    if (*argv == NULL)        gztack(NULL, gd, &strm, 1);    else        do {            gztack(*argv, gd, &strm, argv[1] == NULL);        } while (*++argv != NULL);    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91香蕉视频污| 欧美精品一区二区在线观看| 欧美乱妇15p| 欧美激情一区二区三区全黄| 亚洲电影第三页| 99视频一区二区| 26uuu欧美| 热久久国产精品| 色婷婷亚洲综合| 国产婷婷色一区二区三区四区| 亚洲mv在线观看| 色乱码一区二区三区88| 国产午夜精品在线观看| 日韩av一区二区三区四区| 欧洲日韩一区二区三区| 亚洲免费观看高清完整版在线观看熊 | 亚洲va韩国va欧美va| 91色porny蝌蚪| 国产精品久久看| 国产精品一级片| 久久久精品免费网站| 久久www免费人成看片高清| 欧美卡1卡2卡| 日韩电影在线看| 欧美影院一区二区三区| 国产精品国产三级国产aⅴ无密码| 国产精品香蕉一区二区三区| 精品91自产拍在线观看一区| 蜜桃av一区二区在线观看| 91精品蜜臀在线一区尤物| 日韩精品1区2区3区| 欧美一区二区三区白人| 日本欧美一区二区三区乱码| 宅男噜噜噜66一区二区66| 亚洲国产婷婷综合在线精品| 精品视频1区2区| 丝袜美腿亚洲一区| 欧美日韩激情一区二区三区| 亚洲综合色噜噜狠狠| 欧美日韩第一区日日骚| 日韩中文字幕av电影| 日韩一区二区三区精品视频 | 成人黄色小视频| 中文字幕一区视频| 日本电影亚洲天堂一区| 一区二区三区波多野结衣在线观看| 在线国产电影不卡| 天天色综合天天| 久久综合久色欧美综合狠狠| 国产成人亚洲综合a∨婷婷| 国产精品美女久久久久高潮| 在线精品观看国产| 免费高清视频精品| 国产视频一区在线观看| 91美女在线视频| 首页国产丝袜综合| 26uuu成人网一区二区三区| 成人黄页毛片网站| 亚洲大片精品永久免费| 久久久欧美精品sm网站| 91香蕉视频mp4| 美腿丝袜亚洲一区| 国产精品无人区| 69久久夜色精品国产69蝌蚪网| 精品一区二区三区免费毛片爱| 国产精品女人毛片| 6080日韩午夜伦伦午夜伦| 国产一区二区三区久久久| 亚洲人妖av一区二区| 欧美喷水一区二区| 国产精品91xxx| 日韩精品91亚洲二区在线观看| 中文字幕av一区二区三区| 欧美日韩国产系列| 成人自拍视频在线观看| 日精品一区二区三区| 欧美国产欧美亚州国产日韩mv天天看完整| 日本韩国精品一区二区在线观看| 美日韩一区二区| 亚洲精品国产无套在线观| 久久久久97国产精华液好用吗| 欧美午夜在线观看| 成人美女在线视频| 国产在线视频不卡二| 亚洲.国产.中文慕字在线| 国产亚洲一本大道中文在线| 制服丝袜亚洲网站| 色综合天天综合色综合av| 国产精品亚洲一区二区三区妖精| 日韩经典中文字幕一区| 亚洲一区二区在线播放相泽| 中文字幕第一区| 精品国产乱码久久久久久牛牛 | 日韩精品一区二区三区三区免费 | 日韩欧美精品在线视频| 欧美性猛交xxxxxxxx| 91在线观看免费视频| 国产在线精品不卡| 麻豆成人91精品二区三区| 亚洲二区视频在线| 亚洲综合图片区| 亚洲欧洲av一区二区三区久久| 久久一夜天堂av一区二区三区| 制服丝袜亚洲精品中文字幕| 欧美精品在线视频| 欧美日韩精品是欧美日韩精品| 99re视频精品| 91免费观看视频在线| 9i在线看片成人免费| 成人av免费在线观看| 成人综合婷婷国产精品久久| 国产成人精品午夜视频免费| 久久99精品国产.久久久久| 九九热在线视频观看这里只有精品| 午夜电影网一区| 午夜精品免费在线| 日韩精彩视频在线观看| 日日夜夜一区二区| 久久国产精品露脸对白| 精彩视频一区二区三区| 国产精品一区二区三区乱码| 国产东北露脸精品视频| 成人免费观看av| 色综合一个色综合亚洲| 欧美亚洲动漫精品| 欧美精品v国产精品v日韩精品 | 欧美日韩国产精品成人| 666欧美在线视频| 久久伊人蜜桃av一区二区| 中文字幕第一区二区| 一区二区三区四区中文字幕| 亚洲电影一区二区| 韩国成人福利片在线播放| 成人免费视频网站在线观看| 91女人视频在线观看| 欧美日免费三级在线| 日韩欧美在线123| 国产日本欧洲亚洲| 尤物在线观看一区| 日韩和的一区二区| 国产成人亚洲精品狼色在线| 91在线视频播放| 欧美一区二区三区四区在线观看| 欧美本精品男人aⅴ天堂| 国产精品视频一二| 亚洲一区二区三区不卡国产欧美| 青青草原综合久久大伊人精品优势 | 三级成人在线视频| 国产原创一区二区三区| 色综合久久综合网欧美综合网 | 日本精品视频一区二区| 精品国产91久久久久久久妲己 | 久久久亚洲高清| 中文字幕一区免费在线观看| 首页国产欧美久久| 成人免费观看男女羞羞视频| 884aa四虎影成人精品一区| 久久久青草青青国产亚洲免观| 亚洲国产美女搞黄色| 国产91精品久久久久久久网曝门| 欧美亚洲一区二区在线观看| 2023国产精品自拍| 婷婷成人综合网| www.久久久久久久久| 日韩欧美国产一区二区三区| 自拍av一区二区三区| 国产一区不卡在线| 欧美高清www午色夜在线视频| 国产精品每日更新| 久99久精品视频免费观看| 欧美无乱码久久久免费午夜一区 | 99久久国产综合精品麻豆| 精品久久久久久久久久久久久久久| 亚洲精品久久久蜜桃| www.亚洲国产| 久久丝袜美腿综合| 免费成人在线影院| 欧美日韩成人综合天天影院 | 欧美伊人久久久久久久久影院 | 欧美日韩一区中文字幕| 国产精品久久久久影院老司| 久久草av在线| 欧美男生操女生| 亚洲成人手机在线| 在线观看91视频| 一区二区三区中文在线| 91免费在线播放| 国产精品色眯眯| 成人高清在线视频| 国产精品区一区二区三| 国产成人亚洲综合a∨猫咪| 国产亚洲综合在线| 国产成人午夜高潮毛片| 久久午夜色播影院免费高清| 精品亚洲免费视频| 欧美va天堂va视频va在线| 精品写真视频在线观看| xvideos.蜜桃一区二区| 久久精品国产第一区二区三区| 正在播放亚洲一区|