2006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
* font/manager.c (grub_font_get_glyph): Removed font fixup from here... * util/unifont2pff.rb: ... and moved it to here. Improved argument parsing to support both hex and dec ranges. If filename was missing show usage information.
This commit is contained in:
parent
bd0d7896cf
commit
c2379b9c31
3 changed files with 34 additions and 10 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
2006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
|
||||||
|
|
||||||
|
* font/manager.c (grub_font_get_glyph): Removed font fixup from
|
||||||
|
here...
|
||||||
|
|
||||||
|
* util/unifont2pff.rb: ... and moved it to here. Improved argument
|
||||||
|
parsing to support both hex and dec ranges. If filename was missing
|
||||||
|
show usage information.
|
||||||
|
|
||||||
2006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
|
2006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
|
||||||
|
|
||||||
* DISTLIST: Added include/grub/video.h, term/gfxterm.c,
|
* DISTLIST: Added include/grub/video.h, term/gfxterm.c,
|
||||||
|
|
|
@ -184,8 +184,6 @@ grub_font_get_glyph (grub_uint32_t code,
|
||||||
if (offset)
|
if (offset)
|
||||||
{
|
{
|
||||||
grub_uint32_t w;
|
grub_uint32_t w;
|
||||||
unsigned int x;
|
|
||||||
unsigned int y;
|
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
/* Make sure we can find glyphs for error messages. Push active
|
/* Make sure we can find glyphs for error messages. Push active
|
||||||
|
@ -216,10 +214,8 @@ grub_font_get_glyph (grub_uint32_t code,
|
||||||
goto restart;
|
goto restart;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Temporary workaround, fix font bitmap. */
|
/* Fill glyph with information. */
|
||||||
for (y = 0; y < 16; y++)
|
grub_memcpy (glyph->bitmap, bitmap, w * 16);
|
||||||
for (x = 0; x < w; x++)
|
|
||||||
glyph->bitmap[y * w + x] = bitmap[x * 16 + y];
|
|
||||||
|
|
||||||
glyph->char_width = w;
|
glyph->char_width = w;
|
||||||
glyph->width = glyph->char_width * 8;
|
glyph->width = glyph->char_width * 8;
|
||||||
|
|
|
@ -15,18 +15,26 @@
|
||||||
MAGIC = "PPF\x7f"
|
MAGIC = "PPF\x7f"
|
||||||
|
|
||||||
def usage(status = 0)
|
def usage(status = 0)
|
||||||
puts "Usage: ruby unifont2pff.rb [RANGE...] FILE"
|
puts "Usage: ruby unifont2pff.rb [RANGE ...] FILE"
|
||||||
exit(status)
|
exit(status)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if ARGV.length == 0
|
||||||
|
usage(1)
|
||||||
|
end
|
||||||
|
|
||||||
file = ARGV.pop
|
file = ARGV.pop
|
||||||
|
|
||||||
ranges = []
|
ranges = []
|
||||||
ARGV.each do |range|
|
ARGV.each do |range|
|
||||||
if /\A([0-9a-fA-F]+):([0-9a-fA-F]+)\z/ =~ range
|
if /\A0x([0-9a-fA-F]+)[:-]0x([0-9a-fA-F]+)\z/ =~ range
|
||||||
ranges << [$1.hex, $2.hex]
|
ranges << [$1.hex, $2.hex]
|
||||||
elsif /\A([0-9a-fA-F]+)\z/ =~ range
|
elsif /\A0x([0-9a-fA-F]+)\z/ =~ range
|
||||||
ranges << [$1.hex, $1.hex]
|
ranges << [$1.hex, $1.hex]
|
||||||
|
elsif /\A([0-9]+)[:-]([0-9]+)\z/ =~ range
|
||||||
|
ranges << [$1.to_i, $2.to_i]
|
||||||
|
elsif /\A([0-9]+)\z/ =~ range
|
||||||
|
ranges << [$1.to_i, $1.to_i]
|
||||||
else
|
else
|
||||||
usage(1)
|
usage(1)
|
||||||
end
|
end
|
||||||
|
@ -54,6 +62,17 @@ IO.foreach(file) do |line|
|
||||||
raise "invalid bitmap size: #{bitmap}"
|
raise "invalid bitmap size: #{bitmap}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Fix byte ordering
|
||||||
|
w = (bitmap.size / 32)
|
||||||
|
temp = Array.new
|
||||||
|
for y in 0...16
|
||||||
|
for x in 0...w
|
||||||
|
temp[(y * w + x) * 2 + 0] = bitmap[(x * 16 + y) * 2 + 0].chr
|
||||||
|
temp[(y * w + x) * 2 + 1] = bitmap[(x * 16 + y) * 2 + 1].chr
|
||||||
|
end
|
||||||
|
end
|
||||||
|
bitmap = temp.to_s
|
||||||
|
|
||||||
fonts << [code, bitmap]
|
fonts << [code, bitmap]
|
||||||
else
|
else
|
||||||
raise "invalid line format: #{line}"
|
raise "invalid line format: #{line}"
|
||||||
|
|
Loading…
Reference in a new issue