FormatMsg vars refactoring
Vladimir Bauer
3 years ago
| 138 | 138 | // Should be called by any Decorator implementation. |
| 139 | 139 | func (wc *WC) FormatMsg(msg string) string { |
| 140 | 140 | pureWidth := runewidth.StringWidth(msg) |
| 141 | stripWidth := runewidth.StringWidth(stripansi.Strip(msg)) | |
| 142 | maxCell := wc.W | |
| 141 | viewWidth := runewidth.StringWidth(stripansi.Strip(msg)) | |
| 142 | max := wc.W | |
| 143 | 143 | if (wc.C & DSyncWidth) != 0 { |
| 144 | cellCount := stripWidth | |
| 144 | viewWidth := viewWidth | |
| 145 | 145 | if (wc.C & DextraSpace) != 0 { |
| 146 | cellCount++ | |
| 146 | viewWidth++ | |
| 147 | 147 | } |
| 148 | wc.wsync <- cellCount | |
| 149 | maxCell = <-wc.wsync | |
| 148 | wc.wsync <- viewWidth | |
| 149 | max = <-wc.wsync | |
| 150 | 150 | } |
| 151 | return wc.fill(msg, maxCell+(pureWidth-stripWidth)) | |
| 151 | return wc.fill(msg, max-viewWidth+pureWidth) | |
| 152 | 152 | } |
| 153 | 153 | |
| 154 | 154 | // Init initializes width related config. |