|  | @@ -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
 |