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

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

?? gzio.c

?? 一個本地database引擎,支持中文T_Sql查詢,兼容DELPHI標準數據庫控件
?? C
?? 第 1 頁 / 共 3 頁
字號:
    }
    if ((flags & HEAD_CRC) != 0) {  /* skip the header crc */
        for (len = 0; len < 2; len++) (void)get_byte(s);
    }
    s->z_err = s->z_eof ? Z_DATA_ERROR : Z_OK;
}

 /* ===========================================================================
 * Cleanup then free the given gz_stream. Return a zlib error code.
   Try freeing in the reverse order of allocations.
 */
local int destroy (s)
    gz_stream *s;
{
    int err = Z_OK;

    if (!s) return Z_STREAM_ERROR;

    TRYFREE(s->msg);

    if (s->stream.state != NULL) {
        if (s->mode == 'w') {
#ifdef NO_GZCOMPRESS
            err = Z_STREAM_ERROR;
#else
            err = deflateEnd(&(s->stream));
#endif
        } else if (s->mode == 'r') {
            err = inflateEnd(&(s->stream));
        }
    }
    if (s->file != NULL && fclose(s->file)) {
#ifdef ESPIPE
        if (errno != ESPIPE) /* fclose is broken for pipes in HP/UX */
#endif
            err = Z_ERRNO;
    }
    if (s->z_err < 0) err = s->z_err;

    TRYFREE(s->inbuf);
    TRYFREE(s->outbuf);
    TRYFREE(s->path);
    TRYFREE(s);
    return err;
}

/* ===========================================================================
     Reads the given number of uncompressed bytes from the compressed file.
   gzread returns the number of bytes actually read (0 for end of file).
*/
int ZEXPORT gzread (file, buf, len)
    gzFile file;
    voidp buf;
    unsigned len;
{
    gz_stream *s = (gz_stream*)file;
    Bytef *start = (Bytef*)buf; /* starting point for crc computation */
    Byte  *next_out; /* == stream.next_out but not forced far (for MSDOS) */

    if (s == NULL || s->mode != 'r') return Z_STREAM_ERROR;

    if (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO) return -1;
    if (s->z_err == Z_STREAM_END) return 0;  /* EOF */

    next_out = (Byte*)buf;
    s->stream.next_out = (Bytef*)buf;
    s->stream.avail_out = len;

    if (s->stream.avail_out && s->back != EOF) {
        *next_out++ = s->back;
        s->stream.next_out++;
        s->stream.avail_out--;
        s->back = EOF;
        s->out++;
        start++;
        if (s->last) {
            s->z_err = Z_STREAM_END;
            return 1;
        }
    }

    while (s->stream.avail_out != 0) {

        if (s->transparent) {
            /* Copy first the lookahead bytes: */
            uInt n = s->stream.avail_in;
            if (n > s->stream.avail_out) n = s->stream.avail_out;
            if (n > 0) {
                zmemcpy(s->stream.next_out, s->stream.next_in, n);
                next_out += n;
                s->stream.next_out = next_out;
                s->stream.next_in   += n;
                s->stream.avail_out -= n;
                s->stream.avail_in  -= n;
            }
            if (s->stream.avail_out > 0) {
                s->stream.avail_out -=
                    (uInt)fread(next_out, 1, s->stream.avail_out, s->file);
            }
            len -= s->stream.avail_out;
            s->in  += len;
            s->out += len;
            if (len == 0) s->z_eof = 1;
            return (int)len;
        }
        if (s->stream.avail_in == 0 && !s->z_eof) {

            errno = 0;
            s->stream.avail_in = (uInt)fread(s->inbuf, 1, Z_BUFSIZE, s->file);
            if (s->stream.avail_in == 0) {
                s->z_eof = 1;
                if (ferror(s->file)) {
                    s->z_err = Z_ERRNO;
                    break;
                }
            }
            s->stream.next_in = s->inbuf;
        }
        s->in += s->stream.avail_in;
        s->out += s->stream.avail_out;
        s->z_err = inflate(&(s->stream), Z_NO_FLUSH);
        s->in -= s->stream.avail_in;
        s->out -= s->stream.avail_out;

        if (s->z_err == Z_STREAM_END) {
            /* Check CRC and original size */
            s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));
            start = s->stream.next_out;

            if (getLong(s) != s->crc) {
                s->z_err = Z_DATA_ERROR;
            } else {
                (void)getLong(s);
                /* The uncompressed length returned by above getlong() may be
                 * different from s->out in case of concatenated .gz files.
                 * Check for such files:
                 */
                check_header(s);
                if (s->z_err == Z_OK) {
                    inflateReset(&(s->stream));
                    s->crc = crc32(0L, Z_NULL, 0);
                }
            }
        }
        if (s->z_err != Z_OK || s->z_eof) break;
    }
    s->crc = crc32(s->crc, start, (uInt)(s->stream.next_out - start));

    if (len == s->stream.avail_out &&
        (s->z_err == Z_DATA_ERROR || s->z_err == Z_ERRNO))
        return -1;
    return (int)(len - s->stream.avail_out);
}


