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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cidparse.c

?? 智能設(shè)備中PDF閱讀器的源碼!用于windows mobile2003或者WM5以上
?? C
字號(hào):
/***************************************************************************/
/*                                                                         */
/*  cidparse.c                                                             */
/*                                                                         */
/*    CID-keyed Type1 parser (body).                                       */
/*                                                                         */
/*  Copyright 1996-2001, 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_DEBUG_H
#include FT_INTERNAL_CALC_H
#include FT_INTERNAL_OBJECTS_H
#include FT_INTERNAL_STREAM_H

#include "cidparse.h"

#include "ciderrs.h"


  /*************************************************************************/
  /*                                                                       */
  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */
  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */
  /* messages during execution.                                            */
  /*                                                                       */
#undef  FT_COMPONENT
#define FT_COMPONENT  trace_cidparse


  /*************************************************************************/
  /*************************************************************************/
  /*************************************************************************/
  /*****                                                               *****/
  /*****                    INPUT STREAM PARSER                        *****/
  /*****                                                               *****/
  /*************************************************************************/
  /*************************************************************************/
  /*************************************************************************/


  FT_LOCAL_DEF( FT_Error )
  cid_parser_new( CID_Parser*    parser,
                  FT_Stream      stream,
                  FT_Memory      memory,
                  PSAux_Service  psaux )
  {
    FT_Error  error;
    FT_ULong  base_offset, offset, ps_len;
    FT_Byte   *cur, *limit;
    FT_Byte   *arg1, *arg2;


    FT_MEM_ZERO( parser, sizeof ( *parser ) );
    psaux->ps_parser_funcs->init( &parser->root, 0, 0, memory );

    parser->stream = stream;

    base_offset = FT_STREAM_POS();

    /* first of all, check the font format in the header */
    if ( FT_FRAME_ENTER( 31 ) )
      goto Exit;

    if ( ft_strncmp( (char *)stream->cursor,
                     "%!PS-Adobe-3.0 Resource-CIDFont", 31 ) )
    {
      FT_TRACE2(( "[not a valid CID-keyed font]\n" ));
      error = CID_Err_Unknown_File_Format;
    }

    FT_FRAME_EXIT();
    if ( error )
      goto Exit;

  Again:
    /* now, read the rest of the file until we find a `StartData' */
    {
      FT_Byte   buffer[256 + 10];
      FT_Int    read_len = 256 + 10;
      FT_Byte*  p        = buffer;


      for ( offset = (FT_ULong)FT_STREAM_POS(); ; offset += 256 )
      {
        FT_Int    stream_len;


        stream_len = stream->size - FT_STREAM_POS();
        if ( stream_len == 0 )
          goto Exit;

        read_len = FT_MIN( read_len, stream_len );
        if ( FT_STREAM_READ( p, read_len ) )
          goto Exit;

        if ( read_len < 256 )
          p[read_len]  = '\0';

        limit = p + read_len - 10;

        for ( p = buffer; p < limit; p++ )
        {
          if ( p[0] == 'S' && ft_strncmp( (char*)p, "StartData", 9 ) == 0 )
          {
            /* save offset of binary data after `StartData' */
            offset += p - buffer + 10;
            goto Found;
          }
        }

        FT_MEM_MOVE( buffer, p, 10 );
        read_len = 256;
        p = buffer + 10;
      }
    }

  Found:
    /* We have found the start of the binary data.  Now rewind and */
    /* extract the frame corresponding to the PostScript section.  */

    ps_len = offset - base_offset;
    if ( FT_STREAM_SEEK( base_offset )                  ||
         FT_FRAME_EXTRACT( ps_len, parser->postscript ) )
      goto Exit;

    parser->data_offset    = offset;
    parser->postscript_len = ps_len;
    parser->root.base      = parser->postscript;
    parser->root.cursor    = parser->postscript;
    parser->root.limit     = parser->root.cursor + ps_len;
    parser->num_dict       = -1;

    /* Finally, we check whether `StartData' was real -- it could be  */
    /* in a comment or string.  We also get its arguments to find out */
    /* whether the data is represented in binary or hex format.       */

    arg1 = parser->root.cursor;
    cid_parser_skip_PS_token( parser );
    cid_parser_skip_spaces  ( parser );
    arg2 = parser->root.cursor;
    cid_parser_skip_PS_token( parser );
    cid_parser_skip_spaces  ( parser );

    limit = parser->root.limit;
    cur   = parser->root.cursor;

    while ( cur < limit )
    {
      if ( parser->root.error )
        break;

      if ( *cur == 'S' && ft_strncmp( (char*)cur, "StartData", 9 ) == 0 )
      {
        if ( ft_strncmp( (char*)arg1, "(Hex)", 5 ) == 0 )
          parser->binary_length = ft_atol( (const char *)arg2 );

        limit = parser->root.limit;
        cur   = parser->root.cursor;
        goto Exit;
      }

      cid_parser_skip_PS_token( parser );
      cid_parser_skip_spaces  ( parser );
      arg1 = arg2;
      arg2 = cur;
      cur  = parser->root.cursor;
    }

    /* we haven't found the correct `StartData'; go back and continue */
    /* searching                                                      */
    FT_FRAME_RELEASE( parser->postscript );
    if ( !FT_STREAM_SEEK( offset ) )
      goto Again;

  Exit:
    return error;
  }


  FT_LOCAL_DEF( void )
  cid_parser_done( CID_Parser*  parser )
  {
    /* always free the private dictionary */
    if ( parser->postscript )
    {
      FT_Stream  stream = parser->stream;


      FT_FRAME_RELEASE( parser->postscript );
    }
    parser->root.funcs.done( &parser->root );
  }


