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

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

?? ttfdump.c

?? ttfdump源代碼
?? C
字號:
#include <string.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include "config.h"#include "ttf.h"#include "ttfutil.h"#include "ttc.h"#ifdef MEMCHECK#include <dmalloc.h>#endif/* $Id: ttfdump.c,v 1.2 1998/07/04 13:17:52 werner Exp $  */#ifndef lintstatic char vcid[] = "$Id: ttfdump.c,v 1.2 1998/07/04 13:17:52 werner Exp $";#endif /* lint */#define MAXLEN 256#define ALL_GLYF -1#define NO_GLYF -2static char ttfname[MAXLEN], dumpname[MAXLEN];static TTFontPtr font;static void print_ttc(TTCHeaderPtr ttc, FILE *out);static void print_prologue(FILE *out);static void print_offset(FILE *out);static void print_dir(FILE *out);static void print_all_tables(FILE *dp_file);static void print_table(FILE *out, char *tablename);static void print_cmap(FILE *out);static void print_glyf(FILE *out, ULONG index);static void print_all_glyfs(FILE *out);static void print_head(FILE *out);static void print_hhea(FILE *out);static void print_hmtx(FILE *out);static void print_loca(FILE *out);static void print_maxp(FILE *out);static void print_name(FILE *out);static void print_post(FILE *out);static void print_os2(FILE *out);static void print_cvt(FILE *out);static void print_fpgm(FILE *out);static void print_gasp(FILE *out);static void print_hdmx(FILE *out);static void print_kern(FILE *out);static void print_ltsh(FILE *out);static void print_pclt(FILE *out);static void print_prep(FILE *out);static void print_vdmx(FILE *out);static void print_vhea(FILE *out);static void print_vmtx(FILE *out);static void dialog (int argc, char *argv[]);static void usage (void);static void add_suffix (char *name, char *suffix);#if !defined(EXIT_FAILURE)#define EXIT_FAILURE 1#endif#if !defined(EXIT_SUCCESS)#define EXIT_SUCCESS 0#endif/* strdup() is not available on all platforms; this version has been * contributed by Nelson Beebe. */char *Strdup(const char *s){  char *p;  p = malloc(((s == (const char *)NULL) ? 0 : strlen (s)) + 1);  if (p == (char *)NULL)  {    (void)fprintf(stderr, "Out of memory in Strdup()\n");    exit(EXIT_FAILURE);  }  return strcpy(p, s);}intmain(int argc, char *argv[]){  FILE *tt_file, *dp_file;  TTCHeaderPtr ttc;  int c;  extern int optind;  extern char *optarg;  char *options, *value;  char *tablename = NULL;  /* print all glyphs by default */  int glyphnum = ALL_GLYF, collection = 0;  if (argc < 2)  {    usage();    exit(EXIT_FAILURE);  }  while ((c = getopt(argc, argv, "t:g:c:i:o:h")) != EOF)  {    switch (c)    {    case 't':      tablename = Strdup(optarg);      break;    case 'g':      if (strcmp(optarg, "x") == 0)        glyphnum = NO_GLYF;      else        glyphnum = atoi(optarg);      break;    case 'c':      collection = atoi(optarg);      break;    case 'i':      strcpy(ttfname, optarg);      break;    case 'o':      strcpy(dumpname, optarg);      break;    case 'h':    case '?':      usage();      exit(EXIT_FAILURE);      break;    }  }  /* processing ttf file if -i flag is not given */  if (*ttfname == 0 && optind < argc)  {    strcpy(ttfname, argv[optind]);  }  /* processing dumping file if -o flag is not given */  if (*dumpname == 0)  {    if (optind + 1 < argc)    {      /* no -o flag but dumping filename specified */      strcpy(dumpname, argv[optind + 1]);    }    else      strcpy(dumpname, "-");  }  if (!strcmp(dumpname, "-"))  {    dp_file = stdout;  }  else if ((dp_file = fopen(dumpname, "wt")) == NULL)  {    fprintf(stderr, "Can't open dumping file\n");    exit(EXIT_FAILURE);  }  if (strstr (ttfname, "ttc") != NULL)  {    ttc = ttfLoadTTCHeader(ttfname);    if (collection < ttc->DirCount)      font = ttc->font + collection;    else      fprintf (stderr, "TrueType collection number too large\n"               "should between 0 and %d\n", ttc->DirCount - 1);  }  else    font = ttfInitFont(ttfname);  if (font == NULL)    exit(EXIT_FAILURE);  print_prologue(dp_file);  if (strstr(ttfname, "ttc") != NULL)  {    print_ttc(ttc, dp_file);  }  print_offset(dp_file);  print_dir(dp_file);  if (tablename == NULL)  {    /* no table specified */    print_all_tables(dp_file);    if (glyphnum == ALL_GLYF)      print_all_glyfs(dp_file);    else if (glyphnum == NO_GLYF)      ;    else      print_glyf(dp_file, glyphnum);  }  else  {    /* table specified */    print_table(dp_file, tablename);    if (!strcmp(tablename, "glyf"))    {      if (glyphnum == ALL_GLYF)        print_all_glyfs(dp_file);      else if (glyphnum == NO_GLYF)        ;      else        print_glyf(dp_file, glyphnum);    }  }  if (strstr(ttfname, "ttc") != NULL)  {    ttfFreeTTCFont(ttc);  }  else  {    ttfFreeFont(font);  }  exit(EXIT_SUCCESS);}static voidprint_table(FILE *out, char *tablename){  if (!strcmp(tablename, "cmap"))    print_cmap(out);  if (!strcmp(tablename, "head"))    print_head(out);  if (!strcmp(tablename, "hhea"))    print_hhea(out);  if (!strcmp(tablename, "hmtx"))    print_hmtx(out);  if (!strcmp(tablename, "loca"))    print_loca(out);  if (!strcmp(tablename, "maxp"))    print_maxp(out);  if (!strcmp(tablename, "name"))    print_name(out);  if (!strcmp(tablename, "post"))    print_post(out);  if (!strcmp(tablename, "OS/2"))    print_os2(out);  if (!strcmp(tablename, "cvt"))    print_cvt(out);  if (!strcmp(tablename, "fpgm"))    print_fpgm(out);  if (!strcmp(tablename, "gasp"))    print_gasp(out);  if (!strcmp(tablename, "hdmx"))    print_hdmx(out);  if (!strcmp(tablename, "kern"))    print_kern(out);  if (!strcmp(tablename, "LTSH"))    print_ltsh(out);  if (!strcmp(tablename, "prep"))    print_prep(out);  if (!strcmp(tablename, "VDMX"))    print_vdmx(out);  if (!strcmp(tablename, "vhea"))    print_vhea(out);  if (!strcmp(tablename, "vmtx"))    print_vmtx(out);}static voidprint_all_tables(FILE *dp_file){  print_cmap(dp_file);  print_head(dp_file);  print_hhea(dp_file);  print_hmtx(dp_file);  print_loca(dp_file);  print_maxp(dp_file);  print_name(dp_file);  print_post(dp_file);  print_os2(dp_file);  /*optional tables */  print_cvt(dp_file);  print_gasp(dp_file);  print_hdmx(dp_file);  print_kern(dp_file);  print_ltsh(dp_file);  print_pclt(dp_file);  print_vdmx(dp_file);  print_vhea(dp_file);  print_vmtx(dp_file);}static voidprint_ttc(TTCHeaderPtr ttc, FILE *out){  int i, b[2];  FixedSplit(ttc->version, b);  fprintf(out, "TrueType Collection Header\n");  fprintf(out, "--------------------------\n");  fprintf(out, "TTC version: \t\t %d.%d\n", b[1], b[0]);  fprintf(out, "Number of fonts:\t %d\n", ttc->DirCount);  for (i = 0; i < ttc->DirCount; i++)    fprintf(out, "Offset of Directory #%d:\t %d\n", i, ttc->offset[i]);  fprintf(out, "\n");}static voidprint_prologue(FILE *out){  fprintf(out, "True Type Font File Dumper: v 0.5.5\n");  fprintf(out, "Copyright 1996-1998 ollie@ms1.hinet.net \n");  fprintf(out, "Dumping File:%s\n\n\n", font->ttfname);}static voidprint_offset(FILE *out){  fprintf(out, "Offset Table \n");  fprintf(out, "------------ \n");  fprintf(out, "\t sfnt version:\n");  fprintf(out, "\t number of tables: %d\n", font->numTables);}static voidprint_dir(FILE *out){  int i;  for (i = 0; i < font->numTables; i++)  {    fprintf(out, "  %2d. ", i);    ttfPrintTableDir(out, font->dir + i);  }  fprintf(out, "\n");}static voidprint_cmap(FILE *out){  ttfPrintCMAP(out, font->cmap);  fprintf(out, "\n");}static voidprint_glyf(FILE *out, ULONG index){  GLYFPtr glyf;  glyf = ttfLoadGlyphIndex(font, index);  fprintf(out, "Glyph %6d.\n", index);  ttfPrintGLYF(out, glyf);}static voidprint_all_glyfs(FILE *out){  int i;  GLYFPtr glyf;  for (i = 0; i < font->maxp->numGlyphs; i++)  {    glyf = ttfLoadGlyphIndex(font, i);    fprintf(out, "Glyph %6d.\n", i);    ttfPrintGLYF(out, glyf);  }}static voidprint_head(FILE *out){  ttfPrintHEAD(out, font->head);  fprintf(out, "\n");}static voidprint_hhea(FILE *out){  ttfPrintHHEA(out, font->hhea);  fprintf(out, "\n");}static voidprint_hmtx(FILE *out){  /* because of interdependencies between tables   * we have to init hhea and maxp before hmtx */  ttfPrintHMTX(out, font->hmtx);  fprintf(out, "\n");}static voidprint_loca(FILE *out){  /* because of interdependencies between tables   * we have to init head and maxp before loca */  ttfPrintLOCA(out, font->loca);  fprintf(out, "\n");}static voidprint_maxp(FILE *out){  ttfPrintMAXP(out, font->maxp);  fprintf(out, "\n");}static voidprint_name(FILE *out){  ttfPrintNAME(out, font->name);  fprintf(out, "\n");}static voidprint_post(FILE *out){  ttfPrintPOST(out, font->post);}static voidprint_os2(FILE *out){  ttfPrintOS2(out, font->os2);}static voidprint_cvt(FILE *out){  if (font->cvt != NULL)    ttfPrintCVT(out, font->cvt, font->cvtLength);}static voidprint_fpgm(FILE *out){  if (font->fpgm != NULL)    ttfPrintFPGM(out, font->fpgm, font->fpgmLength);}static voidprint_gasp(FILE *out){  if (font->gasp != NULL)    ttfPrintGASP(out, font->gasp);}static voidprint_hdmx(FILE *out){  if (font->hdmx != NULL)    ttfPrintHDMX(out, font->hdmx);}static voidprint_kern(FILE *out){  if (font->kern != NULL)    ttfPrintKERN(out, font->kern);}static voidprint_ltsh(FILE *out){  if (font->ltsh != NULL)    ttfPrintLTSH(out, font->ltsh);}static voidprint_pclt(FILE *out){  if (font->pclt != NULL)    ttfPrintPCLT(out, font->pclt);}static voidprint_prep(FILE *out){  if (font->prep != NULL)    ttfPrintPREP(out, font->prep, font->prepLength);}static voidprint_vdmx(FILE *out){  if (font->vdmx != NULL)    ttfPrintVDMX(out, font->vdmx);}static voidprint_vhea(FILE *out){  if (font->vhea != NULL)    ttfPrintVHEA(out, font->vhea);}static voidprint_vmtx(FILE *out){  if (font->vmtx != NULL)    ttfPrintVMTX(out, font->vmtx);}static voiddialog(int argc, char *argv[]){  if (--argc < 1)    usage();  strcpy(ttfname, *++argv);  add_suffix(ttfname, "ttf");  if (--argc < 1)    strcpy(dumpname, "-");  else    strcpy(dumpname, *++argv);}static voidusage(void){  fprintf(stderr, "Usage: ttfdump ttfname dumpname [options]\n");  exit(EXIT_FAILURE);}static voidadd_suffix(char *name, char *suffix){  int haveext = 0;  if (name && strcmp(name, "-"))  {    while (*name)    {      if (*name == '/')        haveext = 0;      else if (*name == '.')        haveext = 1;      name++;    }    if (!haveext)    {      *name++ = '.';      strcpy(name, suffix);    }  }}/* end of ttfdump.c */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久亚洲综合色| 日韩欧美国产午夜精品| 麻豆精品国产传媒mv男同 | 欧美视频在线一区二区三区| 国产在线视视频有精品| 午夜精品久久久久久久99樱桃| 国产精品福利影院| 日韩成人dvd| 国产午夜精品在线观看| 777亚洲妇女| 91精彩视频在线观看| 国产麻豆成人精品| 久久成人羞羞网站| 日韩中文欧美在线| 亚洲综合偷拍欧美一区色| 中文av一区二区| 国产午夜久久久久| 久久久亚洲欧洲日产国码αv| 91精品欧美综合在线观看最新| 欧美专区在线观看一区| 91在线观看污| av亚洲精华国产精华精华| 国产精品羞羞答答xxdd| 久久爱www久久做| 日本欧美在线观看| 免费一级片91| 麻豆精品视频在线观看视频| 日本美女视频一区二区| 免费在线观看成人| 老司机午夜精品| 狠狠网亚洲精品| 精品午夜久久福利影院| 国内偷窥港台综合视频在线播放| 麻豆91在线播放免费| 精品在线视频一区| 精品综合免费视频观看| 国产一区欧美一区| 国产精品1区2区| 成人动漫一区二区| 91蝌蚪porny九色| 欧美亚洲动漫精品| 欧美日韩精品一区二区三区| 欧美丰满美乳xxx高潮www| 91精品国产入口在线| 精品乱人伦小说| 国产日本欧洲亚洲| 中文字幕一区二区5566日韩| 亚洲欧美日韩在线| 午夜精品久久久久久久久久久 | 日韩欧美一级精品久久| 久久综合色鬼综合色| 国产日韩欧美精品一区| 中文字幕在线免费不卡| 亚洲最色的网站| 日韩精品视频网| 国产精品一二三区在线| 色综合天天狠狠| 欧美理论电影在线| 欧美精品一区二区三区高清aⅴ| 国产日韩欧美a| 亚洲乱码中文字幕| 美女视频免费一区| 成人av资源在线观看| 91视视频在线直接观看在线看网页在线看 | 亚洲综合男人的天堂| 日本成人超碰在线观看| 国产高清精品网站| 精品婷婷伊人一区三区三| 精品日韩欧美一区二区| 亚洲日本va午夜在线电影| 午夜电影网一区| 国产成人综合亚洲网站| 欧美性一区二区| 久久综合久久综合亚洲| 亚洲精品视频一区| 韩国成人在线视频| 在线观看日产精品| 久久久精品影视| 亚洲成a人v欧美综合天堂| 国产一区二三区| 欧美在线看片a免费观看| 精品国产污污免费网站入口 | 久久99久久99| 一本大道av伊人久久综合| 日韩精品中午字幕| 亚洲伊人伊色伊影伊综合网| 欧美视频一区在线| 精品久久久久久无| 亚洲无线码一区二区三区| 国产麻豆午夜三级精品| 欧美亚洲日本一区| 国产精品每日更新| 欧美日韩精品一区二区天天拍小说| 国产亚洲欧洲一区高清在线观看| 亚洲综合一区在线| 粉嫩绯色av一区二区在线观看 | 国产日产欧美一区二区视频| 亚洲一区二区三区四区五区黄| 国产在线播放一区三区四| 欧美久久高跟鞋激| 亚洲精品欧美在线| 成人三级伦理片| 日韩精品中文字幕在线一区| 亚洲电影一级片| 色偷偷成人一区二区三区91 | 久久99精品国产91久久来源| 91成人免费在线| 《视频一区视频二区| 成人免费视频视频| 精品入口麻豆88视频| 日韩在线播放一区二区| 91成人免费电影| 亚洲乱码国产乱码精品精的特点| 成人在线视频一区| 久久精品人人做人人爽人人| 激情偷乱视频一区二区三区| 欧美一级高清片| 日韩精品电影在线观看| 欧美性感一区二区三区| 一区二区三区欧美日| 91影院在线免费观看| 日韩一区在线播放| 成人精品免费网站| 国产精品久久久久影视| 成人免费看视频| 国产精品午夜在线| 成人国产精品免费观看| 国产精品青草综合久久久久99| 国产成人久久精品77777最新版本| 久久精品免费在线观看| 国产91综合网| 国产精品国产三级国产a| 99久久久无码国产精品| 亚洲色图清纯唯美| 91啦中文在线观看| 亚洲国产wwwccc36天堂| 777亚洲妇女| 久久精品99国产国产精| 久久夜色精品国产噜噜av| 国产91在线|亚洲| 成人欧美一区二区三区| 日本高清不卡aⅴ免费网站| 一区二区成人在线视频| 欧美日韩黄视频| 麻豆freexxxx性91精品| 国产日韩欧美a| 91丝袜美腿高跟国产极品老师| 亚洲尤物在线视频观看| 欧美精品 日韩| 国产伦精品一区二区三区免费迷 | 亚洲成人你懂的| 日韩一区二区在线看| 国产激情一区二区三区四区| 亚洲欧洲国产日韩| 欧美女孩性生活视频| 日本vs亚洲vs韩国一区三区二区| 26uuu国产电影一区二区| 99热国产精品| 日韩黄色免费电影| 久久精品免费在线观看| 在线看一区二区| 精品在线免费视频| 亚洲男女毛片无遮挡| 91精品国产综合久久香蕉麻豆 | 国产乱人伦偷精品视频免下载 | 久久综合国产精品| 91蜜桃在线免费视频| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久免费美女视频| 在线观看日韩av先锋影音电影院| 蜜桃一区二区三区在线| 亚洲天堂av老司机| 欧美成人伊人久久综合网| 95精品视频在线| 久久成人综合网| 亚洲码国产岛国毛片在线| 精品人在线二区三区| 91日韩在线专区| 久久精品72免费观看| 一区二区三区av电影| 国产午夜精品一区二区三区视频 | 视频一区视频二区在线观看| 国产欧美精品区一区二区三区| 欧美性大战久久久| 成人午夜电影久久影院| 免费高清成人在线| 亚洲综合丝袜美腿| 欧美韩日一区二区三区四区| 777xxx欧美| 日本高清成人免费播放| 国产精品一二三| 美国十次了思思久久精品导航| 一区二区三区在线影院| 国产欧美精品一区aⅴ影院 | 国产91露脸合集magnet| 秋霞影院一区二区| 一区二区三区自拍| 国产精品传媒入口麻豆| 精品国产一区二区三区不卡| 7777精品伊人久久久大香线蕉完整版 |