/* ===========================================================================
      Reads one byte from the compressed file. gzgetc returns this byte
   or -1 in case of end of file or error.
*/
int ZEXPORT gzgetc(file)
    gzFile file;
{
    unsigned char c;

    return gzread(file, &c, 1) == 1 ? c : -1;
}


/* ===========================================================================
      Push one byte back onto the stream.
*/
int ZEXPORT gzungetc(c, file)
    int c;
    gzFile file;
{
    gz_stream *s = (gz_stream*)file;

    if (s == NULL || s->mode != 'r' || c == EOF || s->back != EOF) return EOF;
    s->back = c;
    s->out--;
    s->last = (s->z_err == Z_STREAM_END);
    if (s->last) s->z_err = Z_OK;
    s->z_eof = 0;
    return c;
}


/* ===========================================================================
      Reads bytes from the compressed file until len-1 characters are
   read, or a newline character is read and transferred to buf, or an
   end-of-file condition is encountered.  The string is then terminated
   with a null character.
      gzgets returns buf, or Z_NULL in case of error.

      The current implementation is not optimized at all.
*/
char * ZEXPORT gzgets(file, buf, len)
    gzFile file;
    char *buf;
    int len;
{
    char *b = buf;
    if (buf == Z_NULL || len <= 0) return Z_NULL;

    while (--len > 0 && gzread(file, buf, 1) == 1 && *buf++ != '\n') ;
    *buf = '\0';
    return b == buf && len > 0 ? Z_NULL : b;
}


#ifndef NO_GZCOMPRESS
/* ===========================================================================
     Writes the given number of uncompressed bytes into the compressed file.
   gzwrite returns the number of bytes actually written (0 in case of error).
*/
int ZEXPORT gzwrite (file, buf, len)
    gzFile file;
    voidpc buf;
    unsigned len;
{
    gz_stream *s = (gz_stream*)file;

    if (s == NULL || s->mode != 'w') return Z_STREAM_ERROR;

    s->stream.next_in = (Bytef*)buf;
    s->stream.avail_in = len;

    while (s->stream.avail_in != 0) {

        if (s->stream.avail_out == 0) {

            s->stream.next_out = s->outbuf;
            if (fwrite(s->outbuf, 1, Z_BUFSIZE, s->file) != Z_BUFSIZE) {
                s->z_err = Z_ERRNO;
                break;
            }
            s->stream.avail_out = Z_BUFSIZE;
        }
        s->in += s->stream.avail_in;
        s->out += s->stream.avail_out;
        s->z_err = deflate(&(s->stream), Z_NO_FLUSH);
        s->in -= s->stream.avail_in;
        s->out -= s->stream.avail_out;
        if (s->z_err != Z_OK) break;
    }
    s->crc = crc32(s->crc, (const Bytef *)buf, len);

    return (int)(len - s->stream.avail_in);
}


/* ===========================================================================
     Converts, formats, and writes the args to the compressed file under
   control of the format string, as in fprintf. gzprintf returns the number of
   uncompressed bytes actually written (0 in case of error).
*/
#ifdef STDC
#include <stdarg.h>

int ZEXPORTVA gzprintf (gzFile file, const char *format, /* args */ ...)
{
    char buf[Z_PRINTF_BUFSIZE];
    va_list va;
    int len;

    buf[sizeof(buf) - 1] = 0;
    va_start(va, format);
#ifdef NO_vsnprintf
#  ifdef HAS_vsprintf_void
    (void)vsprintf(buf, format, va);
    va_end(va);
    for (len = 0; len < sizeof(buf); len++)
        if (buf[len] == 0) break;
#  else
    len = vsprintf(buf, format, va);
    va_end(va);
#  endif
#else
#  ifdef HAS_vsnprintf_void
    (void)vsnprintf(buf, sizeof(buf), format, va);
    va_end(va);
    len = strlen(buf);
#  else
    len = vsnprintf(buf, sizeof(buf), format, va);
    va_end(va);
#  endif
#endif
    if (len <= 0 || len >= (int)sizeof(buf) || buf[sizeof(buf) - 1] != 0)
        return 0;
    return gzwrite(file, buf, (unsigned)len);
}
#else /* not ANSI C */

