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

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

?? gun.c

?? StormLib是對MPQ文件進行處理的庫 MPQ是暴雪公司的私有的一種壓縮格式
?? C
?? 第 1 頁 / 共 2 頁
字號:
                return Z_BUF_ERROR;            }            outcnt = 0;        }        do {            outbuf[outcnt++] = match[--stack];        } while (stack);        /* loop for next code with final and prev as the last match, rem and           left provide the first 0..7 bits of the next code, end is the last           valid table entry */    }}/* Decompress a gzip file from infile to outfile.  strm is assumed to have been   successfully initialized with inflateBackInit().  The input file may consist   of a series of gzip streams, in which case all of them will be decompressed   to the output file.  If outfile is -1, then the gzip stream(s) integrity is   checked and nothing is written.   The return value is a zlib error code: Z_MEM_ERROR if out of memory,   Z_DATA_ERROR if the header or the compressed data is invalid, or if the   trailer CRC-32 check or length doesn't match, Z_BUF_ERROR if the input ends   prematurely or a write error occurs, or Z_ERRNO if junk (not a another gzip   stream) follows a valid gzip stream. */local int gunpipe(z_stream *strm, int infile, int outfile){    int ret, first, last;    unsigned have, flags, len;    unsigned char *next;    struct ind ind, *indp;    struct outd outd;    /* setup input buffer */    ind.infile = infile;    ind.inbuf = inbuf;    indp = &ind;    /* decompress concatenated gzip streams */    have = 0;                               /* no input data read in yet */    first = 1;                              /* looking for first gzip header */    strm->next_in = Z_NULL;                 /* so Z_BUF_ERROR means EOF */    for (;;) {        /* look for the two magic header bytes for a gzip stream */        if (NEXT() == -1) {            ret = Z_OK;            break;                          /* empty gzip stream is ok */        }        if (last != 31 || (NEXT() != 139 && last != 157)) {            strm->msg = (char *)"incorrect header check";            ret = first ? Z_DATA_ERROR : Z_ERRNO;            break;                          /* not a gzip or compress header */        }        first = 0;                          /* next non-header is junk */        /* process a compress (LZW) file -- can't be concatenated after this */        if (last == 157) {            ret = lunpipe(have, next, indp, outfile, strm);            break;        }        /* process remainder of gzip header */        ret = Z_BUF_ERROR;        if (NEXT() != 8) {                  /* only deflate method allowed */            if (last == -1) break;            strm->msg = (char *)"unknown compression method";            ret = Z_DATA_ERROR;            break;        }        flags = NEXT();                     /* header flags */        NEXT();                             /* discard mod time, xflgs, os */        NEXT();        NEXT();        NEXT();        NEXT();        NEXT();        if (last == -1) break;        if (flags & 0xe0) {            strm->msg = (char *)"unknown header flags set";            ret = Z_DATA_ERROR;            break;        }        if (flags & 4) {                    /* extra field */            len = NEXT();            len += (unsigned)(NEXT()) << 8;            if (last == -1) break;            while (len > have) {                len -= have;                have = 0;                if (NEXT() == -1) break;                len--;            }            if (last == -1) break;            have -= len;            next += len;        }        if (flags & 8)                      /* file name */            while (NEXT() != 0 && last != -1)                ;        if (flags & 16)                     /* comment */            while (NEXT() != 0 && last != -1)                ;        if (flags & 2) {                    /* header crc */            NEXT();            NEXT();        }        if (last == -1) break;        /* set up output */        outd.outfile = outfile;        outd.check = 1;        outd.crc = crc32(0L, Z_NULL, 0);        outd.total = 0;        /* decompress data to output */        strm->next_in = next;        strm->avail_in = have;        ret = inflateBack(strm, in, indp, out, &outd);        if (ret != Z_STREAM_END) break;        next = strm->next_in;        have = strm->avail_in;        strm->next_in = Z_NULL;             /* so Z_BUF_ERROR means EOF */        /* check trailer */        ret = Z_BUF_ERROR;        if (NEXT() != (outd.crc & 0xff) ||            NEXT() != ((outd.crc >> 8) & 0xff) ||            NEXT() != ((outd.crc >> 16) & 0xff) ||            NEXT() != ((outd.crc >> 24) & 0xff)) {            /* crc error */            if (last != -1) {                strm->msg = (char *)"incorrect data check";                ret = Z_DATA_ERROR;            }            break;        }        if (NEXT() != (outd.total & 0xff) ||            NEXT() != ((outd.total >> 8) & 0xff) ||            NEXT() != ((outd.total >> 16) & 0xff) ||            NEXT() != ((outd.total >> 24) & 0xff)) {            /* length error */            if (last != -1) {                strm->msg = (char *)"incorrect length check";                ret = Z_DATA_ERROR;            }            break;        }        /* go back and look for another gzip stream */    }    /* clean up and return */    return ret;}/* Copy file attributes, from -> to, as best we can.  This is best effort, so   no errors are reported.  The mode bits, including suid, sgid, and the sticky   bit are copied (if allowed), the owner's user id and group id are copied   (again if allowed), and the access and modify times are copied. */local void copymeta(char *from, char *to){    struct stat was;    struct utimbuf when;    /* get all of from's Unix meta data, return if not a regular file */    if (stat(from, &was) != 0 || (was.st_mode & S_IFMT) != S_IFREG)        return;    /* set to's mode bits, ignore errors */    (void)chmod(to, was.st_mode & 07777);    /* copy owner's user and group, ignore errors */    (void)chown(to, was.st_uid, was.st_gid);    /* copy access and modify times, ignore errors */    when.actime = was.st_atime;    when.modtime = was.st_mtime;    (void)utime(to, &when);}/* Decompress the file inname to the file outnname, of if test is true, just   decompress without writing and check the gzip trailer for integrity.  If   inname is NULL or an empty string, read from stdin.  If outname is NULL or   an empty string, write to stdout.  strm is a pre-initialized inflateBack   structure.  When appropriate, copy the file attributes from inname to   outname.   gunzip() returns 1 if there is an out-of-memory error or an unexpected   return code from gunpipe().  Otherwise it returns 0. */local int gunzip(z_stream *strm, char *inname, char *outname, int test){    int ret;    int infile, outfile;    /* open files */    if (inname == NULL || *inname == 0) {        inname = "-";        infile = 0;     /* stdin */    }    else {        infile = open(inname, O_RDONLY, 0);        if (infile == -1) {            fprintf(stderr, "gun cannot open %s\n", inname);            return 0;        }    }    if (test)        outfile = -1;    else if (outname == NULL || *outname == 0) {        outname = "-";        outfile = 1;    /* stdout */    }    else {        outfile = open(outname, O_CREAT | O_TRUNC | O_WRONLY, 0666);        if (outfile == -1) {            close(infile);            fprintf(stderr, "gun cannot create %s\n", outname);            return 0;        }    }    errno = 0;    /* decompress */    ret = gunpipe(strm, infile, outfile);    if (outfile > 2) close(outfile);    if (infile > 2) close(infile);    /* interpret result */    switch (ret) {    case Z_OK:    case Z_ERRNO:        if (infile > 2 && outfile > 2) {            copymeta(inname, outname);          /* copy attributes */            unlink(inname);        }        if (ret == Z_ERRNO)            fprintf(stderr, "gun warning: trailing garbage ignored in %s\n",                    inname);        break;    case Z_DATA_ERROR:        if (outfile > 2) unlink(outname);        fprintf(stderr, "gun data error on %s: %s\n", inname, strm->msg);        break;    case Z_MEM_ERROR:        if (outfile > 2) unlink(outname);        fprintf(stderr, "gun out of memory error--aborting\n");        return 1;    case Z_BUF_ERROR:        if (outfile > 2) unlink(outname);        if (strm->next_in != Z_NULL) {            fprintf(stderr, "gun write error on %s: %s\n",                    outname, strerror(errno));        }        else if (errno) {            fprintf(stderr, "gun read error on %s: %s\n",                    inname, strerror(errno));        }        else {            fprintf(stderr, "gun unexpected end of file on %s\n",                    inname);        }        break;    default:        if (outfile > 2) unlink(outname);        fprintf(stderr, "gun internal error--aborting\n");        return 1;    }    return 0;}/* Process the gun command line arguments.  See the command syntax near the   beginning of this source file. */int main(int argc, char **argv){    int ret, len, test;    char *outname;    unsigned char *window;    z_stream strm;    /* initialize inflateBack state for repeated use */    window = match;                         /* reuse LZW match buffer */    strm.zalloc = Z_NULL;    strm.zfree = Z_NULL;    strm.opaque = Z_NULL;    ret = inflateBackInit(&strm, 15, window);    if (ret != Z_OK) {        fprintf(stderr, "gun out of memory error--aborting\n");        return 1;    }    /* decompress each file to the same name with the suffix removed */    argc--;    argv++;    test = 0;    if (argc && strcmp(*argv, "-h") == 0) {        fprintf(stderr, "gun 1.3 (12 Jun 2005)\n");        fprintf(stderr, "Copyright (c) 2005 Mark Adler\n");        fprintf(stderr, "usage: gun [-t] [file1.gz [file2.Z ...]]\n");        return 0;    }    if (argc && strcmp(*argv, "-t") == 0) {        test = 1;        argc--;        argv++;    }    if (argc)        do {            if (test)                outname = NULL;            else {                len = (int)strlen(*argv);                if (strcmp(*argv + len - 3, ".gz") == 0 ||                    strcmp(*argv + len - 3, "-gz") == 0)                    len -= 3;                else if (strcmp(*argv + len - 2, ".z") == 0 ||                    strcmp(*argv + len - 2, "-z") == 0 ||                    strcmp(*argv + len - 2, "_z") == 0 ||                    strcmp(*argv + len - 2, ".Z") == 0)                    len -= 2;                else {                    fprintf(stderr, "gun error: no gz type on %s--skipping\n",                            *argv);                    continue;                }                outname = malloc(len + 1);                if (outname == NULL) {                    fprintf(stderr, "gun out of memory error--aborting\n");                    ret = 1;                    break;                }                memcpy(outname, *argv, len);                outname[len] = 0;            }            ret = gunzip(&strm, *argv, outname, test);            if (outname != NULL) free(outname);            if (ret) break;        } while (argv++, --argc);    else        ret = gunzip(&strm, NULL, NULL, test);    /* clean up */    inflateBackEnd(&strm);    return ret;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人中文字幕电影| 国产91在线观看| 亚洲国产一区二区a毛片| 国产精品欧美精品| 亚洲色图欧洲色图婷婷| 国产精品青草综合久久久久99| 国产精品日韩精品欧美在线| 国产精品午夜在线| 久久免费电影网| 中文字幕第一区第二区| 国产精品家庭影院| 一区二区三区在线高清| 午夜伊人狠狠久久| 蜜臀精品一区二区三区在线观看| 蜜桃视频一区二区三区在线观看 | 青青草91视频| 激情都市一区二区| 成人国产视频在线观看| 91国模大尺度私拍在线视频| 91精品1区2区| 精品国产乱码久久久久久图片| 久久久午夜电影| 亚洲精品免费一二三区| 午夜久久电影网| 国产剧情在线观看一区二区| 成人激情校园春色| 欧美日韩一级大片网址| 精品国产一二三| 亚洲美女区一区| 久久精品国产99久久6| 成人精品鲁一区一区二区| 在线观看www91| 精品va天堂亚洲国产| 亚洲免费观看高清完整版在线观看熊| 亚洲午夜在线电影| 成人毛片在线观看| 91精品国产免费久久综合| 国产肉丝袜一区二区| 亚洲sss视频在线视频| 狠狠色综合日日| 91麻豆精品国产综合久久久久久| 欧美日韩国产区一| 国产精品国产三级国产有无不卡| 青青青爽久久午夜综合久久午夜| 99久久99久久精品免费看蜜桃 | 精品国产91洋老外米糕| 亚洲男女一区二区三区| 国模大尺度一区二区三区| 欧美自拍偷拍午夜视频| 日本一区二区电影| 另类中文字幕网| 欧美亚洲日本国产| 国产精品不卡视频| 国产99久久久国产精品免费看 | 99精品久久只有精品| 欧美精品一区二区精品网| 天天操天天干天天综合网| eeuss影院一区二区三区| wwww国产精品欧美| 视频一区国产视频| 欧美年轻男男videosbes| 中文字幕一区二区三中文字幕| 国产盗摄一区二区| 久久久另类综合| 国产一区二区三区在线观看精品 | 激情都市一区二区| 日韩欧美卡一卡二| 美女网站色91| 日韩三级视频在线观看| 蜜桃久久久久久| 欧美一区二区在线免费观看| 午夜电影一区二区| 51精品国自产在线| 免费高清在线视频一区·| 欧美一级二级三级乱码| 欧美aa在线视频| 欧美一区二区三区不卡| 久久丁香综合五月国产三级网站| 欧美一级日韩一级| 国产真实乱偷精品视频免| 久久女同互慰一区二区三区| 国产精品一区二区在线观看不卡| 久久这里只有精品6| 成人中文字幕在线| 亚洲精品视频免费看| 欧美午夜精品免费| 日韩专区在线视频| 精品福利一区二区三区免费视频| 国产精品996| 最新国产の精品合集bt伙计| 91麻豆成人久久精品二区三区| 亚洲色图一区二区| 欧美麻豆精品久久久久久| 老鸭窝一区二区久久精品| 国产日韩欧美精品一区| 成人成人成人在线视频| 亚洲在线视频一区| 日韩午夜精品视频| zzijzzij亚洲日本少妇熟睡| 一区二区三区在线高清| 欧美大片免费久久精品三p| 国产一区高清在线| 亚洲中国最大av网站| 久久综合色天天久久综合图片| 欧美日韩综合一区| 国产一区免费电影| 亚洲国产视频a| 久久精品人人做人人综合| 一本色道**综合亚洲精品蜜桃冫| 午夜伊人狠狠久久| 中文无字幕一区二区三区| 欧美亚洲图片小说| 国产一区二区免费视频| 一区二区三区产品免费精品久久75| 日韩限制级电影在线观看| 国产v日产∨综合v精品视频| 亚洲一区二区三区美女| 国产日韩影视精品| 91精品国产福利在线观看| 北条麻妃国产九九精品视频| 首页国产丝袜综合| 伊人性伊人情综合网| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 在线亚洲人成电影网站色www| 久久成人18免费观看| 亚洲国产视频在线| 国产精品嫩草影院av蜜臀| 欧美精品一区二区三区很污很色的| 欧美综合色免费| www.欧美精品一二区| 国产精品一色哟哟哟| 美女视频一区二区| 午夜伦欧美伦电影理论片| 亚洲精品日产精品乱码不卡| 国产精品麻豆网站| 国产亚洲一区二区三区| 精品日韩av一区二区| 欧美精品国产精品| 欧美午夜理伦三级在线观看| 福利一区福利二区| 国产精品一区二区久久不卡| 亚洲成人av免费| 亚洲va欧美va国产va天堂影院| 亚洲三级视频在线观看| 国产精品不卡在线| 中文字幕亚洲视频| 亚洲天堂免费在线观看视频| 久久久久国产免费免费| 26uuu欧美| 欧美国产欧美综合| 国产精品色呦呦| 欧美激情一区二区三区| 国产精品免费视频网站| 国产精品福利影院| 一区二区三区在线视频免费观看| 国产精品第四页| 亚洲日本va午夜在线影院| 亚洲三级电影网站| 亚洲综合清纯丝袜自拍| 亚洲自拍偷拍麻豆| 日韩一区精品视频| 午夜精品久久久久久久 | 国产精品美女久久久久久久| 国产精品色婷婷| 一区二区三区四区视频精品免费 | 国产精品久久久久一区二区三区共 | 国产一区在线不卡| 国产69精品久久99不卡| 97久久久精品综合88久久| 色综合天天综合色综合av | 日韩电影在线观看一区| 久久99精品久久久久久动态图 | 日本高清免费不卡视频| 欧美区视频在线观看| 日韩精品专区在线影院观看| 国产喂奶挤奶一区二区三区| 亚洲欧洲日韩av| 亚洲一二三区视频在线观看| 麻豆精品精品国产自在97香蕉 | 91天堂素人约啪| 欧美一二三四区在线| 国产午夜亚洲精品羞羞网站| 亚洲综合色视频| 国产精品综合一区二区三区| 成人动漫av在线| 精品久久久久久久久久久院品网 | 国产精品久久影院| 一片黄亚洲嫩模| 国产一区二区三区| 欧美自拍偷拍一区| 久久久777精品电影网影网| 亚洲美女在线一区| 国产麻豆视频一区| 欧美日韩一区二区三区四区| 国产情人综合久久777777| 午夜在线电影亚洲一区| 99久久久无码国产精品| 欧美大片一区二区| 五月天久久比比资源色| 波多野结衣视频一区|