Merge pull request #4649 from MichaelEischer/simplify-termstatus-shutdown

ui/termstatus: simplify cleaning up on termination
This commit is contained in:
Michael Eischer 2024-01-23 19:16:21 +01:00 committed by GitHub
commit 2927982256
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 3 additions and 28 deletions

View file

@ -105,7 +105,7 @@ func (t *Terminal) run(ctx context.Context) {
select {
case <-ctx.Done():
if !IsProcessBackground(t.fd) {
t.undoStatus(len(status))
t.writeStatus([]string{})
}
return
@ -235,30 +235,6 @@ func (t *Terminal) runWithoutStatus(ctx context.Context) {
}
}
func (t *Terminal) undoStatus(lines int) {
for i := 0; i < lines; i++ {
t.clearCurrentLine(t.wr, t.fd)
_, err := t.wr.WriteRune('\n')
if err != nil {
fmt.Fprintf(os.Stderr, "write failed: %v\n", err)
}
// flush is needed so that the current line is updated
err = t.wr.Flush()
if err != nil {
fmt.Fprintf(os.Stderr, "flush failed: %v\n", err)
}
}
t.moveCursorUp(t.wr, t.fd, lines)
err := t.wr.Flush()
if err != nil {
fmt.Fprintf(os.Stderr, "flush failed: %v\n", err)
}
}
func (t *Terminal) print(line string, isErr bool) {
// make sure the line ends with a line break
if line[len(line)-1] != '\n' {

View file

@ -39,11 +39,10 @@ func TestSetStatus(t *testing.T) {
term.SetStatus([]string{"quux", "needs\nquote"})
exp += home + clear + "quux\n" +
home + clear + "\"needs\\nquote\"\n" +
home + clear + home + up + up // Third line implicit.
home + clear + home + up + up // Clear third line
cancel()
exp += home + clear + "\n" + home + clear + "\n" +
home + up + up // Status cleared.
exp += home + clear + "\n" + home + clear + home + up // Status cleared
<-term.closed
rtest.Equals(t, exp, buf.String())