Skip to content

Commit

Permalink
text: cover more reverse escapae codes
Browse files Browse the repository at this point in the history
  • Loading branch information
jedib0t committed Oct 3, 2024
1 parent 232bf7c commit 82dc7ea
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
14 changes: 13 additions & 1 deletion text/escape_sequences.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,20 @@ func (s *escSeqParser) Parse(seq string) {
switch codeNum {
case 0: // reset
s.openSeq = make(map[int]bool) // clear everything
case 22: // un-bold
case 22: // reset intensity
delete(s.openSeq, 1) // remove bold
delete(s.openSeq, 2) // remove faint
case 23: // not italic
delete(s.openSeq, 3) // remove italic
case 24: // not underlined
delete(s.openSeq, 4) // remove underline
case 25: // not blinking
delete(s.openSeq, 5) // remove slow blink
delete(s.openSeq, 6) // remove rapid blink
case 27: // not reversed
delete(s.openSeq, 7) // remove reverse
case 29: // not crossed-out
delete(s.openSeq, 9) // remove crossed-out
default:
s.openSeq[codeNum] = true
}
Expand Down
9 changes: 7 additions & 2 deletions text/escape_sequences_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,13 @@ func Test_escSeqParser(t *testing.T) {
t.Run("extract", func(t *testing.T) {
es := escSeqParser{}

assert.Equal(t, "\x1b[1;91m", es.Extract("\x1b[91m\x1b[1m Bold text"))
assert.Equal(t, "\x1b[91m", es.Extract("\x1b[22m Regular text"))
assert.Equal(t, "\x1b[1;3;4;5;7;9;91m", es.Extract("\x1b[91m\x1b[1m\x1b[3m\x1b[4m\x1b[5m\x1b[7m\x1b[9m Spicy"))
assert.Equal(t, "\x1b[3;4;5;7;9;91m", es.Extract("\x1b[22m No Bold"))
assert.Equal(t, "\x1b[4;5;7;9;91m", es.Extract("\x1b[23m No Italic"))
assert.Equal(t, "\x1b[5;7;9;91m", es.Extract("\x1b[24m No Underline"))
assert.Equal(t, "\x1b[7;9;91m", es.Extract("\x1b[25m No Blink"))
assert.Equal(t, "\x1b[9;91m", es.Extract("\x1b[27m No Reverse"))
assert.Equal(t, "\x1b[91m", es.Extract("\x1b[29m No Crossed-Out"))
assert.Equal(t, "", es.Extract("\x1b[0m Resetted"))
})

Expand Down

0 comments on commit 82dc7ea

Please # to comment.