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

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

?? ftgzip.c

?? 智能設備中PDF閱讀器的源碼!用于windows mobile2003或者WM5以上
?? C
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************/
/*                                                                         */
/*  ftgzip.c                                                               */
/*                                                                         */
/*    FreeType support for .gz compressed files.                           */
/*                                                                         */
/*  This optional component relies on zlib.  It should mainly be used to   */
/*  parse compressed PCF fonts, as found with many X11 server              */
/*  distributions.                                                         */
/*                                                                         */
/*  Copyright 2002, 2003, 2004, 2005, 2006 by                              */
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
/*                                                                         */
/*  This file is part of the FreeType project, and may only be used,       */
/*  modified, and distributed under the terms of the FreeType project      */
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
/*  this file you indicate that you have read the license and              */
/*  understand and accept it fully.                                        */
/*                                                                         */
/***************************************************************************/


#include <ft2build.h>
#include FT_INTERNAL_MEMORY_H
#include FT_INTERNAL_STREAM_H
#include FT_INTERNAL_DEBUG_H
#include FT_GZIP_H
#include <string.h>


#include FT_MODULE_ERRORS_H

#undef __FTERRORS_H__

#define FT_ERR_PREFIX  Gzip_Err_
#define FT_ERR_BASE    FT_Mod_Err_Gzip

#include FT_ERRORS_H


#ifdef FT_CONFIG_OPTION_USE_ZLIB

#ifdef FT_CONFIG_OPTION_SYSTEM_ZLIB

#include <zlib.h>

#else /* !FT_CONFIG_OPTION_SYSTEM_ZLIB */

 /* In this case, we include our own modified sources of the ZLib    */
 /* within the "ftgzip" component.  The modifications were necessary */
 /* to #include all files without conflicts, as well as preventing   */
 /* the definition of "extern" functions that may cause linking      */
 /* conflicts when a program is linked with both FreeType and the    */
 /* original ZLib.                                                   */

#define NO_DUMMY_DECL
#define MY_ZCALLOC

#include "zlib.h"

#undef  SLOW
#define SLOW  1  /* we can't use asm-optimized sources here! */

  /* Urgh.  `inflate_mask' must not be declared twice -- C++ doesn't like
     this.  We temporarily disable it and load all necessary header files. */
#define NO_INFLATE_MASK
#include "zutil.h"
#include "inftrees.h"
#include "infblock.h"
#include "infcodes.h"
#include "infutil.h"
#undef  NO_INFLATE_MASK

  /* infutil.c must be included before infcodes.c */
#include "zutil.c"
#include "inftrees.c"
#include "infutil.c"
#include "infcodes.c"
#include "infblock.c"
#include "inflate.c"
#include "adler32.c"

#endif /* !FT_CONFIG_OPTION_SYSTEM_ZLIB */


/***************************************************************************/
/***************************************************************************/
/*****                                                                 *****/
/*****            Z L I B   M E M O R Y   M A N A G E M E N T          *****/
/*****                                                                 *****/
/***************************************************************************/
/***************************************************************************/

  /* it is better to use FreeType memory routines instead of raw
     'malloc/free' */

  static voidpf
  ft_gzip_alloc( FT_Memory  memory,
                 uInt       items,
                 uInt       size )
  {
    FT_ULong    sz = (FT_ULong)size * items;
    FT_Error    error;
    FT_Pointer  p;


    (void)FT_ALLOC( p, sz );
    return p;
  }


  static void
  ft_gzip_free( FT_Memory  memory,
                voidpf     address )
  {
    FT_MEM_FREE( address );
  }


#ifndef FT_CONFIG_OPTION_SYSTEM_ZLIB

  local voidpf
  zcalloc ( voidpf    opaque,
            unsigned  items,
            unsigned  size )
  {
    return ft_gzip_alloc( (FT_Memory)opaque, items, size );
  }

  local void
  zcfree( voidpf  opaque,
          voidpf  ptr )
  {
    ft_gzip_free( (FT_Memory)opaque, ptr );
  }

