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

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

?? inflate.c

?? minix操作系統最新版本(3.1.1)的源代碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
                DROPBITS(state->extra);            }#ifdef INFLATE_STRICT            if (state->offset > state->dmax) {                strm->msg = (char *)"invalid distance too far back";                state->mode = BAD;                break;            }#endif            if (state->offset > state->whave + out - left) {                strm->msg = (char *)"invalid distance too far back";                state->mode = BAD;                break;            }            Tracevv((stderr, "inflate:         distance %u\n", state->offset));            state->mode = MATCH;        case MATCH:            if (left == 0) goto inf_leave;            copy = out - left;            if (state->offset > copy) {         /* copy from window */                copy = state->offset - copy;                if (copy > state->write) {                    copy -= state->write;                    from = state->window + (state->wsize - copy);                }                else                    from = state->window + (state->write - copy);                if (copy > state->length) copy = state->length;            }            else {                              /* copy from output */                from = put - state->offset;                copy = state->length;            }            if (copy > left) copy = left;            left -= copy;            state->length -= copy;            do {                *put++ = *from++;            } while (--copy);            if (state->length == 0) state->mode = LEN;            break;        case LIT:            if (left == 0) goto inf_leave;            *put++ = (unsigned char)(state->length);            left--;            state->mode = LEN;            break;        case CHECK:            if (state->wrap) {                NEEDBITS(32);                out -= left;                strm->total_out += out;                state->total += out;                if (out)                    strm->adler = state->check =                        UPDATE(state->check, put - out, out);                out = left;                if ((#ifdef GUNZIP                     state->flags ? hold :#endif                     REVERSE(hold)) != state->check) {                    strm->msg = (char *)"incorrect data check";                    state->mode = BAD;                    break;                }                INITBITS();                Tracev((stderr, "inflate:   check matches trailer\n"));            }#ifdef GUNZIP            state->mode = LENGTH;        case LENGTH:            if (state->wrap && state->flags) {                NEEDBITS(32);                if (hold != (state->total & 0xffffffffUL)) {                    strm->msg = (char *)"incorrect length check";                    state->mode = BAD;                    break;                }                INITBITS();                Tracev((stderr, "inflate:   length matches trailer\n"));            }#endif            state->mode = DONE;        case DONE:            ret = Z_STREAM_END;            goto inf_leave;        case BAD:            ret = Z_DATA_ERROR;            goto inf_leave;        case MEM:            return Z_MEM_ERROR;        case SYNC:        default:            return Z_STREAM_ERROR;        }    /*       Return from inflate(), updating the total counts and the check value.       If there was no progress during the inflate() call, return a buffer       error.  Call updatewindow() to create and/or update the window state.       Note: a memory error from inflate() is non-recoverable.     */  inf_leave:    RESTORE();    if (state->wsize || (state->mode < CHECK && out != strm->avail_out))        if (updatewindow(strm, out)) {            state->mode = MEM;            return Z_MEM_ERROR;        }    in -= strm->avail_in;    out -= strm->avail_out;    strm->total_in += in;    strm->total_out += out;    state->total += out;    if (state->wrap && out)        strm->adler = state->check =            UPDATE(state->check, strm->next_out - out, out);    strm->data_type = state->bits + (state->last ? 64 : 0) +                      (state->mode == TYPE ? 128 : 0);    if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK)        ret = Z_BUF_ERROR;    return ret;}int ZEXPORT inflateEnd(strm)z_streamp strm;{    struct inflate_state FAR *state;    if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)        return Z_STREAM_ERROR;    state = (struct inflate_state FAR *)strm->state;    if (state->window != Z_NULL) ZFREE(strm, state->window);    ZFREE(strm, strm->state);    strm->state = Z_NULL;    Tracev((stderr, "inflate: end\n"));    return Z_OK;}int ZEXPORT inflateSetDictionary(strm, dictionary, dictLength)z_streamp strm;const Bytef *dictionary;uInt dictLength;{    struct inflate_state FAR *state;    unsigned long id;    /* check state */    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;    state = (struct inflate_state FAR *)strm->state;    if (state->wrap != 0 && state->mode != DICT)        return Z_STREAM_ERROR;    /* check for correct dictionary id */    if (state->mode == DICT) {        id = adler32(0L, Z_NULL, 0);        id = adler32(id, dictionary, dictLength);        if (id != state->check)            return Z_DATA_ERROR;    }    /* copy dictionary to window */    if (updatewindow(strm, strm->avail_out)) {        state->mode = MEM;        return Z_MEM_ERROR;    }    if (dictLength > state->wsize) {        zmemcpy(state->window, dictionary + dictLength - state->wsize,                state->wsize);        state->whave = state->wsize;    }    else {        zmemcpy(state->window + state->wsize - dictLength, dictionary,                dictLength);        state->whave = dictLength;    }    state->havedict = 1;    Tracev((stderr, "inflate:   dictionary set\n"));    return Z_OK;}int ZEXPORT inflateGetHeader(strm, head)z_streamp strm;gz_headerp head;{    struct inflate_state FAR *state;    /* check state */    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;    state = (struct inflate_state FAR *)strm->state;    if ((state->wrap & 2) == 0) return Z_STREAM_ERROR;    /* save header structure */    state->head = head;    head->done = 0;    return Z_OK;}/*   Search buf[0..len-1] for the pattern: 0, 0, 0xff, 0xff.  Return when found   or when out of input.  When called, *have is the number of pattern bytes   found in order so far, in 0..3.  On return *have is updated to the new   state.  If on return *have equals four, then the pattern was found and the   return value is how many bytes were read including the last byte of the   pattern.  If *have is less than four, then the pattern has not been found   yet and the return value is len.  In the latter case, syncsearch() can be   called again with more data and the *have state.  *have is initialized to   zero for the first call. */local unsigned syncsearch(have, buf, len)unsigned FAR *have;unsigned char FAR *buf;unsigned len;{    unsigned got;    unsigned next;    got = *have;    next = 0;    while (next < len && got < 4) {        if ((int)(buf[next]) == (got < 2 ? 0 : 0xff))            got++;        else if (buf[next])            got = 0;        else            got = 4 - got;        next++;    }    *have = got;    return next;}int ZEXPORT inflateSync(strm)z_streamp strm;{    unsigned len;               /* number of bytes to look at or looked at */    unsigned long in, out;      /* temporary to save total_in and total_out */    unsigned char buf[4];       /* to restore bit buffer to byte string */    struct inflate_state FAR *state;    /* check parameters */    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;    state = (struct inflate_state FAR *)strm->state;    if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR;    /* if first time, start search in bit buffer */    if (state->mode != SYNC) {        state->mode = SYNC;        state->hold <<= state->bits & 7;        state->bits -= state->bits & 7;        len = 0;        while (state->bits >= 8) {            buf[len++] = (unsigned char)(state->hold);            state->hold >>= 8;            state->bits -= 8;        }        state->have = 0;        syncsearch(&(state->have), buf, len);    }    /* search available input */    len = syncsearch(&(state->have), strm->next_in, strm->avail_in);    strm->avail_in -= len;    strm->next_in += len;    strm->total_in += len;    /* return no joy or set up to restart inflate() on a new block */    if (state->have != 4) return Z_DATA_ERROR;    in = strm->total_in;  out = strm->total_out;    inflateReset(strm);    strm->total_in = in;  strm->total_out = out;    state->mode = TYPE;    return Z_OK;}/*   Returns true if inflate is currently at the end of a block generated by   Z_SYNC_FLUSH or Z_FULL_FLUSH. This function is used by one PPP   implementation to provide an additional safety check. PPP uses   Z_SYNC_FLUSH but removes the length bytes of the resulting empty stored   block. When decompressing, PPP checks that at the end of input packet,   inflate is waiting for these length bytes. */int ZEXPORT inflateSyncPoint(strm)z_streamp strm;{    struct inflate_state FAR *state;    if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;    state = (struct inflate_state FAR *)strm->state;    return state->mode == STORED && state->bits == 0;}int ZEXPORT inflateCopy(dest, source)z_streamp dest;z_streamp source;{    struct inflate_state FAR *state;    struct inflate_state FAR *copy;    unsigned char FAR *window;    unsigned wsize;    /* check input */    if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL ||        source->zalloc == (alloc_func)0 || source->zfree == (free_func)0)        return Z_STREAM_ERROR;    state = (struct inflate_state FAR *)source->state;    /* allocate space */    copy = (struct inflate_state FAR *)           ZALLOC(source, 1, sizeof(struct inflate_state));    if (copy == Z_NULL) return Z_MEM_ERROR;    window = Z_NULL;    if (state->window != Z_NULL) {        window = (unsigned char FAR *)                 ZALLOC(source, 1U << state->wbits, sizeof(unsigned char));        if (window == Z_NULL) {            ZFREE(source, copy);            return Z_MEM_ERROR;        }    }    /* copy state */    zmemcpy(dest, source, sizeof(z_stream));    zmemcpy(copy, state, sizeof(struct inflate_state));    if (state->lencode >= state->codes &&        state->lencode <= state->codes + ENOUGH - 1) {        copy->lencode = copy->codes + (state->lencode - state->codes);        copy->distcode = copy->codes + (state->distcode - state->codes);    }    copy->next = copy->codes + (state->next - state->codes);    if (window != Z_NULL) {        wsize = 1U << state->wbits;        zmemcpy(window, state->window, wsize);    }    copy->window = window;    dest->state = (struct internal_state FAR *)copy;    return Z_OK;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www激情久久| 日韩电影免费在线观看网站| 亚洲国产日韩在线一区模特| 精品一区二区免费视频| 欧美性一级生活| 精品国产乱码久久久久久牛牛| 一区二区三区在线观看视频| 国产v日产∨综合v精品视频| 日韩一区二区在线播放| 亚洲激情图片小说视频| 成人av影院在线| 久久免费视频色| 麻豆freexxxx性91精品| 欧美久久久一区| 亚洲久草在线视频| 成人av影院在线| 国产精品青草综合久久久久99| 久久国产精品免费| 日韩欧美二区三区| 青青草国产精品亚洲专区无| 欧美日本韩国一区二区三区视频 | 91麻豆自制传媒国产之光| 欧美一区二区三区在线观看| 亚洲一区二区三区不卡国产欧美| 丁香激情综合国产| 国产精品色一区二区三区| 国产91丝袜在线18| 国产精品免费免费| voyeur盗摄精品| 综合在线观看色| 91视频xxxx| 亚洲蜜臀av乱码久久精品| 日本韩国视频一区二区| 一区二区三区精品视频在线| 在线视频观看一区| 性感美女极品91精品| 欧美乱熟臀69xxxxxx| 日本不卡一区二区三区高清视频| 日韩欧美黄色影院| 国产在线日韩欧美| 国产精品久久久久久久久免费桃花 | 国产精品午夜电影| 成人伦理片在线| 亚洲精品成人少妇| 欧美日韩高清一区二区| 伦理电影国产精品| 久久免费午夜影院| 91小视频在线免费看| 亚洲国产中文字幕在线视频综合 | 91蝌蚪porny| 亚洲午夜精品一区二区三区他趣| 欧美久久一二区| 99久久精品一区| 亚洲一本大道在线| 欧美成人一区二区三区片免费| 狠狠狠色丁香婷婷综合久久五月| 国产日韩欧美精品一区| 一本大道久久a久久精品综合| 午夜欧美视频在线观看 | 制服丝袜激情欧洲亚洲| 国模无码大尺度一区二区三区| 亚洲国产高清在线| 欧美日韩中文精品| 国产一区二区按摩在线观看| 亚洲免费毛片网站| 日韩美女在线视频| 色哟哟欧美精品| 麻豆精品久久久| 亚洲精品成a人| 亚洲精品一区二区三区精华液| 懂色av一区二区在线播放| 亚洲一区在线播放| 欧美国产精品久久| 日韩精品一区二| 在线日韩av片| 国产69精品一区二区亚洲孕妇| 天堂资源在线中文精品| 国产精品美日韩| 日韩视频一区二区在线观看| 91香蕉视频黄| 国产酒店精品激情| 日本成人在线不卡视频| 亚洲激情在线激情| 国产精品视频九色porn| 欧美一三区三区四区免费在线看| 成人免费视频网站在线观看| 奇米色一区二区| 亚洲午夜私人影院| 亚洲靠逼com| 中文字幕免费一区| 精品av久久707| 欧美一区二区成人| 在线观看91av| 欧美日韩美少妇| 色婷婷av一区二区三区大白胸| 99综合电影在线视频| 国产黄人亚洲片| 九九热在线视频观看这里只有精品| 夜夜操天天操亚洲| 一区二区在线观看视频在线观看| 国产精品视频yy9299一区| 久久久久久久久97黄色工厂| 欧美sm美女调教| 欧美成人一区二区| 欧美精品一区二区三区在线播放| 欧美精选午夜久久久乱码6080| 在线免费观看日韩欧美| 日本道色综合久久| 99久久亚洲一区二区三区青草| 成人精品gif动图一区| 国产成人久久精品77777最新版本| 韩国女主播成人在线| 久久精品噜噜噜成人av农村| 久久国产精品色| 国产一区久久久| 国产成人免费网站| 国产91在线观看| jlzzjlzz欧美大全| 91久久精品一区二区三| 色婷婷国产精品综合在线观看| 色成年激情久久综合| 欧美日韩高清一区二区| 欧美一区二区三区视频在线 | 久久91精品久久久久久秒播| 麻豆国产精品官网| 国产米奇在线777精品观看| 国产成人av电影| 不卡电影免费在线播放一区| 色婷婷综合视频在线观看| 欧美色窝79yyyycom| 51精品视频一区二区三区| 亚洲人快播电影网| 亚洲图片欧美色图| 免费在线观看成人| 国产成人精品1024| 欧美性大战xxxxx久久久| 91精品国产综合久久香蕉麻豆 | 91精品国产一区二区| 久久一区二区三区国产精品| 国产日韩精品视频一区| 亚洲精品五月天| 日本aⅴ精品一区二区三区 | 欧美日韩aaaaaa| 精品福利二区三区| 亚洲黄网站在线观看| 麻豆传媒一区二区三区| 99久久久国产精品| 日韩三级.com| 亚洲天堂av一区| 蜜臀精品一区二区三区在线观看| 国产不卡视频在线观看| 欧美三片在线视频观看 | 一区二区三区在线免费观看 | 国产日韩欧美不卡| 亚洲123区在线观看| 国产麻豆精品95视频| 在线影院国内精品| 国产欧美精品国产国产专区| 午夜精品一区二区三区免费视频 | 亚洲特级片在线| 成人福利在线看| 制服丝袜成人动漫| 中文字幕一区二区在线播放| 日产国产欧美视频一区精品| 99精品偷自拍| 久久欧美中文字幕| 日韩 欧美一区二区三区| 色综合av在线| 中文欧美字幕免费| 蜜桃久久精品一区二区| 欧美情侣在线播放| 亚洲欧美日韩电影| 北条麻妃一区二区三区| 久久精品亚洲麻豆av一区二区| 亚洲成a人片在线不卡一二三区| 99视频热这里只有精品免费| 国产亚洲一区二区三区四区| 婷婷久久综合九色综合绿巨人 | 在线观看亚洲精品| 国产精品美女一区二区三区| 狠狠色2019综合网| 欧美一区二区免费| 日韩精品久久理论片| 欧美亚洲动漫制服丝袜| 亚洲免费观看高清完整版在线观看| 国产精品一二三四五| 欧美v日韩v国产v| 蜜臀av一区二区在线观看| 在线不卡免费av| 亚洲国产精品一区二区久久| 欧美在线你懂得| 亚洲一区在线视频观看| 欧美日韩综合在线免费观看| 亚洲自拍偷拍综合| 欧美图片一区二区三区| 亚洲国产一区视频| 欧美精品电影在线播放| 日韩av在线发布| 欧美精品一区二区不卡| 黄色资源网久久资源365|