|  | @@ -10,7 +10,11 @@ import (
 | 
											
												
													
														|  |  	"strings"
 |  |  	"strings"
 | 
											
												
													
														|  |  )
 |  |  )
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +// TODO:
 | 
											
												
													
														|  | 
 |  | +// Add ability to load font into struct and render
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  func ListFonts(filename string) {
 |  |  func ListFonts(filename string) {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  	f, err := os.Open(filename)
 |  |  	f, err := os.Open(filename)
 | 
											
												
													
														|  |  	if err != nil {
 |  |  	if err != nil {
 | 
											
												
													
														|  |  		fmt.Printf("Open(%s): %s\n", filename, err)
 |  |  		fmt.Printf("Open(%s): %s\n", filename, err)
 | 
											
										
											
												
													
														|  | @@ -92,77 +96,104 @@ func text_to_hextext(line string) string {
 | 
											
												
													
														|  |  	return output
 |  |  	return output
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -// Attempt to fix broken fonts.
 |  | 
 | 
											
												
													
														|  | -// This verifies that the character offsets are proceeded
 |  | 
 | 
											
												
													
														|  | -// by a null character.
 |  | 
 | 
											
												
													
														|  | -func FontFixup(offsets []uint16, data *[]byte) bool {
 |  | 
 | 
											
												
													
														|  | -	fixed := false
 |  | 
 | 
											
												
													
														|  | -	for _, offset := range offsets {
 |  | 
 | 
											
												
													
														|  | -		if offset == 65535 {
 |  | 
 | 
											
												
													
														|  | -			continue
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -		if offset == 0 {
 |  | 
 | 
											
												
													
														|  | -			continue
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -		if (*data)[offset-1] != 0 {
 |  | 
 | 
											
												
													
														|  | -			(*data)[offset-1] = 0
 |  | 
 | 
											
												
													
														|  | -			fixed = true
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -	return fixed
 |  | 
 | 
											
												
													
														|  | -}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |  func ExtractColor(name string, offsets []uint16, data []byte) {
 |  |  func ExtractColor(name string, offsets []uint16, data []byte) {
 | 
											
												
													
														|  |  	fmt.Printf("Extract Color Font: %s\n", name)
 |  |  	fmt.Printf("Extract Color Font: %s\n", name)
 | 
											
												
													
														|  |  	var indexes []int
 |  |  	var indexes []int
 | 
											
												
													
														|  |  	var blocks [][][]byte
 |  |  	var blocks [][][]byte
 | 
											
												
													
														|  |  	var current [][]byte
 |  |  	var current [][]byte
 | 
											
												
													
														|  | -	w := -1
 |  | 
 | 
											
												
													
														|  | -	h := -1
 |  | 
 | 
											
												
													
														|  | -	ch := -1
 |  | 
 | 
											
												
													
														|  | 
 |  | +	// w := -1
 | 
											
												
													
														|  | 
 |  | +	// h := -1
 | 
											
												
													
														|  | 
 |  | +	// ch := -1
 | 
											
												
													
														|  | 
 |  | +	// color := -1
 | 
											
												
													
														|  |  	var line []byte
 |  |  	var line []byte
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -	for idx, b := range data {
 |  | 
 | 
											
												
													
														|  | -		if w == -1 {
 |  | 
 | 
											
												
													
														|  | -			indexes = append(indexes, idx)
 |  | 
 | 
											
												
													
														|  | -			current = make([][]byte, 0)
 |  | 
 | 
											
												
													
														|  | -			line = make([]byte, 0)
 |  | 
 | 
											
												
													
														|  | -			w = int(b)
 |  | 
 | 
											
												
													
														|  | -			continue
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -		if h == -1 {
 |  | 
 | 
											
												
													
														|  | -			h = int(b)
 |  | 
 | 
											
												
													
														|  | -			continue
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -		if ch == -1 {
 |  | 
 | 
											
												
													
														|  | -			ch = int(b)
 |  | 
 | 
											
												
													
														|  | -			if ch == 0x0d {
 |  | 
 | 
											
												
													
														|  | -				ch = -1
 |  | 
 | 
											
												
													
														|  | 
 |  | +	pos := 0
 | 
											
												
													
														|  | 
 |  | +	for pos < len(data) {
 | 
											
												
													
														|  | 
 |  | +		indexes = append(indexes, pos)
 | 
											
												
													
														|  | 
 |  | +		current = make([][]byte, 0)
 | 
											
												
													
														|  | 
 |  | +		line = make([]byte, 0)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		// We don't use these.
 | 
											
												
													
														|  | 
 |  | +		// w = data[pos]
 | 
											
												
													
														|  | 
 |  | +		// h = data[pos+1]
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		pos += 2
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		// process this character
 | 
											
												
													
														|  | 
 |  | +		for pos < len(data) {
 | 
											
												
													
														|  | 
 |  | +			ch := data[pos]
 | 
											
												
													
														|  | 
 |  | +			pos++
 | 
											
												
													
														|  | 
 |  | +			if ch == 0x00 {
 | 
											
												
													
														|  | 
 |  | +				// end of character
 | 
											
												
													
														|  |  				current = append(current, line)
 |  |  				current = append(current, line)
 | 
											
												
													
														|  | 
 |  | +				blocks = append(blocks, current)
 | 
											
												
													
														|  | 
 |  | +				current = make([][]byte, 0)
 | 
											
												
													
														|  |  				line = make([]byte, 0)
 |  |  				line = make([]byte, 0)
 | 
											
												
													
														|  | -				continue
 |  | 
 | 
											
												
													
														|  | 
 |  | +				break
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | -			if ch == 0 {
 |  | 
 | 
											
												
													
														|  | 
 |  | +			if ch == 0x0d {
 | 
											
												
													
														|  | 
 |  | +				// end of this character line
 | 
											
												
													
														|  |  				current = append(current, line)
 |  |  				current = append(current, line)
 | 
											
												
													
														|  | -				blocks = append(blocks, current)
 |  | 
 | 
											
												
													
														|  | -				current = make([][]byte, 0)
 |  | 
 | 
											
												
													
														|  |  				line = make([]byte, 0)
 |  |  				line = make([]byte, 0)
 | 
											
												
													
														|  | -				w = -1
 |  | 
 | 
											
												
													
														|  | -				h = -1
 |  | 
 | 
											
												
													
														|  | -				ch = -1
 |  | 
 | 
											
												
													
														|  |  				continue
 |  |  				continue
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  |  			if ch == 0x26 {
 |  |  			if ch == 0x26 {
 | 
											
												
													
														|  |  				// & descender mark
 |  |  				// & descender mark
 | 
											
												
													
														|  | -				ch = -1
 |  | 
 | 
											
												
													
														|  |  				continue
 |  |  				continue
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | -			// line += string(rune(ch))
 |  | 
 | 
											
												
													
														|  | -			line = append(line, byte(ch))
 |  | 
 | 
											
												
													
														|  | -			ch = -1
 |  | 
 | 
											
												
													
														|  | 
 |  | +			line = append(line, ch)
 | 
											
												
													
														|  | 
 |  | +			color := data[pos]
 | 
											
												
													
														|  | 
 |  | +			pos++
 | 
											
												
													
														|  | 
 |  | +			line = append(line, color)
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +	// the old, sloppy way
 | 
											
												
													
														|  | 
 |  | +	/*
 | 
											
												
													
														|  | 
 |  | +		for idx, b := range data {
 | 
											
												
													
														|  | 
 |  | +			if w == -1 {
 | 
											
												
													
														|  | 
 |  | +				indexes = append(indexes, idx)
 | 
											
												
													
														|  | 
 |  | +				current = make([][]byte, 0)
 | 
											
												
													
														|  | 
 |  | +				line = make([]byte, 0)
 | 
											
												
													
														|  | 
 |  | +				w = int(b)
 | 
											
												
													
														|  | 
 |  | +				continue
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +			if h == -1 {
 | 
											
												
													
														|  | 
 |  | +				h = int(b)
 | 
											
												
													
														|  | 
 |  | +				continue
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +			if ch == -1 {
 | 
											
												
													
														|  | 
 |  | +				ch = int(b)
 | 
											
												
													
														|  | 
 |  | +				if ch == 0x0d {
 | 
											
												
													
														|  | 
 |  | +					ch = -1
 | 
											
												
													
														|  | 
 |  | +					current = append(current, line)
 | 
											
												
													
														|  | 
 |  | +					line = make([]byte, 0)
 | 
											
												
													
														|  | 
 |  | +					continue
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				if ch == 0 {
 | 
											
												
													
														|  | 
 |  | +					current = append(current, line)
 | 
											
												
													
														|  | 
 |  | +					blocks = append(blocks, current)
 | 
											
												
													
														|  | 
 |  | +					current = make([][]byte, 0)
 | 
											
												
													
														|  | 
 |  | +					line = make([]byte, 0)
 | 
											
												
													
														|  | 
 |  | +					w = -1
 | 
											
												
													
														|  | 
 |  | +					h = -1
 | 
											
												
													
														|  | 
 |  | +					ch = -1
 | 
											
												
													
														|  | 
 |  | +					continue
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				if ch == 0x26 {
 | 
											
												
													
														|  | 
 |  | +					// & descender mark
 | 
											
												
													
														|  | 
 |  | +					ch = -1
 | 
											
												
													
														|  | 
 |  | +					continue
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +			} else {
 | 
											
												
													
														|  | 
 |  | +				color = int(b)
 | 
											
												
													
														|  | 
 |  | +				line = append(line, byte(ch))
 | 
											
												
													
														|  | 
 |  | +				line = append(line, byte(color))
 | 
											
												
													
														|  | 
 |  | +				ch = -1
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +	*/
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  	// offset optimization:
 |  |  	// offset optimization:
 | 
											
												
													
														|  |  	var single []int
 |  |  	var single []int
 | 
											
												
													
														|  |  	for _, o := range offsets {
 |  |  	for _, o := range offsets {
 | 
											
										
											
												
													
														|  | @@ -170,18 +201,12 @@ func ExtractColor(name string, offsets []uint16, data []byte) {
 | 
											
												
													
														|  |  			single = append(single, -1)
 |  |  			single = append(single, -1)
 | 
											
												
													
														|  |  			continue
 |  |  			continue
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  | -		found := false
 |  | 
 | 
											
												
													
														|  |  		for idx, i := range indexes {
 |  |  		for idx, i := range indexes {
 | 
											
												
													
														|  |  			if o == uint16(i) {
 |  |  			if o == uint16(i) {
 | 
											
												
													
														|  |  				single = append(single, idx)
 |  |  				single = append(single, idx)
 | 
											
												
													
														|  | -				found = true
 |  | 
 | 
											
												
													
														|  |  				break
 |  |  				break
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  | -		if !found {
 |  | 
 | 
											
												
													
														|  | -			fmt.Printf("Unable to locate index %d / %x (font corrupted)", o, o)
 |  | 
 | 
											
												
													
														|  | -			return
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	// Handle Names with spaces
 |  |  	// Handle Names with spaces
 | 
											
										
											
												
													
														|  | @@ -239,51 +264,90 @@ func ExtractBlock(name string, offsets []uint16, data []byte) {
 | 
											
												
													
														|  |  	var indexes []int
 |  |  	var indexes []int
 | 
											
												
													
														|  |  	var blocks [][][]byte
 |  |  	var blocks [][][]byte
 | 
											
												
													
														|  |  	var current [][]byte
 |  |  	var current [][]byte
 | 
											
												
													
														|  | -	w := -1
 |  | 
 | 
											
												
													
														|  | -	h := -1
 |  | 
 | 
											
												
													
														|  | -	ch := -1
 |  | 
 | 
											
												
													
														|  | 
 |  | +	// w := -1
 | 
											
												
													
														|  | 
 |  | +	// h := -1
 | 
											
												
													
														|  | 
 |  | +	// ch := -1
 | 
											
												
													
														|  |  	var line []byte
 |  |  	var line []byte
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -	for idx, b := range data {
 |  | 
 | 
											
												
													
														|  | -		if w == -1 {
 |  | 
 | 
											
												
													
														|  | -			indexes = append(indexes, idx)
 |  | 
 | 
											
												
													
														|  | -			current = make([][]byte, 0)
 |  | 
 | 
											
												
													
														|  | -			line = make([]byte, 0)
 |  | 
 | 
											
												
													
														|  | -			w = int(b)
 |  | 
 | 
											
												
													
														|  | -			continue
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -		if h == -1 {
 |  | 
 | 
											
												
													
														|  | -			h = int(b)
 |  | 
 | 
											
												
													
														|  | -			continue
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -		if ch == -1 {
 |  | 
 | 
											
												
													
														|  | -			ch = int(b)
 |  | 
 | 
											
												
													
														|  | -			if ch == 0x0d {
 |  | 
 | 
											
												
													
														|  | -				ch = -1
 |  | 
 | 
											
												
													
														|  | 
 |  | +	pos := 0
 | 
											
												
													
														|  | 
 |  | +	for pos < len(data) {
 | 
											
												
													
														|  | 
 |  | +		indexes = append(indexes, pos)
 | 
											
												
													
														|  | 
 |  | +		current = make([][]byte, 0)
 | 
											
												
													
														|  | 
 |  | +		line = make([]byte, 0)
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		// We don't use these
 | 
											
												
													
														|  | 
 |  | +		// w = data[pos]
 | 
											
												
													
														|  | 
 |  | +		// h = data[pos+1]
 | 
											
												
													
														|  | 
 |  | +		pos += 2
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		// process this character
 | 
											
												
													
														|  | 
 |  | +		for pos < len(data) {
 | 
											
												
													
														|  | 
 |  | +			ch := data[pos]
 | 
											
												
													
														|  | 
 |  | +			pos++
 | 
											
												
													
														|  | 
 |  | +			if ch == 0x00 {
 | 
											
												
													
														|  | 
 |  | +				// end of character
 | 
											
												
													
														|  |  				current = append(current, line)
 |  |  				current = append(current, line)
 | 
											
												
													
														|  | 
 |  | +				blocks = append(blocks, current)
 | 
											
												
													
														|  | 
 |  | +				current = make([][]byte, 0)
 | 
											
												
													
														|  |  				line = make([]byte, 0)
 |  |  				line = make([]byte, 0)
 | 
											
												
													
														|  | -				continue
 |  | 
 | 
											
												
													
														|  | 
 |  | +				break
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | -			if ch == 0 {
 |  | 
 | 
											
												
													
														|  | 
 |  | +			if ch == 0x0d {
 | 
											
												
													
														|  | 
 |  | +				// end of this character line
 | 
											
												
													
														|  |  				current = append(current, line)
 |  |  				current = append(current, line)
 | 
											
												
													
														|  | -				blocks = append(blocks, current)
 |  | 
 | 
											
												
													
														|  | -				current = make([][]byte, 0)
 |  | 
 | 
											
												
													
														|  |  				line = make([]byte, 0)
 |  |  				line = make([]byte, 0)
 | 
											
												
													
														|  | -				w = -1
 |  | 
 | 
											
												
													
														|  | -				h = -1
 |  | 
 | 
											
												
													
														|  | -				ch = -1
 |  | 
 | 
											
												
													
														|  |  				continue
 |  |  				continue
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  |  			if ch == 0x26 {
 |  |  			if ch == 0x26 {
 | 
											
												
													
														|  |  				// & descender mark
 |  |  				// & descender mark
 | 
											
												
													
														|  | -				ch = -1
 |  | 
 | 
											
												
													
														|  |  				continue
 |  |  				continue
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  | -			line = append(line, byte(ch))
 |  | 
 | 
											
												
													
														|  | -			ch = -1
 |  | 
 | 
											
												
													
														|  | 
 |  | +			line = append(line, ch)
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +	/*
 | 
											
												
													
														|  | 
 |  | +		for idx, b := range data {
 | 
											
												
													
														|  | 
 |  | +			if w == -1 {
 | 
											
												
													
														|  | 
 |  | +				indexes = append(indexes, idx)
 | 
											
												
													
														|  | 
 |  | +				current = make([][]byte, 0)
 | 
											
												
													
														|  | 
 |  | +				line = make([]byte, 0)
 | 
											
												
													
														|  | 
 |  | +				w = int(b)
 | 
											
												
													
														|  | 
 |  | +				continue
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +			if h == -1 {
 | 
											
												
													
														|  | 
 |  | +				h = int(b)
 | 
											
												
													
														|  | 
 |  | +				continue
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +			if ch == -1 {
 | 
											
												
													
														|  | 
 |  | +				ch = int(b)
 | 
											
												
													
														|  | 
 |  | +				if ch == 0x0d {
 | 
											
												
													
														|  | 
 |  | +					ch = -1
 | 
											
												
													
														|  | 
 |  | +					current = append(current, line)
 | 
											
												
													
														|  | 
 |  | +					line = make([]byte, 0)
 | 
											
												
													
														|  | 
 |  | +					continue
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				if ch == 0 {
 | 
											
												
													
														|  | 
 |  | +					current = append(current, line)
 | 
											
												
													
														|  | 
 |  | +					blocks = append(blocks, current)
 | 
											
												
													
														|  | 
 |  | +					current = make([][]byte, 0)
 | 
											
												
													
														|  | 
 |  | +					line = make([]byte, 0)
 | 
											
												
													
														|  | 
 |  | +					w = -1
 | 
											
												
													
														|  | 
 |  | +					h = -1
 | 
											
												
													
														|  | 
 |  | +					ch = -1
 | 
											
												
													
														|  | 
 |  | +					continue
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				if ch == 0x26 {
 | 
											
												
													
														|  | 
 |  | +					// & descender mark
 | 
											
												
													
														|  | 
 |  | +					ch = -1
 | 
											
												
													
														|  | 
 |  | +					continue
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				line = append(line, byte(ch))
 | 
											
												
													
														|  | 
 |  | +				ch = -1
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +	*/
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  	// offset optimization:
 |  |  	// offset optimization:
 | 
											
												
													
														|  |  	var single []int
 |  |  	var single []int
 | 
											
												
													
														|  |  	for _, o := range offsets {
 |  |  	for _, o := range offsets {
 | 
											
										
											
												
													
														|  | @@ -291,18 +355,12 @@ func ExtractBlock(name string, offsets []uint16, data []byte) {
 | 
											
												
													
														|  |  			single = append(single, -1)
 |  |  			single = append(single, -1)
 | 
											
												
													
														|  |  			continue
 |  |  			continue
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  | -		found := false
 |  | 
 | 
											
												
													
														|  |  		for idx, i := range indexes {
 |  |  		for idx, i := range indexes {
 | 
											
												
													
														|  |  			if o == uint16(i) {
 |  |  			if o == uint16(i) {
 | 
											
												
													
														|  |  				single = append(single, idx)
 |  |  				single = append(single, idx)
 | 
											
												
													
														|  | -				found = true
 |  | 
 | 
											
												
													
														|  |  				break
 |  |  				break
 | 
											
												
													
														|  |  			}
 |  |  			}
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  | -		if !found {
 |  | 
 | 
											
												
													
														|  | -			fmt.Printf("Unable to locate index %d / %x (font corrupted)", o, o)
 |  | 
 | 
											
												
													
														|  | -			return
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	// Handle Names with spaces
 |  |  	// Handle Names with spaces
 | 
											
										
											
												
													
														|  | @@ -317,6 +375,9 @@ func ExtractBlock(name string, offsets []uint16, data []byte) {
 | 
											
												
													
														|  |  	defer fp.Close()
 |  |  	defer fp.Close()
 | 
											
												
													
														|  |  	writer := bufio.NewWriter(fp)
 |  |  	writer := bufio.NewWriter(fp)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +	// Should this output routine be part of the BlockFont?
 | 
											
												
													
														|  | 
 |  | +	// I think so!
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  	// writer.WriteString("package main\n")
 |  |  	// writer.WriteString("package main\n")
 | 
											
												
													
														|  |  	writer.WriteString("// " + name + "\n\n")
 |  |  	writer.WriteString("// " + name + "\n\n")
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -404,10 +465,6 @@ func ExtractFonts(filename string, fonts []string) {
 | 
											
												
													
														|  |  		data := make([]byte, BlockSize)
 |  |  		data := make([]byte, BlockSize)
 | 
											
												
													
														|  |  		binary.Read(f, binary.LittleEndian, &data)
 |  |  		binary.Read(f, binary.LittleEndian, &data)
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -		if FontFixup(letterOffsets, &data) {
 |  | 
 | 
											
												
													
														|  | -			fmt.Printf("Attempting to *FIX* Font %s\n", Name)
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |  		// Special case where they are asking for all fonts
 |  |  		// Special case where they are asking for all fonts
 | 
											
												
													
														|  |  		if len(fonts) == 1 && fonts[0] == "*" {
 |  |  		if len(fonts) == 1 && fonts[0] == "*" {
 | 
											
												
													
														|  |  			switch FontType {
 |  |  			switch FontType {
 |