[BUG] `TestTabWithColorBox` test fails on macos terminal
Describe the bug
When running the test especially on TestTabWithColorBox, it crashes (specifically an out-of-bounds crash)
To Reproduce Steps to reproduce the behavior:
- Test
go test -v . - See error
Expected behavior Successful test
Screenshots / Logs

Versions (please complete the following information, if relevant):
- Software version: dev branch
- OS: Mac OS 11.6
- Golang version: 1.19
- Terminal using and Version: MacOS Terminal 2.11
Additional context Debugging the text and the separator in runes shows the following results:
color.ClearCode(topBar): [9484 32 66 111 120 32 32 32 32 32 67 76 73 32 32 32 32 32 77 97 107 101 114 32 32 32 128230 32 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9472 9488]
color.ClearCode(title): [66 111 120 32 32 32 67 76 73 32 32 32 32 32 77 97 107 101 114 32 32 32 128230]
the title text in the topbar in []runes (the color.clearCode(topBar)) is 66 111 120 32 32 32 32 32 67 76 73 32 32 32 32 32 77 97 107 101 114 32 32 32 128230
while the separator (the color.clearCode(title)) is 66 111 120 32 32 32 67 76 73 32 32 32 32 32 77 97 107 101 114 32 32 32 128230
if you look at it closely on the first set of 32s the text has 5 32s while the separator has only 3 32s
probably an issue with the ClearCode method
This is quite an interesting issue.
hi @nedpals can provide the topBar and title string.
I can confirm that this test works on iterm2

hi @nedpals can provide the
topBarandtitlestring.
here are the values (i'll just paste them as []rune as turning them to strings might lose info)
topBar := string([]rune{9484, 32, 66, 111, 120, 32, 32, 32, 32, 32, 67, 76, 73, 32, 32, 32, 32, 32, 77, 97, 107, 101, 114, 32, 32, 32, 128230, 32, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9472, 9488})
title := string([]rune{66, 111, 120, 32, 32, 32, 67, 76, 73, 32, 32, 32, 32, 32, 77, 97, 107, 101, 114, 32, 32, 32, 128230})
there are runes is after call color.ClearCode() ?
can provide them on before call func ClearCode()
there are
runesis after callcolor.ClearCode()? can provide them on before call funcClearCode()
There are the runes before ClearCode function call.
color.ClearCode(topBar) has []rune{66, 111, 120, 32, 32, 32, 32, 32, 67, 76, 73, 32, 32, 32, 32, 32, 77, 97, 107, 101, 114, 32, 32, 32, 128230}
color.ClearCode(title) has []rune{66, 111, 120, 32, 32, 32, 67, 76, 73, 32, 32, 32, 32, 32, 77, 97, 107, 101, 114, 32, 32, 32, 128230}
@inhere Can you work on solving this?
@Delta456 xstrings.ExpandTabs maybe has error
see:

@Delta456
xstrings.ExpandTabsmaybe has errorsee:
This seems to work on iterm2 and the rest terminals except iterm. Can you check what should be the tab size for iterm? I will add a workaround for it.
hi @Delta456 I am running the test directly in MacOS GoLand
hi @Delta456 I am running the test directly in MacOS GoLand
I see. I really wonder why it fails on iterm.
I don't think you can even run iterm in the newer versions of MacOS. Couldn't repro this issue in MacOS Terminal 2.12.7 or Iterm2 v3.4.16 in MacOS v12.6