Revert WordWrap signature change

Resolves #40.
This commit is contained in:
Trevor Slocum 2020-10-11 17:15:33 -07:00
parent 9c3564dc42
commit 298510a685
2 changed files with 6 additions and 6 deletions

View File

@ -209,9 +209,9 @@ func (m *Modal) Draw(screen tcell.Screen) {
// Reset the text and find out how wide it is.
m.frame.Clear()
lines := WordWrap([]byte(m.text), width)
lines := WordWrap(m.text, width)
for _, line := range lines {
m.frame.AddText(string(line), true, AlignCenter, m.textColor)
m.frame.AddText(line, true, AlignCenter, m.textColor)
}
// Set the Modal's position and size.

View File

@ -469,8 +469,8 @@ func TaggedStringWidth(text string) int {
// This function considers color tags to have no width.
//
// Text is always split at newline characters ('\n').
func WordWrap(text []byte, width int) (lines [][]byte) {
colorTagIndices, _, _, _, escapeIndices, strippedText, _ := decomposeText(text, true, false)
func WordWrap(text string, width int) (lines []string) {
colorTagIndices, _, _, _, escapeIndices, strippedText, _ := decomposeText([]byte(text), true, false)
// Find candidate breakpoints.
breakpoints := boundaryPattern.FindAllSubmatchIndex(strippedText, -1)
@ -485,12 +485,12 @@ func WordWrap(text []byte, width int) (lines [][]byte) {
lineWidth, overflow int
forceBreak bool
)
unescape := func(substr []byte, startIndex int) []byte {
unescape := func(substr string, startIndex int) string {
// A helper function to unescape escaped tags.
for index := escapePos; index >= 0; index-- {
if index < len(escapeIndices) && startIndex > escapeIndices[index][0] && startIndex < escapeIndices[index][1]-1 {
pos := escapeIndices[index][1] - 2 - startIndex
return append(substr[:pos], substr[pos+1:]...)
return substr[:pos] + substr[pos+1:]
}
}
return substr