/* END */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品无人区卡一卡二卡三乱码免费卡| 国产精品欧美久久久久无广告| 91精品福利视频| bt欧美亚洲午夜电影天堂| 国产成人免费视频网站| 国产福利一区二区| 成人黄色在线网站| 91亚洲精品久久久蜜桃网站| 99精品一区二区| 色综合久久九月婷婷色综合| 色成年激情久久综合| 有码一区二区三区| 色噜噜狠狠色综合欧洲selulu| www.在线成人| 色偷偷一区二区三区| 欧美三级电影一区| 91精选在线观看| 欧美tk—视频vk| 国产欧美日韩精品a在线观看| 国产欧美一区二区三区沐欲| 亚洲欧洲日产国码二区| 亚洲精品免费视频| 水野朝阳av一区二区三区| 免费成人在线播放| 久久99精品国产.久久久久| 国产精品一区在线观看乱码| 成人高清免费观看| 欧美又粗又大又爽| 538在线一区二区精品国产| 精品久久久久久久久久久久包黑料 | 久久亚洲二区三区| 国产日韩欧美高清| 亚洲精品va在线观看| 午夜精品福利一区二区蜜股av| 久久99精品国产91久久来源| 成人美女视频在线观看18| 日本精品一级二级| 欧美不卡一区二区| 国产精品久久久久久久久久免费看| 曰韩精品一区二区| 精品一二线国产| 久久综合网色—综合色88| 亚洲欧美怡红院| 秋霞成人午夜伦在线观看| 国产精品18久久久久久久久| 色香蕉成人二区免费| 欧美大白屁股肥臀xxxxxx| 国产精品护士白丝一区av| 日韩国产一二三区| 成人av资源站| 日韩三级免费观看| 亚洲欧洲精品一区二区三区| 免费在线看一区| av高清不卡在线| 日韩欧美国产精品| 亚洲综合丁香婷婷六月香| 国产麻豆一精品一av一免费| 精品视频在线视频| 国产视频一区二区在线观看| 日精品一区二区| 波多野洁衣一区| 日韩欧美一区二区在线视频| 中文字幕一区二区三区四区不卡| 日本不卡高清视频| 色婷婷久久久亚洲一区二区三区 | 久久久不卡影院| 亚洲一区二区三区四区五区中文 | 99视频精品全部免费在线| 欧美顶级少妇做爰| 亚洲日本欧美天堂| 精品一区二区三区在线播放视频 | 国产精品美女一区二区在线观看| 亚欧色一区w666天堂| 99re免费视频精品全部| 久久一日本道色综合| 天天综合网 天天综合色| 色屁屁一区二区| 国产精品天美传媒沈樵| 久久av资源网| 91精品国产综合久久久蜜臀图片| 亚洲免费观看高清完整版在线观看熊| 国产成人免费视频网站| 精品国产免费人成在线观看| 日韩精品福利网| 欧美日韩国产片| 亚洲午夜久久久久久久久久久| 99r国产精品| 国产精品久久久久久久久免费桃花 | 一区二区日韩电影| 91在线观看污| 亚洲欧洲日产国产综合网| 成人性生交大片免费看在线播放 | 一区二区三区精品久久久| 成人美女在线观看| 欧美国产欧美亚州国产日韩mv天天看完整 | 美女在线视频一区| 5月丁香婷婷综合| 丝袜美腿亚洲综合| 欧美日韩大陆一区二区| 亚洲成国产人片在线观看| 91亚洲精品久久久蜜桃| 亚洲日本乱码在线观看| 色综合久久综合| 亚洲精品日韩一| 在线观看亚洲精品| 亚洲大尺度视频在线观看| 精品视频一区二区不卡| 婷婷丁香久久五月婷婷| 欧美一卡在线观看| 久久精品国产网站| 久久免费午夜影院| 粉嫩一区二区三区性色av| 国产精品免费久久| 色综合 综合色| 亚洲综合免费观看高清完整版在线| 欧亚一区二区三区| 午夜av电影一区| 精品国产一区二区国模嫣然| 狠狠色狠狠色综合| 中文文精品字幕一区二区| 91免费看`日韩一区二区| 亚洲在线视频网站| 91精品国产色综合久久ai换脸| 久久成人久久鬼色| 国产视频一区在线观看| 91丨porny丨最新| 亚洲福中文字幕伊人影院| 日韩欧美美女一区二区三区| 国内一区二区在线| 综合婷婷亚洲小说| 欧美色综合影院| 久久99精品久久久久久国产越南| 久久久91精品国产一区二区三区| 成人毛片老司机大片| 亚洲夂夂婷婷色拍ww47| 欧美成人video| 大陆成人av片| 亚洲高清免费视频| 久久久www免费人成精品| 色综合久久中文字幕综合网| 美女免费视频一区| 国产精品成人免费精品自在线观看| 91久久精品国产91性色tv| 免费一级片91| 亚洲婷婷综合色高清在线| 91精品国产综合久久久久久| 国产suv精品一区二区883| 亚洲电影在线免费观看| 久久综合色8888| 欧美在线综合视频| 精品在线播放免费| 一区二区三区欧美亚洲| 精品福利视频一区二区三区| 欧美日韩二区三区| 精彩视频一区二区| 亚洲日韩欧美一区二区在线| 日韩午夜电影av| 一道本成人在线| 国内精品自线一区二区三区视频| 亚洲欧美另类综合偷拍| 精品久久人人做人人爽| 日本大香伊一区二区三区| 日韩视频免费观看高清完整版在线观看 | 91麻豆精品国产91久久久久久 | av电影天堂一区二区在线观看| 首页亚洲欧美制服丝腿| 中文字幕亚洲一区二区av在线| 欧美挠脚心视频网站| 99久久综合狠狠综合久久| 狠狠色丁香久久婷婷综| 亚洲一区二区免费视频| 国产精品久久久久久久久免费相片 | 老司机精品视频导航| 亚洲激情在线激情| 日本一区二区三区四区在线视频| 91精品久久久久久蜜臀| 色狠狠av一区二区三区| 粉嫩一区二区三区在线看| 久久国产婷婷国产香蕉| 午夜私人影院久久久久| 成人免费小视频| 国产人成亚洲第一网站在线播放| 欧美一卡二卡三卡四卡| 欧美日韩精品欧美日韩精品| 色婷婷国产精品久久包臀| 成人综合在线网站| 国内成人精品2018免费看| 午夜精品一区二区三区免费视频| 亚洲女人小视频在线观看| 国产精品美女视频| 久久久久久电影| 精品国产免费人成在线观看| 欧美一级在线免费| 欧美精品粉嫩高潮一区二区| 欧美综合一区二区三区| 色素色在线综合| 色女孩综合影院| 欧美亚洲综合在线| 91黄色免费观看| 欧美综合欧美视频|