...
1 package figure
2
3 import (
4 "strconv"
5 "strings"
6 )
7
8 const signature = "flf2"
9 const reverseFlag = "1"
10
11 var charDelimiters = [3]string{"@", "#", "$"}
12 var hardblanksBlacklist = [2]byte{'a', '2'}
13
14 func getHeight(metadata string) int {
15 datum := strings.Fields(metadata)[1]
16 height, _ := strconv.Atoi(datum)
17 return height
18 }
19
20 func getBaseline(metadata string) int {
21 datum := strings.Fields(metadata)[2]
22 baseline, _ := strconv.Atoi(datum)
23 return baseline
24 }
25
26 func getHardblank(metadata string) byte {
27 datum := strings.Fields(metadata)[0]
28 hardblank := datum[len(datum)-1]
29 if hardblank == hardblanksBlacklist[0] || hardblank == hardblanksBlacklist[1] {
30 return ' '
31 } else {
32 return hardblank
33 }
34 }
35
36 func getReverse(metadata string) bool {
37 data := strings.Fields(metadata)
38 return len(data) > 6 && data[6] == reverseFlag
39 }
40
41 func lastCharLine(text string, height int) bool {
42 endOfLine, length := " ", 2
43 if height == 1 && len(text) > 0 {
44 length = 1
45 }
46 if len(text) >= length {
47 endOfLine = text[len(text)-length:]
48 }
49 return endOfLine == strings.Repeat(charDelimiters[0], length) ||
50 endOfLine == strings.Repeat(charDelimiters[1], length) ||
51 endOfLine == strings.Repeat(charDelimiters[2], length)
52 }
53
View as plain text