int ZEXPORTVA gzprintf (file, format, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
                       a11, a12, a13, a14, a15, a16, a17, a18, a19, a20)
    gzFile file;
    const char *format;
    int a1, a2, a3, a4, a5, a6, a7, a8, a9, a10,
        a11, a12, a13, a14, a15, a16, a17, a18, a19, a20;
{
    char buf[Z_PRINTF_BUFSIZE];
    int len;

    buf[sizeof(buf) - 1] = 0;
#ifdef NO_snprintf
#  ifdef HAS_sprintf_void
    sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8,
            a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
    for (len = 0; len < sizeof(buf); len++)
        if (buf[len] == 0) break;
#  else
    len = sprintf(buf, format, a1, a2, a3, a4, a5, a6, a7, a8,
                a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
#  endif
#else
#  ifdef HAS_snprintf_void
    snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8,
             a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
    len = strlen(buf);
#  else
    len = snprintf(buf, sizeof(buf), format, a1, a2, a3, a4, a5, a6, a7, a8,
                 a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
#  endif
#endif
    if (len <= 0 || len >= sizeof(buf) || buf[sizeof(buf) - 1] != 0)
        return 0;
    return gzwrite(file, buf, len);
}
#endif

/* ===========================================================================
      Writes c, converted to an unsigned char, into the compressed file.
   gzputc returns the value that was written, or -1 in case of error.
*/
int ZEXPORT gzputc(file, c)
    gzFile file;
    int c;
{
    unsigned char cc = (unsigned char) c; /* required for big endian systems */

    return gzwrite(file, &cc, 1) == 1 ? (int)cc : -1;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久不见久久见免费视频7 | 色综合久久精品| 欧美国产在线观看| 成人毛片老司机大片| 亚洲欧美日韩国产中文在线| 欧美性极品少妇| 石原莉奈在线亚洲二区| 日韩亚洲国产中文字幕欧美| 韩国成人精品a∨在线观看| 久久久精品国产免费观看同学| 成人午夜精品在线| 玉足女爽爽91| 日韩视频在线一区二区| 粉嫩久久99精品久久久久久夜| 中文字幕一区二区不卡| 欧美人xxxx| 国产美女在线精品| 一区二区三区在线观看欧美| 56国语精品自产拍在线观看| 精品在线观看免费| 中文字幕一区二区三区蜜月| 欧美日韩国产另类不卡| 国产一区二区三区免费| 综合网在线视频| 日韩亚洲欧美中文三级| 成人三级在线视频| 日韩专区在线视频| 国产精品每日更新| 欧美一区二区三区系列电影| 成人av电影在线播放| 午夜精品福利视频网站| 亚洲国产成人午夜在线一区 | 日韩精彩视频在线观看| 久久精品人人做| 欧美色倩网站大全免费| 国产高清不卡一区| 性做久久久久久久免费看| 国产日韩v精品一区二区| 色综合一区二区| 狠狠色丁香婷婷综合久久片| 一区二区三区欧美| 久久综合色婷婷| 91黄色免费看| 国产成人综合网| 一区二区三区在线观看欧美| 国产日韩欧美高清| 欧美成人a∨高清免费观看| 91成人在线精品| 国产黑丝在线一区二区三区| 男人的天堂久久精品| 亚洲欧美日韩久久精品| 国产女同性恋一区二区| 日韩午夜中文字幕| 欧美色成人综合| 97久久超碰国产精品| 国产成人精品免费一区二区| 久久精品国产免费| 午夜久久电影网| 亚洲人精品一区| 亚洲欧洲成人精品av97| 日本一区二区成人在线| www欧美成人18+| 精品久久国产老人久久综合| 欧美日韩三级一区二区| 欧美三级在线播放| 欧美色综合久久| 欧美影院午夜播放| 欧美亚洲高清一区二区三区不卡| 91视频一区二区三区| 粉嫩13p一区二区三区| 国模大尺度一区二区三区| 美女视频网站久久| 美国三级日本三级久久99| 天堂成人免费av电影一区| 亚洲一区二区不卡免费| 亚洲一区二区三区自拍| 亚洲综合偷拍欧美一区色| 亚洲日本va在线观看| 亚洲另类色综合网站| 亚洲精品国久久99热| 一区二区三区自拍| 亚洲一区二区五区| 一区二区三区日韩| 国产精品毛片高清在线完整版 | 久久综合九色欧美综合狠狠| 日韩欧美在线123| 日韩欧美一级二级三级久久久| 日韩美女一区二区三区四区| 久久这里都是精品| 久久午夜免费电影| 中文字幕视频一区二区三区久| 亚洲婷婷综合色高清在线| 亚洲国产视频一区二区| 免费在线成人网| 国产精品 日产精品 欧美精品| 99久久99久久综合| 欧美日韩亚洲综合在线| 精品日韩一区二区三区免费视频| 久久久久久久久一| 亚洲欧美日韩电影| 日韩精品电影在线| 国产91精品露脸国语对白| 91福利视频网站| 日韩一区二区三区在线| 国产欧美日韩不卡免费| 亚洲日本免费电影| 麻豆高清免费国产一区| 成人app在线| 欧美日韩国产高清一区二区三区| 欧美成人三级在线| 国产精品国产三级国产aⅴ中文| 亚洲视频综合在线| 亚洲电影第三页| 日本不卡一区二区| 不卡电影一区二区三区| 欧美日韩在线播放三区| 日韩一区二区视频| 国产三区在线成人av| 亚洲成av人片在线观看| 精品中文av资源站在线观看| 成人av在线观| 欧美日免费三级在线| 欧美精品一区二区高清在线观看| 亚洲精品免费在线播放| 石原莉奈在线亚洲三区| 国产一区久久久| 色综合久久中文字幕综合网| 欧美精品xxxxbbbb| 日韩欧美一区二区不卡| 中文一区在线播放| 午夜一区二区三区视频| 国精产品一区一区三区mba桃花| 成人av先锋影音| 欧美日韩国产一区二区三区地区| 夜夜精品视频一区二区| 成人国产精品免费观看视频| 精品亚洲porn| 亚洲18色成人| 日本欧美一区二区三区| 亚洲成人福利片| 丁香桃色午夜亚洲一区二区三区| 欧美三级视频在线| 国产日韩三级在线| 偷偷要91色婷婷| 97久久精品人人做人人爽50路| 欧美日韩和欧美的一区二区| 国产精品亲子乱子伦xxxx裸| 日韩高清在线不卡| 91麻豆免费观看| 久久久久久影视| 日韩电影在线一区| 欧美女孩性生活视频| 成人欧美一区二区三区视频网页| 日本不卡的三区四区五区| 91一区二区三区在线播放| 欧美电视剧免费全集观看| 男女男精品网站| 在线观看日韩精品| 亚洲丝袜制服诱惑| 成人自拍视频在线观看| 国产嫩草影院久久久久| 美女网站色91| 色噜噜狠狠色综合中国| 国产精品久久久久久户外露出| 狠狠色伊人亚洲综合成人| 精品国产精品一区二区夜夜嗨| 三级欧美韩日大片在线看| 欧美一a一片一级一片| 综合精品久久久| 色综合久久久久久久久久久| 国产精品色眯眯| 国产91清纯白嫩初高中在线观看| 欧美一区二区播放| 亚洲综合精品自拍| 欧美高清dvd| 夜夜嗨av一区二区三区中文字幕| 99国产精品一区| 欧美激情综合在线| jizzjizzjizz欧美| 欧美国产一区二区| 丁香婷婷综合网| 国产午夜精品一区二区| 亚洲一二三区在线观看| 91麻豆精品国产综合久久久久久| 午夜精品久久久久久久久久| 欧美私模裸体表演在线观看| 一区二区三区在线视频播放| 欧美精品 日韩| 日韩在线播放一区二区| 欧美精品v国产精品v日韩精品| 日精品一区二区| 在线电影院国产精品| 久久精品国产精品亚洲红杏| 欧美电影免费观看高清完整版| 久久99精品久久久久婷婷| 精品国产污网站| 99精品一区二区三区| 一区二区三区不卡视频| 欧美精品自拍偷拍动漫精品| 强制捆绑调教一区二区|