Skip to content

Commit f593698

Browse files
authored
Merge pull request #5 from danielgatis/fix-issue-4
fix for issue #4
2 parents 50870d6 + 247371e commit f593698

File tree

2 files changed

+48
-53
lines changed

2 files changed

+48
-53
lines changed

performer_csi.go

Lines changed: 47 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -431,24 +431,22 @@ func (p *Performer) CsiDispatch(params [][]uint16, intermediates []byte, ignore
431431
p.handler.SetTerminalCharAttribute(attrWithNamedColor(CharAttributeForeground, NamedColorWhite))
432432

433433
case 38:
434-
for paramsIter.HasNext() {
435-
m, ok := paramsIter.GetNext()
436-
if !ok {
437-
continue
438-
}
439-
440-
switch m {
441-
case 2:
442-
r := paramsIter.GetNextOrDefault(0)
443-
g := paramsIter.GetNextOrDefault(0)
444-
b := paramsIter.GetNextOrDefault(0)
445-
446-
p.handler.SetTerminalCharAttribute(attrWithRGBColor(CharAttributeForeground, r, g, b))
447-
448-
case 5:
449-
i := paramsIter.GetNextOrDefault(0)
450-
p.handler.SetTerminalCharAttribute(attrWithIndexedColor(CharAttributeForeground, i))
451-
}
434+
m, ok := paramsIter.GetNext()
435+
if !ok {
436+
continue
437+
}
438+
439+
switch m {
440+
case 2:
441+
r := paramsIter.GetNextOrDefault(0)
442+
g := paramsIter.GetNextOrDefault(0)
443+
b := paramsIter.GetNextOrDefault(0)
444+
445+
p.handler.SetTerminalCharAttribute(attrWithRGBColor(CharAttributeForeground, r, g, b))
446+
447+
case 5:
448+
i := paramsIter.GetNextOrDefault(0)
449+
p.handler.SetTerminalCharAttribute(attrWithIndexedColor(CharAttributeForeground, i))
452450
}
453451

454452
case 39:
@@ -479,47 +477,43 @@ func (p *Performer) CsiDispatch(params [][]uint16, intermediates []byte, ignore
479477
p.handler.SetTerminalCharAttribute(attrWithNamedColor(CharAttributeBackground, NamedColorWhite))
480478

481479
case 48:
482-
for paramsIter.HasNext() {
483-
m, ok := paramsIter.GetNext()
484-
if !ok {
485-
continue
486-
}
487-
488-
switch m {
489-
case 2:
490-
r := paramsIter.GetNextOrDefault(0)
491-
g := paramsIter.GetNextOrDefault(0)
492-
b := paramsIter.GetNextOrDefault(0)
493-
494-
p.handler.SetTerminalCharAttribute(attrWithRGBColor(CharAttributeBackground, r, g, b))
495-
496-
case 5:
497-
i := paramsIter.GetNextOrDefault(0)
498-
p.handler.SetTerminalCharAttribute(attrWithIndexedColor(CharAttributeBackground, i))
499-
}
480+
m, ok := paramsIter.GetNext()
481+
if !ok {
482+
continue
483+
}
484+
485+
switch m {
486+
case 2:
487+
r := paramsIter.GetNextOrDefault(0)
488+
g := paramsIter.GetNextOrDefault(0)
489+
b := paramsIter.GetNextOrDefault(0)
490+
491+
p.handler.SetTerminalCharAttribute(attrWithRGBColor(CharAttributeBackground, r, g, b))
492+
493+
case 5:
494+
i := paramsIter.GetNextOrDefault(0)
495+
p.handler.SetTerminalCharAttribute(attrWithIndexedColor(CharAttributeBackground, i))
500496
}
501497

502498
case 49:
503499
p.handler.SetTerminalCharAttribute(attrWithNamedColor(CharAttributeBackground, NamedColorBackground))
504500

505501
case 58:
506-
for paramsIter.HasNext() {
507-
m, ok := paramsIter.GetNext()
508-
if !ok {
509-
continue
510-
}
511-
512-
switch m {
513-
case 2:
514-
r := paramsIter.GetNextOrDefault(0)
515-
g := paramsIter.GetNextOrDefault(0)
516-
b := paramsIter.GetNextOrDefault(0)
517-
518-
p.handler.SetTerminalCharAttribute(attrWithRGBColor(CharAttributeUnderlineColor, r, g, b))
519-
case 5:
520-
i := paramsIter.GetNextOrDefault(0)
521-
p.handler.SetTerminalCharAttribute(attrWithIndexedColor(CharAttributeUnderlineColor, i))
522-
}
502+
m, ok := paramsIter.GetNext()
503+
if !ok {
504+
continue
505+
}
506+
507+
switch m {
508+
case 2:
509+
r := paramsIter.GetNextOrDefault(0)
510+
g := paramsIter.GetNextOrDefault(0)
511+
b := paramsIter.GetNextOrDefault(0)
512+
513+
p.handler.SetTerminalCharAttribute(attrWithRGBColor(CharAttributeUnderlineColor, r, g, b))
514+
case 5:
515+
i := paramsIter.GetNextOrDefault(0)
516+
p.handler.SetTerminalCharAttribute(attrWithIndexedColor(CharAttributeUnderlineColor, i))
523517
}
524518

525519
case 59:

performer_csi_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ func TestPerformer_CsiDispatch(t *testing.T) {
177177
{name: "CSI 37 m", args: args{params: [][]uint16{{37}}, action: 'm'}, want: want{mock: m("SetTerminalCharAttribute", attrWithNamedColor(CharAttributeForeground, NamedColorWhite))}},
178178
{name: "CSI 38 ; 5 ; 31 m", args: args{params: [][]uint16{{38}, {5}, {31}}, action: 'm'}, want: want{mock: m("SetTerminalCharAttribute", attrWithIndexedColor(CharAttributeForeground, 31))}},
179179
{name: "CSI 38 ; 2 ; 3 ; 3 ; 3 m", args: args{params: [][]uint16{{38}, {2}, {3}, {3}, {3}}, action: 'm'}, want: want{mock: m("SetTerminalCharAttribute", attrWithRGBColor(CharAttributeForeground, 3, 3, 3))}},
180+
{name: "CSI 38; 2; 0; 0; 0; 48; 2; 255; 255; 255 m", args: args{params: [][]uint16{{38}, {2}, {0}, {0}, {0}, {48}, {2}, {255}, {255}, {255}}, action: 'm'}, want: want{mock: ms([]string{"SetTerminalCharAttribute", "SetTerminalCharAttribute"}, attrWithRGBColor(CharAttributeForeground, 0, 0, 0), attrWithRGBColor(CharAttributeBackground, 255, 255, 255))}},
180181
{name: "CSI 39 m", args: args{params: [][]uint16{{39}}, action: 'm'}, want: want{mock: m("SetTerminalCharAttribute", attrWithNamedColor(CharAttributeForeground, NamedColorForeground))}},
181182
{name: "CSI 40 m", args: args{params: [][]uint16{{40}}, action: 'm'}, want: want{mock: m("SetTerminalCharAttribute", attrWithNamedColor(CharAttributeBackground, NamedColorBlack))}},
182183
{name: "CSI 41 m", args: args{params: [][]uint16{{41}}, action: 'm'}, want: want{mock: m("SetTerminalCharAttribute", attrWithNamedColor(CharAttributeBackground, NamedColorRed))}},

0 commit comments

Comments
 (0)