@@ -20,71 +20,70 @@ import (
2020 "fmt"
2121
2222 "github.com/acarl005/stripansi"
23+ "github.com/morikuni/aec"
2324)
2425
2526var disableAnsi bool
2627
27- func ansi (code string ) string {
28- return fmt .Sprintf ("\033 %s" , code )
29- }
30-
3128func saveCursor () {
3229 if disableAnsi {
3330 return
3431 }
35- fmt .Print (ansi ("7" ))
32+ // see https://github.com/morikuni/aec/pull/5
33+ fmt .Print (aec .Save )
3634}
3735
3836func restoreCursor () {
3937 if disableAnsi {
4038 return
4139 }
42- fmt .Print (ansi ("8" ))
40+ // see https://github.com/morikuni/aec/pull/5
41+ fmt .Print (aec .Restore )
4342}
4443
4544func showCursor () {
4645 if disableAnsi {
4746 return
4847 }
49- fmt .Print (ansi ( "[?25h" ) )
48+ fmt .Print (aec . Show )
5049}
5150
5251func moveCursor (y , x int ) {
5352 if disableAnsi {
5453 return
5554 }
56- fmt .Print (ansi ( fmt . Sprintf ( "[%d;%dH" , y , x )))
55+ fmt .Print (aec . Position ( uint ( y ), uint ( x )))
5756}
5857
5958func carriageReturn () {
6059 if disableAnsi {
6160 return
6261 }
63- fmt .Print (ansi ( fmt . Sprintf ( "[%dG" , 0 ) ))
62+ fmt .Print (aec . Column ( 0 ))
6463}
6564
6665func clearLine () {
6766 if disableAnsi {
6867 return
6968 }
7069 // Does not move cursor from its current position
71- fmt .Print (ansi ( "[2K" ))
70+ fmt .Print (aec . EraseLine ( aec . EraseModes . Tail ))
7271}
7372
7473func moveCursorUp (lines int ) {
7574 if disableAnsi {
7675 return
7776 }
7877 // Does not add new lines
79- fmt .Print (ansi ( fmt . Sprintf ( "[%dA" , lines )))
78+ fmt .Print (aec . Up ( uint ( lines )))
8079}
8180
8281func moveCursorDown (lines int ) {
8382 if disableAnsi {
8483 return
8584 }
8685 // Does not add new lines
87- fmt .Print (ansi ( fmt . Sprintf ( "[%dB" , lines )))
86+ fmt .Print (aec . Down ( uint ( lines )))
8887}
8988
9089func newLine () {
0 commit comments