-
Notifications
You must be signed in to change notification settings - Fork 1
/
names.c
85 lines (62 loc) · 1.37 KB
/
names.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <freetype.h>
char *name[] = {
"Copyright: ",
"Family: ",
"Subfamily: ",
"Unique-ID: ",
"Full-Name: ",
"Version: ",
"PS-Name: ",
"Trademark: ",
"Manufacturer: ",
"Designer: ",
"Description: ",
"Vendor-Url: ",
"Designer-Url: "
};
int nname = sizeof(name)/sizeof(name[0]);
TT_Engine fte;
int print_names(char *fname);
char *get_name(TT_Face f, int nnames, int name);
int
main(int argc, char **argv)
{
int i;
TT_Init_FreeType(&fte);
for (i=1; i<argc; i++)
print_names(argv[i]);
TT_Done_FreeType(fte);
exit(0);
}
int
print_names(char *fname)
{
char *s;
int i;
short pl, en;
TT_Face face;
TT_Face_Properties prop;
TT_Open_Face(fte, fname, &face);
TT_Get_Face_Properties(face, &prop);
printf("File: %s\n", fname);
for (i=0; i<nname; i++) {
s = get_name(face, prop.num_Names, i);
if (s)
printf("%s%s\n", name[i], s);
}
printf("Vendor-ID: %.4s\n", prop.os2->achVendID);
printf("CMaps: ");
for (i=0; i<TT_Get_CharMap_Count(face); i++) {
TT_Get_CharMap_ID(face, i, &pl, &en);
if (i != 0)
printf(", ");
printf("%d/%d", (int)pl, (int)en);
}
putchar('\n');
putchar('\n');
TT_Close_Face(face);
return 0;
}