23 lines
374 B
Go
23 lines
374 B
Go
package clifmt
|
||
|
||
import (
|
||
"regexp"
|
||
)
|
||
|
||
var esc = regexp.MustCompile(`(?m)\[(?:\d+;)*\d+m`)
|
||
|
||
// displaySize returns the real size escaping special characters
|
||
func displaySize(s string) int {
|
||
|
||
// 1. get actual size
|
||
size := len(s)
|
||
|
||
// 2. get all terminal coloring matches
|
||
matches := esc.FindAllString(s, -1)
|
||
for _, m := range matches {
|
||
size -= len(m)
|
||
}
|
||
|
||
return size
|
||
}
|