#endif /* !SYSTEM_ZLIB */


/***************************************************************************/
/***************************************************************************/
/*****                                                                 *****/
/*****               Z L I B   F I L E   D E S C R I P T O R           *****/
/*****                                                                 *****/
/***************************************************************************/
/***************************************************************************/

#define FT_GZIP_BUFFER_SIZE  4096

  typedef struct  FT_GZipFileRec_
  {
    FT_Stream  source;         /* parent/source stream        */
    FT_Stream  stream;         /* embedding stream            */
    FT_Memory  memory;         /* memory allocator            */
    z_stream   zstream;        /* zlib input stream           */

    FT_ULong   start;          /* starting position, after .gz header */
    FT_Byte    input[FT_GZIP_BUFFER_SIZE];   /* input read buffer  */

    FT_Byte    buffer[FT_GZIP_BUFFER_SIZE];  /* output buffer      */
    FT_ULong   pos;                          /* position in output */
    FT_Byte*   cursor;
    FT_Byte*   limit;

  } FT_GZipFileRec, *FT_GZipFile;


  /* gzip flag byte */
#define FT_GZIP_ASCII_FLAG   0x01 /* bit 0 set: file probably ascii text */
#define FT_GZIP_HEAD_CRC     0x02 /* bit 1 set: header CRC present */
#define FT_GZIP_EXTRA_FIELD  0x04 /* bit 2 set: extra field present */
#define FT_GZIP_ORIG_NAME    0x08 /* bit 3 set: original file name present */
#define FT_GZIP_COMMENT      0x10 /* bit 4 set: file comment present */
#define FT_GZIP_RESERVED     0xE0 /* bits 5..7: reserved */


  /* check and skip .gz header - we don't support `transparent' compression */
  static FT_Error
  ft_gzip_check_header( FT_Stream  stream )
  {
    FT_Error  error;
    FT_Byte   head[4];


    if ( FT_STREAM_SEEK( 0 )       ||
         FT_STREAM_READ( head, 4 ) )
      goto Exit;

    /* head[0] && head[1] are the magic numbers;    */
    /* head[2] is the method, and head[3] the flags */
    if ( head[0] != 0x1f              ||
         head[1] != 0x8b              ||
         head[2] != Z_DEFLATED        ||
        (head[3] & FT_GZIP_RESERVED)  )
    {
      error = Gzip_Err_Invalid_File_Format;
      goto Exit;
    }

    /* skip time, xflags and os code */
    (void)FT_STREAM_SKIP( 6 );

    /* skip the extra field */
    if ( head[3] & FT_GZIP_EXTRA_FIELD )
    {
      FT_UInt  len;


      if ( FT_READ_USHORT_LE( len ) ||
           FT_STREAM_SKIP( len )    )
        goto Exit;
    }

    /* skip original file name */
    if ( head[3] & FT_GZIP_ORIG_NAME )
      for (;;)
      {
        FT_UInt  c;


        if ( FT_READ_BYTE( c ) )
          goto Exit;

        if ( c == 0 )
          break;
      }

    /* skip .gz comment */
    if ( head[3] & FT_GZIP_COMMENT )
      for (;;)
      {
        FT_UInt  c;


        if ( FT_READ_BYTE( c ) )
          goto Exit;

        if ( c == 0 )
          break;
      }

    /* skip CRC */
    if ( head[3] & FT_GZIP_HEAD_CRC )
      if ( FT_STREAM_SKIP( 2 ) )
        goto Exit;

  Exit:
    return error;
  }


  static FT_Error
  ft_gzip_file_init( FT_GZipFile  zip,
                     FT_Stream    stream,
                     FT_Stream    source )
  {
    z_stream*  zstream = &zip->zstream;
    FT_Error   error   = Gzip_Err_Ok;


    zip->stream = stream;
    zip->source = source;
    zip->memory = stream->memory;

    zip->limit  = zip->buffer + FT_GZIP_BUFFER_SIZE;
    zip->cursor = zip->limit;
    zip->pos    = 0;

    /* check and skip .gz header */
    {
      stream = source;

      error = ft_gzip_check_header( stream );
      if ( error )
        goto Exit;

      zip->start = FT_STREAM_POS();
    }

    /* initialize zlib -- there is no zlib header in the compressed stream */
    zstream->zalloc = (alloc_func)ft_gzip_alloc;
    zstream->zfree  = (free_func) ft_gzip_free;
    zstream->opaque = stream->memory;

    zstream->avail_in = 0;
    zstream->next_in  = zip->buffer;

    if ( inflateInit2( zstream, -MAX_WBITS ) != Z_OK ||
         zstream->next_in == NULL                     )
      error = Gzip_Err_Invalid_File_Format;

  Exit:
    return error;
  }


  static void
  ft_gzip_file_done( FT_GZipFile  zip )
  {
    z_stream*  zstream = &zip->zstream;


    inflateEnd( zstream );

    /* clear the rest */
    zstream->zalloc    = NULL;
    zstream->zfree     = NULL;
    zstream->opaque    = NULL;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产日韩91久久久久久| 夜夜嗨av一区二区三区| 国产精品国产a| 亚洲成人动漫精品| 福利视频网站一区二区三区| 欧美日本一道本| 中文字幕精品综合| 喷水一区二区三区| 91精品1区2区| 国产精品色噜噜| 麻豆成人久久精品二区三区红 | 激情综合色播激情啊| caoporn国产精品| 日韩欧美国产一区二区在线播放 | 亚洲网友自拍偷拍| 成人h动漫精品一区二| 精品国产一区二区三区不卡 | 九九精品视频在线看| 91成人看片片| 亚洲三级在线免费观看| 国产91精品欧美| 久久伊人蜜桃av一区二区| 日本va欧美va瓶| 欧美日韩黄色一区二区| 亚洲精品日韩综合观看成人91| 成人性视频网站| 国产亚洲一区二区在线观看| 国模无码大尺度一区二区三区| 91精品国产福利| 五月天网站亚洲| 欧美老女人第四色| 亚洲国产精品久久久久婷婷884| 色婷婷综合久久久中文一区二区| 中文字幕欧美区| 成人avav在线| 中文字幕日韩欧美一区二区三区| 成人精品高清在线| 国产精品美女久久久久av爽李琼| 成人黄色软件下载| 亚洲人成小说网站色在线| 9i在线看片成人免费| 免费高清在线视频一区·| 欧美日韩黄色影视| 免费一级片91| 久久久噜噜噜久久中文字幕色伊伊| 韩国精品主播一区二区在线观看 | 91精品办公室少妇高潮对白| 亚洲最色的网站| 欧美日韩国产a| 久久国产精品露脸对白| 日本一区二区三区高清不卡| 不卡一区中文字幕| 亚洲va欧美va人人爽午夜| 欧美丰满嫩嫩电影| 国产一区二区免费看| 国产精品你懂的| 在线视频欧美区| 美女国产一区二区三区| 国产亚洲成av人在线观看导航| 99久久er热在这里只有精品66| 亚洲综合激情网| 欧美精品一区在线观看| 91在线一区二区三区| 性做久久久久久久免费看| 精品少妇一区二区三区在线视频| 国产成人自拍网| 亚洲成人av中文| 国产日韩欧美电影| 欧美精品乱人伦久久久久久| 国产精品 欧美精品| 亚洲一区二区三区爽爽爽爽爽| 欧美成人一区二区三区在线观看| 99久久久精品| 蜜桃精品视频在线观看| 一区在线播放视频| 88在线观看91蜜桃国自产| 粉嫩一区二区三区性色av| 夜夜嗨av一区二区三区四季av| 2023国产一二三区日本精品2022| 91碰在线视频| 国产在线不卡一区| 亚洲线精品一区二区三区八戒| 久久久久久夜精品精品免费| 在线观看亚洲专区| 成人激情校园春色| 捆绑紧缚一区二区三区视频| 一区二区三区色| 中文字幕欧美区| 精品国产乱码久久久久久浪潮 | 91精品国产aⅴ一区二区| 成人性生交大合| 日本aⅴ免费视频一区二区三区 | 日韩影院精彩在线| 亚洲va欧美va国产va天堂影院| 久久影院视频免费| 在线综合视频播放| 在线观看国产精品网站| 99精品视频一区| 国产一区二三区好的| 日本在线观看不卡视频| 亚洲一区二区美女| 亚洲人亚洲人成电影网站色| 久久久久国产成人精品亚洲午夜| 日韩午夜小视频| 日韩欧美一区二区免费| 欧美日韩国产另类不卡| 91美女福利视频| 93久久精品日日躁夜夜躁欧美| 国产成人精品网址| 国产精品一卡二| 国产一级精品在线| 久久成人久久爱| 麻豆高清免费国产一区| 免费成人结看片| 久久成人av少妇免费| 久久精品99国产精品| 精品一区二区三区久久| 麻豆成人久久精品二区三区红 | 精品免费国产一区二区三区四区| 7777女厕盗摄久久久| 欧美日韩一本到| 欧美日韩国产高清一区二区| 欧美丰满一区二区免费视频| 51午夜精品国产| 精品女同一区二区| 26uuu精品一区二区| 国产日韩欧美精品电影三级在线| 国产视频在线观看一区二区三区 | 精品国产三级电影在线观看| 欧美成人a∨高清免费观看| 精品国产乱码久久久久久牛牛| 久久久精品免费观看| 国产女主播在线一区二区| 亚洲欧洲三级电影| 一区二区三区小说| 婷婷丁香激情综合| 久久国产精品区| 成人h动漫精品一区二区| 91福利国产成人精品照片| 88在线观看91蜜桃国自产| 26uuu亚洲综合色| 国产精品女同一区二区三区| 玉足女爽爽91| 麻豆精品久久精品色综合| 国产一区二区在线观看免费| 盗摄精品av一区二区三区| 欧美在线观看视频在线| 日韩网站在线看片你懂的| 国产欧美日韩在线看| 伊人开心综合网| 麻豆成人av在线| 91视频在线看| 精品美女一区二区| 亚洲精品你懂的| 91丨九色porny丨蝌蚪| 欧美色区777第一页| 久久婷婷一区二区三区| 亚洲自拍欧美精品| 国产激情一区二区三区四区 | 亚洲精选视频在线| 日韩av在线发布| 99热精品一区二区| 日韩一区二区免费在线观看| 《视频一区视频二区| 看国产成人h片视频| 色婷婷亚洲精品| 久久久久国产成人精品亚洲午夜| 亚洲国产毛片aaaaa无费看 | 久久综合五月天婷婷伊人| 日韩毛片一二三区| 久久99热这里只有精品| 色美美综合视频| 久久久国产精华| 免费av成人在线| 欧美性videosxxxxx| 国产精品久久久久久久久动漫 | 欧美一区二区三区视频| 日韩一区欧美一区| 国产一区二区不卡| 精品久久久三级丝袜| 亚洲高清久久久| 一本到不卡精品视频在线观看| 国产午夜精品在线观看| 六月丁香婷婷色狠狠久久| 欧美年轻男男videosbes| 亚洲免费av高清| 99re这里只有精品首页| 国产精品毛片大码女人| 国产美女av一区二区三区| 日韩一级免费观看| 日韩精品福利网| 欧美日韩大陆一区二区| 一区二区三区免费看视频| av电影在线观看一区| 欧美极品美女视频| 国产99久久久国产精品免费看| 久久久精品影视| 国产乱码一区二区三区| 国产亚洲欧美一级| 国产福利一区在线|