Skip to content

Commit 6a118b2

Browse files
authored
Merge pull request #56 from secDre4mer/master
Write plain text in chunks
2 parents a53eda5 + 39a0e9a commit 6a118b2

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

colorable_windows.go

+7-3
Original file line numberDiff line numberDiff line change
@@ -452,18 +452,22 @@ func (w *Writer) Write(data []byte) (n int, err error) {
452452
} else {
453453
er = bytes.NewReader(data)
454454
}
455-
var bw [1]byte
455+
var plaintext bytes.Buffer
456456
loop:
457457
for {
458458
c1, err := er.ReadByte()
459459
if err != nil {
460+
plaintext.WriteTo(w.out)
460461
break loop
461462
}
462463
if c1 != 0x1b {
463-
bw[0] = c1
464-
w.out.Write(bw[:])
464+
plaintext.WriteByte(c1)
465465
continue
466466
}
467+
_, err = plaintext.WriteTo(w.out)
468+
if err != nil {
469+
break loop
470+
}
467471
c2, err := er.ReadByte()
468472
if err != nil {
469473
break loop

noncolorable.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,22 @@ func NewNonColorable(w io.Writer) io.Writer {
1818
// Write writes data on console
1919
func (w *NonColorable) Write(data []byte) (n int, err error) {
2020
er := bytes.NewReader(data)
21-
var bw [1]byte
21+
var plaintext bytes.Buffer
2222
loop:
2323
for {
2424
c1, err := er.ReadByte()
2525
if err != nil {
26+
plaintext.WriteTo(w.out)
2627
break loop
2728
}
2829
if c1 != 0x1b {
29-
bw[0] = c1
30-
_, err = w.out.Write(bw[:])
31-
if err != nil {
32-
break loop
33-
}
30+
plaintext.WriteByte(c1)
3431
continue
3532
}
33+
_, err = plaintext.WriteTo(w.out)
34+
if err != nil {
35+
break loop
36+
}
3637
c2, err := er.ReadByte()
3738
if err != nil {
3839
break loop

0 commit comments

Comments
 (0)