|
@@ -129,16 +129,24 @@ func (l *Line) LineLength(text *bytes.Buffer) {
|
|
|
var length int
|
|
|
|
|
|
if Unicode {
|
|
|
- var ubuff *bytes.Buffer = bytes.NewBuffer(text.Bytes())
|
|
|
+ if l.render == nil {
|
|
|
+ l.render = &bytes.Buffer{}
|
|
|
+ }
|
|
|
+ l.render.Reset()
|
|
|
+ l.render.Write(text.Bytes())
|
|
|
+ /*
|
|
|
+ var ubuff *bytes.Buffer = bytes.NewBuffer(text.Bytes())
|
|
|
+ */
|
|
|
var e error
|
|
|
var r rune
|
|
|
for {
|
|
|
- r, _, e = ubuff.ReadRune()
|
|
|
+ r, _, e = l.render.ReadRune()
|
|
|
if e != nil {
|
|
|
break
|
|
|
}
|
|
|
length += UnicodeWidth(r)
|
|
|
}
|
|
|
+ l.render.Reset()
|
|
|
} else {
|
|
|
length = text.Len()
|
|
|
}
|
|
@@ -170,7 +178,9 @@ func (l *Line) Output() []byte {
|
|
|
|
|
|
if l.RenderF == nil {
|
|
|
l.render.Reset()
|
|
|
- l.render.WriteString(l.DefaultColor)
|
|
|
+ if l.DefaultColor != "" {
|
|
|
+ l.render.WriteString(l.DefaultColor)
|
|
|
+ }
|
|
|
l.render.Write(l.Text.Bytes())
|
|
|
return l.render.Bytes()
|
|
|
// return l.DefaultColor + l.Text
|