stripAnsi removes ANSI escape codes from a string
(s string)
| 370 | |
| 371 | // stripAnsi removes ANSI escape codes from a string |
| 372 | func stripAnsi(s string) string { |
| 373 | var result strings.Builder |
| 374 | inAnsi := false |
| 375 | for _, r := range s { |
| 376 | if r == '\x1b' { |
| 377 | inAnsi = true |
| 378 | continue |
| 379 | } |
| 380 | if inAnsi { |
| 381 | // ANSI sequences end with a letter (m, h, l, G, etc.) |
| 382 | if (r >= 'A' && r <= 'Z') || (r >= 'a' && r <= 'z') { |
| 383 | inAnsi = false |
| 384 | } |
| 385 | continue |
| 386 | } |
| 387 | result.WriteRune(r) |
| 388 | } |
| 389 | return result.String() |
| 390 | } |
| 391 | |
| 392 | func TestPrintWithDimensions_PulledAndPullingWithLongIDs(t *testing.T) { |
| 393 | w, buf := newTestWriter() |
no test coverage detected