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

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

?? t42parse.c

?? QT 開發環境里面一個很重要的文件
?? C
?? 第 1 頁 / 共 3 頁
字號:
          {            FT_TRACE6(( "encoding end\n" ));            cur += 3;            break;          }        }        if ( *cur == ']' )        {          FT_TRACE6(( "encoding end\n" ));          cur++;          break;        }        /* check whether we've found an entry */        if ( ft_isdigit( *cur ) || only_immediates )        {          FT_Int  charcode;          if ( only_immediates )            charcode = n;          else          {            charcode = (FT_Int)T1_ToInt( parser );            T1_Skip_Spaces( parser );          }          cur = parser->root.cursor;          if ( *cur == '/' && cur + 2 < limit && n < count )          {            FT_PtrDist  len;            cur++;            parser->root.cursor = cur;            T1_Skip_PS_Token( parser );            if ( parser->root.error )              return;            len = parser->root.cursor - cur;            parser->root.error = T1_Add_Table( char_table, charcode,                                               cur, len + 1 );            if ( parser->root.error )              return;            char_table->elements[charcode][len] = '\0';            n++;          }        }        else          T1_Skip_PS_Token( parser );        T1_Skip_Spaces( parser );      }      face->type1.encoding_type  = T1_ENCODING_TYPE_ARRAY;      parser->root.cursor        = cur;    }    /* Otherwise, we should have either `StandardEncoding', */    /* `ExpertEncoding', or `ISOLatin1Encoding'             */    else    {      if ( cur + 17 < limit                                            &&           ft_strncmp( (const char*)cur, "StandardEncoding", 16 ) == 0 )        face->type1.encoding_type = T1_ENCODING_TYPE_STANDARD;      else if ( cur + 15 < limit                                          &&                ft_strncmp( (const char*)cur, "ExpertEncoding", 14 ) == 0 )        face->type1.encoding_type = T1_ENCODING_TYPE_EXPERT;      else if ( cur + 18 < limit                                             &&                ft_strncmp( (const char*)cur, "ISOLatin1Encoding", 17 ) == 0 )        face->type1.encoding_type = T1_ENCODING_TYPE_ISOLATIN1;      else      {        FT_ERROR(( "t42_parse_encoding: invalid token!\n" ));        parser->root.error = T42_Err_Invalid_File_Format;      }    }  }  typedef enum  {    BEFORE_START,    BEFORE_TABLE_DIR,    OTHER_TABLES  } T42_Load_Status;  static void  t42_parse_sfnts( T42_Face    face,                   T42_Loader  loader )  {    T42_Parser  parser = &loader->parser;    FT_Memory   memory = parser->root.memory;    FT_Byte*    cur;    FT_Byte*    limit  = parser->root.limit;    FT_Error    error;    FT_Int      num_tables = 0;    FT_ULong    count, ttf_size = 0;    FT_Long     n, string_size, old_string_size, real_size;    FT_Byte*    string_buf = NULL;    FT_Bool     alloc      = 0;    T42_Load_Status  status;    /* The format is                                */    /*                                              */    /*   /sfnts [ <hexstring> <hexstring> ... ] def */    /*                                              */    /* or                                           */    /*                                              */    /*   /sfnts [                                   */    /*      <num_bin_bytes> RD <binary data>        */    /*      <num_bin_bytes> RD <binary data>        */    /*      ...                                     */    /*   ] def                                      */    /*                                              */    /* with exactly one space after the `RD' token. */    T1_Skip_Spaces( parser );    if ( parser->root.cursor >= limit || *parser->root.cursor++ != '[' )    {      FT_ERROR(( "t42_parse_sfnts: can't find begin of sfnts vector!\n" ));      error = T42_Err_Invalid_File_Format;      goto Fail;    }    T1_Skip_Spaces( parser );    status          = BEFORE_START;    string_size     = 0;    old_string_size = 0;    count           = 0;    while ( parser->root.cursor < limit )    {      cur = parser->root.cursor;      if ( *cur == ']' )      {        parser->root.cursor++;        goto Exit;      }      else if ( *cur == '<' )      {        T1_Skip_PS_Token( parser );        if ( parser->root.error )          goto Exit;        /* don't include delimiters */        string_size = (FT_Long)( ( parser->root.cursor - cur - 2 + 1 ) / 2 );        if ( FT_REALLOC( string_buf, old_string_size, string_size ) )          goto Fail;        alloc = 1;        parser->root.cursor = cur;        (void)T1_ToBytes( parser, string_buf, string_size, &real_size, 1 );        old_string_size = string_size;        string_size = real_size;      }      else if ( ft_isdigit( *cur ) )      {        string_size = T1_ToInt( parser );        T1_Skip_PS_Token( parser );             /* `RD' */        if ( parser->root.error )          return;        string_buf = parser->root.cursor + 1;   /* one space after `RD' */        parser->root.cursor += string_size + 1;        if ( parser->root.cursor >= limit )        {          FT_ERROR(( "t42_parse_sfnts: too many binary data!\n" ));          error = T42_Err_Invalid_File_Format;          goto Fail;        }      }      /* A string can have a trailing zero byte for padding.  Ignore it. */      if ( string_buf[string_size - 1] == 0 && ( string_size % 2 == 1 ) )        string_size--;      for ( n = 0; n < string_size; n++ )      {        switch ( status )        {        case BEFORE_START:          /* load offset table, 12 bytes */          if ( count < 12 )          {            face->ttf_data[count++] = string_buf[n];            continue;          }          else          {            num_tables = 16 * face->ttf_data[4] + face->ttf_data[5];            status     = BEFORE_TABLE_DIR;            ttf_size   = 12 + 16 * num_tables;            if ( FT_REALLOC( face->ttf_data, 12, ttf_size ) )              goto Fail;          }          /* fall through */        case BEFORE_TABLE_DIR:          /* the offset table is read; read the table directory */          if ( count < ttf_size )          {            face->ttf_data[count++] = string_buf[n];            continue;          }          else          {            int       i;            FT_ULong  len;            for ( i = 0; i < num_tables; i++ )            {              FT_Byte*  p = face->ttf_data + 12 + 16 * i + 12;              len = FT_PEEK_ULONG( p );              /* Pad to a 4-byte boundary length */              ttf_size += ( len + 3 ) & ~3;            }            status         = OTHER_TABLES;            face->ttf_size = ttf_size;            /* there are no more than 256 tables, so no size check here */            if ( FT_REALLOC( face->ttf_data, 12 + 16 * num_tables,                             ttf_size + 1 ) )              goto Fail;          }          /* fall through */        case OTHER_TABLES:          /* all other tables are just copied */          if ( count >= ttf_size )          {            FT_ERROR(( "t42_parse_sfnts: too many binary data!\n" ));            error = T42_Err_Invalid_File_Format;            goto Fail;          }          face->ttf_data[count++] = string_buf[n];        }      }      T1_Skip_Spaces( parser );    }    /* if control reaches this point, the format was not valid */    error = T42_Err_Invalid_File_Format;  Fail:    parser->root.error = error;  Exit:    if ( alloc )      FT_FREE( string_buf );  }  static void  t42_parse_charstrings( T42_Face    face,                         T42_Loader  loader )  {    T42_Parser     parser       = &loader->parser;    PS_Table       code_table   = &loader->charstrings;    PS_Table       name_table   = &loader->glyph_names;    PS_Table       swap_table   = &loader->swap_table;    FT_Memory      memory       = parser->root.memory;    FT_Error       error;    PSAux_Service  psaux        = (PSAux_Service)face->psaux;    FT_Byte*       cur;    FT_Byte*       limit        = parser->root.limit;    FT_UInt        n;    FT_UInt        notdef_index = 0;    FT_Byte        notdef_found = 0;    T1_Skip_Spaces( parser );    if ( parser->root.cursor >= limit )    {      FT_ERROR(( "t42_parse_charstrings: out of bounds!\n" ));      error = T42_Err_Invalid_File_Format;      goto Fail;    }    if ( ft_isdigit( *parser->root.cursor ) )    {      loader->num_glyphs = (FT_UInt)T1_ToInt( parser );      if ( parser->root.error )        return;    }    else if ( *parser->root.cursor == '<' )    {      /* We have `<< ... >>'.  Count the number of `/' in the dictionary */      /* to get its size.                                                */      FT_UInt  count = 0;      T1_Skip_PS_Token( parser );      if ( parser->root.error )        return;      T1_Skip_Spaces( parser );      cur = parser->root.cursor;      while ( parser->root.cursor < limit )      {        if ( *parser->root.cursor == '/' )          count++;        else if ( *parser->root.cursor == '>' )        {          loader->num_glyphs  = count;          parser->root.cursor = cur;        /* rewind */          break;        }        T1_Skip_PS_Token( parser );        if ( parser->root.error )          return;        T1_Skip_Spaces( parser );      }    }    else    {      FT_ERROR(( "t42_parse_charstrings: invalid token!\n" ));      error = T42_Err_Invalid_File_Format;      goto Fail;    }    if ( parser->root.cursor >= limit )    {      FT_ERROR(( "t42_parse_charstrings: out of bounds!\n" ));      error = T42_Err_Invalid_File_Format;      goto Fail;    }    /* initialize tables */    error = psaux->ps_table_funcs->init( code_table,                                         loader->num_glyphs,                                         memory );    if ( error )      goto Fail;    error = psaux->ps_table_funcs->init( name_table,                                         loader->num_glyphs,                                         memory );    if ( error )      goto Fail;    /* Initialize table for swapping index notdef_index and */    /* index 0 names and codes (if necessary).              */    error = psaux->ps_table_funcs->init( swap_table, 4, memory );    if ( error )      goto Fail;    n = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人精品1024| 国产精品久久久久毛片软件| 天天综合天天做天天综合| 欧美日韩一区小说| 午夜国产精品一区| 日韩欧美国产午夜精品| 久久爱另类一区二区小说| 国产色爱av资源综合区| a级精品国产片在线观看| 综合激情网...| 欧美日韩成人综合| 国产在线视频一区二区| 中文幕一区二区三区久久蜜桃| 99久久免费国产| 日本欧美一区二区| 欧美精品一区二区三| av亚洲精华国产精华| 午夜欧美视频在线观看| 久久精品人人做人人爽人人| 99久久久无码国产精品| 日本女人一区二区三区| 国产精品久久久久久亚洲毛片| 在线精品视频免费观看| 捆绑变态av一区二区三区| 国产精品情趣视频| 制服视频三区第一页精品| 国产高清精品在线| 亚洲18影院在线观看| 国产日韩欧美不卡在线| 欧洲精品一区二区| 国产精品456| 亚洲黄色片在线观看| 久久色在线观看| 欧美日韩精品一区二区三区四区| 国产麻豆精品久久一二三| 一区二区三区国产精品| 2022国产精品视频| 欧美日韩aaa| 亚洲电影激情视频网站| 免费观看91视频大全| 国产精品黄色在线观看| 26uuu另类欧美亚洲曰本| 色先锋aa成人| 国产v综合v亚洲欧| 免费成人性网站| 亚洲综合色区另类av| 国产精品少妇自拍| 欧美成人r级一区二区三区| 91免费小视频| 成人午夜精品在线| 久久精品av麻豆的观看方式| 亚洲激情男女视频| 国产精品久久综合| 国产日韩视频一区二区三区| 欧美一区二区在线视频| 在线看不卡av| 色婷婷亚洲综合| 色一区在线观看| 不卡一卡二卡三乱码免费网站| 久久99久久久欧美国产| 日韩成人午夜电影| 亚洲高清视频中文字幕| 一区二区三区四区激情| 亚洲视频每日更新| 国产精品成人一区二区三区夜夜夜 | 日本女人一区二区三区| 亚洲国产成人精品视频| 亚洲卡通动漫在线| 亚洲蜜桃精久久久久久久| 国产精品久久久久影院亚瑟| 国产精品久久久久一区二区三区 | 亚洲欧美另类在线| 国产精品第五页| 国产精品入口麻豆原神| 中文字幕免费在线观看视频一区| 久久综合五月天婷婷伊人| 精品国产乱码久久久久久牛牛| 欧美一区二区国产| 日韩欧美国产小视频| 欧美成人午夜电影| 久久久久久久久久久久久夜| 国产午夜一区二区三区| 国产欧美日韩精品在线| 国产精品久久久久久久岛一牛影视 | 日本vs亚洲vs韩国一区三区二区| 亚洲一区二区三区中文字幕在线| 亚洲午夜激情网站| 日本亚洲一区二区| 麻豆极品一区二区三区| 国产剧情在线观看一区二区| 国产成人日日夜夜| kk眼镜猥琐国模调教系列一区二区 | av激情亚洲男人天堂| 色狠狠色噜噜噜综合网| 欧洲视频一区二区| 91精品国产一区二区三区蜜臀| 91麻豆精品国产| 日韩欧美资源站| 国产人久久人人人人爽| 国产精品蜜臀在线观看| 亚洲午夜免费视频| 麻豆国产精品官网| 成人影视亚洲图片在线| 色一区在线观看| 欧美一区二区三区影视| 国产性色一区二区| 亚洲精选视频在线| 免费成人深夜小野草| 国产91丝袜在线播放0| 色94色欧美sute亚洲线路一ni| 欧美日韩精品系列| 国产日韩欧美一区二区三区综合| 亚洲天堂2016| 美腿丝袜在线亚洲一区| 成人一级片网址| 911精品产国品一二三产区| 久久午夜老司机| 一区二区日韩av| 精品制服美女丁香| 91蝌蚪国产九色| 精品国产sm最大网站免费看| 一区二区三区中文字幕电影| 激情小说亚洲一区| 在线一区二区视频| 国产午夜久久久久| 日韩国产欧美视频| 色狠狠综合天天综合综合| www国产亚洲精品久久麻豆| 一区二区成人在线视频 | 中文字幕一区二区在线观看| 日本不卡一二三| 91丨九色porny丨蝌蚪| 精品国产成人系列| 五月天激情综合网| 91在线精品秘密一区二区| 欧美精品一区二区三| 天天综合色天天综合色h| 91亚洲精品久久久蜜桃网站| 久久综合色之久久综合| 亚洲一区二区三区激情| a在线欧美一区| 26uuu亚洲| 久久精品国产在热久久| 欧美午夜理伦三级在线观看| 国产精品美女久久久久久久久| 久久激五月天综合精品| 91.xcao| 亚洲第一av色| 色哟哟一区二区在线观看| 国产精品免费久久| 东方aⅴ免费观看久久av| 精品福利一区二区三区 | 亚洲一区二区三区四区的| 成人高清视频在线| 日本一区二区三区四区在线视频 | 亚洲国产一区在线观看| 91女厕偷拍女厕偷拍高清| 国产精品视频一区二区三区不卡| 国产乱码精品一品二品| 久久男人中文字幕资源站| 精久久久久久久久久久| 欧美r级在线观看| 精品一区二区国语对白| 日韩欧美国产高清| 久久精品国产亚洲aⅴ| 91精品婷婷国产综合久久竹菊| 一区二区久久久| 欧美日韩一卡二卡三卡| 亚洲国产精品久久艾草纯爱| 在线观看亚洲专区| 午夜精品久久久久久久久久久 | 亚洲男女一区二区三区| 日本久久一区二区| 一区二区三区在线观看动漫| 在线一区二区视频| 午夜成人免费视频| 91精品国产91综合久久蜜臀| 日日夜夜一区二区| 久久综合九色综合欧美98| 国产成人精品网址| 1000精品久久久久久久久| 色屁屁一区二区| 五月激情综合网| wwwwxxxxx欧美| eeuss国产一区二区三区| 一区二区三区四区激情| 欧美日韩1234| 美日韩一区二区| 国产三级欧美三级| 99国产欧美久久久精品| 亚洲国产精品久久人人爱| 日韩一区二区免费电影| 国产一区二区看久久| 亚洲手机成人高清视频| 欧美最猛性xxxxx直播| 久久99久久精品欧美| 国产精品乱人伦| 欧美日本视频在线| 国产一区二区三区最好精华液| 国产精品三级视频|