Switch to manual memory management in legal().
[tagua/yd.git] / strip_font.rb
blob7c0a3112a95a98ba0b38216437c76061fe939e0d
1 #!/usr/bin/ruby
3 require 'optparse'
4 require 'set'
6 input_file = nil
7 output_file = nil
8 font_name = nil
10 $options = OptionParser.new do |opt|
11   opt.banner = "Usage: strip_font.rb [options] luafiles"
13   opt.on( '-n', '--name FONT_NAME', 'Output font name' )    do |name|         font_name = name end
14   opt.on( '-i', '--input INPUT_FONT', 'Input font')         do |file|         input_file = file end
15   opt.on( '-o', '--output OUTPUT_FONT', 'Font to generate') do |file|         output_file = file end
16 end
18 $options.parse!(ARGV)
20 lua_files = ARGV
22 selection = Set.new
24 ARGV.each do |file|
25   File.open(file) do |f|
26     content = f.read
27     content.scan(/(["'])0x([0-9a-fA-F]{4})\1/).each do |match|
28       print(match.inspect+"\n")
29       selection.add "SelectMore(0u"+match[1]+");"
30     end
31   end
32 end
34 a = %{
35   Open("#{input_file}");
36 #{selection.to_a.join("\n")}
37   SelectInvert();
38   DetachAndRemoveGlyphs();
39   SetFontNames("#{font_name}", "#{font_name}", "#{font_name}");
40   SetUniqueID(0);
41   Generate("#{output_file}");
44 system("echo -en #{a.inspect} | fontforge -c")