extract_ttc 0.2.0-x86_64-linux → 0.3.0-x86_64-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Rakefile +76 -6
- data/extract_ttc.gemspec +4 -3
- data/lib/2.7/stripttc.so +0 -0
- data/lib/3.0/stripttc.so +0 -0
- data/lib/3.1/stripttc.so +0 -0
- data/lib/extract_ttc/version.rb +1 -1
- metadata +36 -18
- data/ext/stripttc/LICENSE +0 -31
- data/ext/stripttc/dummy.c +0 -2
- data/ext/stripttc/extconf.rb +0 -6
- data/ext/stripttc/stripttc.c +0 -187
- data/lib/stripttc.so +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f8b641dc35685b306188b1112c11b8b155bbfbcd6da492692502311f7d307fed
|
4
|
+
data.tar.gz: 790bc392fa04b6b395ef4d39a263d18213a34e4fb103becc75c1ff91923a59d7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d266b2fdb80066029af90d9e02df5600cb966fa5f968ca046a2a0a759fe1831171dd46d2874972da0538697589439a0bd5c6ccb992ae751871dba62b8d8f664e
|
7
|
+
data.tar.gz: c13ba809caaea95ea596361870a05f1cd62fd5602ccb0e2b8f29aa75c1e9e1ec0446c5c5a269bb73ca6b5217c97a3f3b48d2cbb12f98ea415bec6b440f5a9f75
|
data/.gitignore
CHANGED
data/Rakefile
CHANGED
@@ -1,21 +1,38 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
|
-
require "rspec/core/rake_task"
|
3
2
|
require "rake/clean"
|
4
3
|
require "rake/extensiontask"
|
4
|
+
require "rake_compiler_dock"
|
5
5
|
|
6
6
|
require "rubygems"
|
7
7
|
require "rubygems/package_task"
|
8
8
|
|
9
|
-
|
9
|
+
# ++ Allow rake-compiler-dock configuration without dev. dependencies
|
10
|
+
begin
|
11
|
+
require "rubocop/rake_task"
|
12
|
+
RuboCop::RakeTask.new
|
13
|
+
rescue LoadError
|
14
|
+
end
|
15
|
+
|
16
|
+
begin
|
17
|
+
require "rspec/core/rake_task"
|
18
|
+
RSpec::Core::RakeTask.new(:spec)
|
19
|
+
rescue LoadError
|
20
|
+
end
|
21
|
+
# -- Allow rake-compiler-dock configuration without dev. dependencies
|
10
22
|
|
11
|
-
|
12
|
-
|
23
|
+
R_CC_V = "RUBY_CC_VERSION=3.1.0:3.0.0:2.7.0".freeze
|
24
|
+
bundler_ver = ENV["BUNDLER_VER"] || "2.3.22"
|
13
25
|
|
14
26
|
task default: :spec
|
15
27
|
task spec: :compile
|
16
28
|
|
17
29
|
spec = Gem::Specification.load("extract_ttc.gemspec")
|
18
30
|
|
31
|
+
ext_thru_rc_dock = %w[x86_64-linux aarch64-linux] +
|
32
|
+
%w[x64-mingw32 x64-mingw-ucrt x86_64-darwin arm64-darwin]
|
33
|
+
|
34
|
+
ext_thru_musl_cc = %w[x86_64-linux-musl aarch64-linux-musl]
|
35
|
+
|
19
36
|
# add your default gem packing task
|
20
37
|
Gem::PackageTask.new(spec) do |pkg|
|
21
38
|
end
|
@@ -28,11 +45,64 @@ module FixRequiredRubyVersion
|
|
28
45
|
end
|
29
46
|
Gem::Specification.prepend(FixRequiredRubyVersion)
|
30
47
|
|
31
|
-
Rake::ExtensionTask.new("stripttc", spec) do |ext|
|
48
|
+
exttask = Rake::ExtensionTask.new("stripttc", spec) do |ext|
|
32
49
|
ext.lib_dir = "lib"
|
33
50
|
ext.cross_compile = true
|
34
|
-
ext.cross_platform =
|
51
|
+
ext.cross_platform = ext_thru_rc_dock + ext_thru_musl_cc
|
35
52
|
ext.cross_compiling do |s|
|
36
53
|
s.files.reject! { |path| File.fnmatch?("ext/*", path) }
|
37
54
|
end
|
38
55
|
end
|
56
|
+
|
57
|
+
namespace "gem" do
|
58
|
+
desc "Cache dependencies"
|
59
|
+
task "cache" do
|
60
|
+
sh <<~RCD
|
61
|
+
bundle config set cache_all true &&
|
62
|
+
bundle config set --local without 'development' &&
|
63
|
+
bundle package
|
64
|
+
RCD
|
65
|
+
end
|
66
|
+
|
67
|
+
desc "build native gems with rake-compiler-dock"
|
68
|
+
task "native" => "cache" do
|
69
|
+
ext_thru_rc_dock.each do |plat|
|
70
|
+
RakeCompilerDock.sh <<~RCD, platform: plat
|
71
|
+
gem install bundler:#{bundler_ver} --no-document &&
|
72
|
+
bundle install --local &&
|
73
|
+
bundle exec rake native:#{plat} gem #{R_CC_V}
|
74
|
+
RCD
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
namespace "gem" do
|
80
|
+
ext_thru_rc_dock.each do |plat|
|
81
|
+
desc "Build native gems with rake-compiler-dock in parallel"
|
82
|
+
multitask "parallel" => plat
|
83
|
+
|
84
|
+
desc "Build the native gem for #{plat}"
|
85
|
+
task plat => "cache" do
|
86
|
+
RakeCompilerDock.sh <<~RCD, platform: plat
|
87
|
+
gem install bundler:#{bundler_ver} --no-document &&
|
88
|
+
bundle install --local &&
|
89
|
+
bundle exec rake native:#{plat} \
|
90
|
+
pkg/#{exttask.gem_spec.full_name}-#{plat}.gem \
|
91
|
+
#{R_CC_V}
|
92
|
+
RCD
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
ext_thru_musl_cc.each do |plat|
|
97
|
+
desc "Define the gem task to build on the #{plat} platform (binary gem)"
|
98
|
+
task plat do
|
99
|
+
s = spec.dup
|
100
|
+
s.platform = Gem::Platform.new(plat)
|
101
|
+
s.files += Dir.glob("lib/extract_ttc/*.{dll,so,dylib}")
|
102
|
+
s.extensions = []
|
103
|
+
|
104
|
+
task = Gem::PackageTask.new(s)
|
105
|
+
task.define
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
data/extract_ttc.gemspec
CHANGED
@@ -26,10 +26,11 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.require_paths = ["lib"]
|
27
27
|
|
28
28
|
spec.add_runtime_dependency "ffi", "~> 1.0"
|
29
|
+
spec.add_runtime_dependency "bundler", '~> 2.3', '>= 2.3.22'
|
30
|
+
spec.add_runtime_dependency "rake", "~> 13"
|
31
|
+
spec.add_runtime_dependency "rake-compiler", "~> 1.2"
|
32
|
+
spec.add_runtime_dependency "rake-compiler-dock", "~> 1.2"
|
29
33
|
|
30
|
-
spec.add_development_dependency "bundler", "~> 2.0"
|
31
|
-
spec.add_development_dependency "rake", "~> 13"
|
32
|
-
spec.add_development_dependency "rake-compiler", "~> 1"
|
33
34
|
spec.add_development_dependency "rspec", "~> 3.0"
|
34
35
|
spec.add_development_dependency "rubocop", "~> 1.5"
|
35
36
|
spec.add_development_dependency "rubocop-performance", "~> 1.10"
|
data/lib/2.7/stripttc.so
ADDED
Binary file
|
data/lib/3.0/stripttc.so
ADDED
Binary file
|
data/lib/3.1/stripttc.so
ADDED
Binary file
|
data/lib/extract_ttc/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: extract_ttc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: x86_64-linux
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-09-
|
11
|
+
date: 2022-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ffi
|
@@ -30,14 +30,20 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '2.
|
34
|
-
|
33
|
+
version: '2.3'
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: 2.3.22
|
37
|
+
type: :runtime
|
35
38
|
prerelease: false
|
36
39
|
version_requirements: !ruby/object:Gem::Requirement
|
37
40
|
requirements:
|
38
41
|
- - "~>"
|
39
42
|
- !ruby/object:Gem::Version
|
40
|
-
version: '2.
|
43
|
+
version: '2.3'
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: 2.3.22
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: rake
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
@@ -45,7 +51,7 @@ dependencies:
|
|
45
51
|
- - "~>"
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '13'
|
48
|
-
type: :
|
54
|
+
type: :runtime
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
51
57
|
requirements:
|
@@ -58,14 +64,28 @@ dependencies:
|
|
58
64
|
requirements:
|
59
65
|
- - "~>"
|
60
66
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1'
|
62
|
-
type: :
|
67
|
+
version: '1.2'
|
68
|
+
type: :runtime
|
69
|
+
prerelease: false
|
70
|
+
version_requirements: !ruby/object:Gem::Requirement
|
71
|
+
requirements:
|
72
|
+
- - "~>"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '1.2'
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rake-compiler-dock
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '1.2'
|
82
|
+
type: :runtime
|
63
83
|
prerelease: false
|
64
84
|
version_requirements: !ruby/object:Gem::Requirement
|
65
85
|
requirements:
|
66
86
|
- - "~>"
|
67
87
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1'
|
88
|
+
version: '1.2'
|
69
89
|
- !ruby/object:Gem::Dependency
|
70
90
|
name: rspec
|
71
91
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,14 +159,12 @@ files:
|
|
139
159
|
- bin/console
|
140
160
|
- bin/rspec
|
141
161
|
- bin/setup
|
142
|
-
- ext/stripttc/LICENSE
|
143
|
-
- ext/stripttc/dummy.c
|
144
|
-
- ext/stripttc/extconf.rb
|
145
|
-
- ext/stripttc/stripttc.c
|
146
162
|
- extract_ttc.gemspec
|
163
|
+
- lib/2.7/stripttc.so
|
164
|
+
- lib/3.0/stripttc.so
|
165
|
+
- lib/3.1/stripttc.so
|
147
166
|
- lib/extract_ttc.rb
|
148
167
|
- lib/extract_ttc/version.rb
|
149
|
-
- lib/stripttc.so
|
150
168
|
homepage: https://github.com/fontist/extract_ttc
|
151
169
|
licenses:
|
152
170
|
- BSD-3-Clause
|
@@ -155,7 +173,7 @@ metadata:
|
|
155
173
|
source_code_uri: https://github.com/fontist/extract_ttc
|
156
174
|
changelog_uri: https://github.com/fontist/extract_ttc
|
157
175
|
rubygems_mfa_required: 'false'
|
158
|
-
post_install_message:
|
176
|
+
post_install_message:
|
159
177
|
rdoc_options: []
|
160
178
|
require_paths:
|
161
179
|
- lib
|
@@ -170,8 +188,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
170
188
|
- !ruby/object:Gem::Version
|
171
189
|
version: '0'
|
172
190
|
requirements: []
|
173
|
-
rubygems_version: 3.
|
174
|
-
signing_key:
|
191
|
+
rubygems_version: 3.3.4
|
192
|
+
signing_key:
|
175
193
|
specification_version: 4
|
176
194
|
summary: Extract TTC file to TTF files
|
177
195
|
test_files: []
|
data/ext/stripttc/LICENSE
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
BSD 3-Clause License for stripttc.c
|
2
|
-
|
3
|
-
Copyright (c) George Williams and FontForge authors. All rights reserved.
|
4
|
-
https://github.com/fontforge/fontforge/blob/master/AUTHORS
|
5
|
-
|
6
|
-
Redistribution and use in source and binary forms, with or without
|
7
|
-
modification, are permitted provided that the following conditions
|
8
|
-
are met:
|
9
|
-
|
10
|
-
Redistributions of source code must retain the above copyright
|
11
|
-
notice, this list of conditions and the following disclaimer.
|
12
|
-
|
13
|
-
Redistributions in binary form must reproduce the above copyright
|
14
|
-
notice, this list of conditions and the following disclaimer in the
|
15
|
-
documentation and/or other materials provided with the distribution.
|
16
|
-
|
17
|
-
The name of the author may not be used to endorse or promote
|
18
|
-
products derived from this software without specific prior written
|
19
|
-
permission.
|
20
|
-
|
21
|
-
THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS
|
22
|
-
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
23
|
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
24
|
-
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
25
|
-
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
26
|
-
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
27
|
-
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
28
|
-
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
29
|
-
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
30
|
-
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
31
|
-
IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/ext/stripttc/dummy.c
DELETED
data/ext/stripttc/extconf.rb
DELETED
data/ext/stripttc/stripttc.c
DELETED
@@ -1,187 +0,0 @@
|
|
1
|
-
#include <stdio.h>
|
2
|
-
#include <stdlib.h>
|
3
|
-
#include <string.h>
|
4
|
-
#include <libgen.h>
|
5
|
-
|
6
|
-
/* This program takes a ttc file and turns it into its component ttf files */
|
7
|
-
/* This makes two changes to the data: */
|
8
|
-
/* * The tables are placed at different offsets, therefore */
|
9
|
-
/* the offset fields in the table header are also different. */
|
10
|
-
/* * the 'head' table checksumAdjustment field is set correctly */
|
11
|
-
|
12
|
-
#define CHR(ch1,ch2,ch3,ch4) (((ch1)<<24)|((ch2)<<16)|((ch3)<<8)|(ch4))
|
13
|
-
|
14
|
-
#ifdef _WIN32
|
15
|
-
#define EXPORT_API __declspec(dllexport)
|
16
|
-
#else
|
17
|
-
#define EXPORT_API
|
18
|
-
#endif
|
19
|
-
|
20
|
-
static void putshort(FILE *file,int sval) {
|
21
|
-
putc((sval>>8)&0xff,file);
|
22
|
-
putc(sval&0xff,file);
|
23
|
-
}
|
24
|
-
|
25
|
-
static void putlong(FILE *file,int val) {
|
26
|
-
putc((val>>24)&0xff,file);
|
27
|
-
putc((val>>16)&0xff,file);
|
28
|
-
putc((val>>8)&0xff,file);
|
29
|
-
putc(val&0xff,file);
|
30
|
-
}
|
31
|
-
|
32
|
-
static int getushort(FILE *ttf) {
|
33
|
-
int ch1 = getc(ttf);
|
34
|
-
int ch2 = getc(ttf);
|
35
|
-
if ( ch2==EOF )
|
36
|
-
return( EOF );
|
37
|
-
return( (ch1<<8)|ch2 );
|
38
|
-
}
|
39
|
-
|
40
|
-
static int getlong(FILE *ttf) {
|
41
|
-
int ch1 = getc(ttf);
|
42
|
-
int ch2 = getc(ttf);
|
43
|
-
int ch3 = getc(ttf);
|
44
|
-
int ch4 = getc(ttf);
|
45
|
-
if ( ch4==EOF )
|
46
|
-
return( EOF );
|
47
|
-
return( (ch1<<24)|(ch2<<16)|(ch3<<8)|ch4 );
|
48
|
-
}
|
49
|
-
|
50
|
-
static unsigned int filecheck(FILE *file) {
|
51
|
-
unsigned int sum = 0, chunk;
|
52
|
-
|
53
|
-
rewind(file);
|
54
|
-
while ( 1 ) {
|
55
|
-
chunk = getlong(file);
|
56
|
-
if ( feof(file) || ferror(file))
|
57
|
-
break;
|
58
|
-
sum += chunk;
|
59
|
-
}
|
60
|
-
return( sum );
|
61
|
-
}
|
62
|
-
|
63
|
-
static void copytable(FILE *ttf,FILE *ttc,int offset,int length) {
|
64
|
-
int i, ch;
|
65
|
-
|
66
|
-
fseek(ttc,offset,SEEK_SET);
|
67
|
-
for ( i=0; i<length && (ch=getc(ttc))!=EOF ; ++i )
|
68
|
-
putc(ch,ttf);
|
69
|
-
if ( ch==EOF )
|
70
|
-
fprintf( stderr, "File ended before table\n" );
|
71
|
-
if ( length&1 ) {
|
72
|
-
putc('\0',ttf);
|
73
|
-
++length;
|
74
|
-
}
|
75
|
-
if ( length & 2 ) {
|
76
|
-
putshort(ttf,0);
|
77
|
-
}
|
78
|
-
}
|
79
|
-
|
80
|
-
static int handlefont(char *filename,int which,FILE *ttc,int offset) {
|
81
|
-
char outfile[2000], *pt;
|
82
|
-
FILE *ttf;
|
83
|
-
int i, cnt, *offsets, *lengths, head, tag, pos, headpos;
|
84
|
-
strcpy(outfile,basename(filename));
|
85
|
-
pt = strrchr(outfile,'.');
|
86
|
-
if ( pt==NULL )
|
87
|
-
pt = outfile + strlen(outfile);
|
88
|
-
sprintf( pt, "_%02d.ttf", which );
|
89
|
-
|
90
|
-
ttf = fopen( outfile,"wb");
|
91
|
-
if ( ttf==NULL ) {
|
92
|
-
fprintf( stderr, "Failed to open %s for output.\n", outfile );
|
93
|
-
return( -3 );
|
94
|
-
}
|
95
|
-
printf ( "%s ", outfile );
|
96
|
-
|
97
|
-
fseek(ttc,offset,SEEK_SET);
|
98
|
-
putlong(ttf,getlong(ttc)); /* sfnt version */
|
99
|
-
putshort(ttf,cnt = getushort(ttc)); /* table cnt */
|
100
|
-
putshort(ttf,getushort(ttc)); /* binary search header */
|
101
|
-
putshort(ttf,getushort(ttc));
|
102
|
-
putshort(ttf,getushort(ttc));
|
103
|
-
|
104
|
-
offsets = malloc(cnt*sizeof(int));
|
105
|
-
lengths = malloc(cnt*sizeof(int));
|
106
|
-
head = -1;
|
107
|
-
for ( i=0; i<cnt; ++i ) {
|
108
|
-
tag = getlong(ttc);
|
109
|
-
if ( tag==CHR('h','e','a','d'))
|
110
|
-
head = i;
|
111
|
-
putlong(ttf,tag);
|
112
|
-
putlong(ttf,getlong(ttc)); /* checksum */
|
113
|
-
putlong(ttf,offsets[i] = getlong(ttc)); /* Reserve space for offset, will fix later */
|
114
|
-
putlong(ttf,lengths[i] = getlong(ttc));
|
115
|
-
}
|
116
|
-
headpos = -1;
|
117
|
-
for ( i=0; i<cnt; ++i ) {
|
118
|
-
pos = ftell(ttf);
|
119
|
-
copytable(ttf,ttc,offsets[i],lengths[i]);
|
120
|
-
if ( i==head ) {
|
121
|
-
fseek(ttf,pos+8,SEEK_SET);
|
122
|
-
putlong(ttf,0);
|
123
|
-
headpos = pos;
|
124
|
-
}
|
125
|
-
fseek(ttf,12+i*16+8,SEEK_SET);
|
126
|
-
putlong(ttf,pos); /* Fix offset here */
|
127
|
-
fseek(ttf,0,SEEK_END);
|
128
|
-
}
|
129
|
-
if ( headpos!=-1 ) {
|
130
|
-
unsigned int checksum;
|
131
|
-
checksum = filecheck(ttf);
|
132
|
-
checksum = 0xb1b0afba-checksum;
|
133
|
-
fseek(ttf,headpos+2*sizeof(int),SEEK_SET);
|
134
|
-
putlong(ttf,checksum);
|
135
|
-
}
|
136
|
-
fclose(ttf);
|
137
|
-
free(offsets); free(lengths);
|
138
|
-
return( 0 );
|
139
|
-
}
|
140
|
-
|
141
|
-
EXPORT_API int handlefile(char *filename) {
|
142
|
-
FILE *ttc = fopen(filename,"rb");
|
143
|
-
int version, cnt, e, i;
|
144
|
-
int *offsets;
|
145
|
-
|
146
|
-
if ( ttc==NULL ) {
|
147
|
-
fprintf( stderr, "Could not open %s\n", filename );
|
148
|
-
return( -1 );
|
149
|
-
}
|
150
|
-
|
151
|
-
version = getlong(ttc);
|
152
|
-
if ( version!=CHR('t','t','c','f')) {
|
153
|
-
fprintf( stderr, "%s does not look like a ttc file, bad version.\n", filename );
|
154
|
-
fclose(ttc);
|
155
|
-
return( -2 );
|
156
|
-
}
|
157
|
-
|
158
|
-
version = getlong(ttc);
|
159
|
-
if ( version!=0x10000 && version != 0x20000 )
|
160
|
-
fprintf( stderr, "Unexpected ttc version number: %08x\n", (unsigned int)(version) );
|
161
|
-
cnt = getlong(ttc);
|
162
|
-
offsets = malloc(cnt*sizeof(int));
|
163
|
-
for ( i=0; i<cnt; ++i )
|
164
|
-
offsets[i] = getlong(ttc);
|
165
|
-
printf( "%s => ", filename );
|
166
|
-
for ( i=0; i<cnt; ++i )
|
167
|
-
if ( (e = handlefont(filename,i,ttc,offsets[i])) ) {
|
168
|
-
fflush(stdout);
|
169
|
-
fclose(ttc);
|
170
|
-
free(offsets);
|
171
|
-
return( e );
|
172
|
-
};
|
173
|
-
printf( "\n" );
|
174
|
-
fflush(stdout);
|
175
|
-
fclose(ttc);
|
176
|
-
free(offsets);
|
177
|
-
return( 0 );
|
178
|
-
}
|
179
|
-
|
180
|
-
int main(int argc, char *argv[]) {
|
181
|
-
int e, i;
|
182
|
-
|
183
|
-
for ( i=1; i<argc; ++i )
|
184
|
-
if ( (e = handlefile(argv[i])) )
|
185
|
-
return( e );
|
186
|
-
return( 0 );
|
187
|
-
}
|
data/lib/stripttc.so
DELETED
Binary file
|