|
|
|
@ -1724,6 +1724,9 @@ func (t *Terminal) updatePromptOffset() ([]rune, []rune) {
|
|
|
|
|
func (t *Terminal) promptLine() int {
|
|
|
|
|
if t.headerFirst {
|
|
|
|
|
max := t.window.Height() - 1
|
|
|
|
|
if max <= 0 { // Extremely short terminal
|
|
|
|
|
return 0
|
|
|
|
|
}
|
|
|
|
|
if !t.noSeparatorLine() {
|
|
|
|
|
max--
|
|
|
|
|
}
|
|
|
|
@ -1759,9 +1762,14 @@ func (t *Terminal) trimMessage(message string, maxWidth int) string {
|
|
|
|
|
func (t *Terminal) printInfo() {
|
|
|
|
|
pos := 0
|
|
|
|
|
line := t.promptLine()
|
|
|
|
|
move := func(y int, x int, clear bool) {
|
|
|
|
|
maxHeight := t.window.Height()
|
|
|
|
|
move := func(y int, x int, clear bool) bool {
|
|
|
|
|
if y < 0 || y >= maxHeight {
|
|
|
|
|
return false
|
|
|
|
|
}
|
|
|
|
|
t.move(y, x, clear)
|
|
|
|
|
t.markOtherLine(y)
|
|
|
|
|
return true
|
|
|
|
|
}
|
|
|
|
|
printSpinner := func() {
|
|
|
|
|
if t.reading {
|
|
|
|
@ -1800,7 +1808,9 @@ func (t *Terminal) printInfo() {
|
|
|
|
|
|
|
|
|
|
if t.infoStyle == infoHidden {
|
|
|
|
|
if t.separatorLen > 0 {
|
|
|
|
|
move(line+1, 0, false)
|
|
|
|
|
if !move(line+1, 0, false) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
printSeparator(t.window.Width()-1, false)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
@ -1844,12 +1854,16 @@ func (t *Terminal) printInfo() {
|
|
|
|
|
|
|
|
|
|
switch t.infoStyle {
|
|
|
|
|
case infoDefault:
|
|
|
|
|
move(line+1, 0, t.separatorLen == 0)
|
|
|
|
|
if !move(line+1, 0, t.separatorLen == 0) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
printSpinner()
|
|
|
|
|
t.window.Print(" ") // Margin
|
|
|
|
|
pos = 2
|
|
|
|
|
case infoRight:
|
|
|
|
|
move(line+1, 0, false)
|
|
|
|
|
if !move(line+1, 0, false) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
case infoInlineRight:
|
|
|
|
|
pos = t.promptLen + t.queryLen[0] + t.queryLen[1] + 1
|
|
|
|
|
case infoInline:
|
|
|
|
@ -1921,7 +1935,9 @@ func (t *Terminal) printInfo() {
|
|
|
|
|
|
|
|
|
|
if t.infoStyle == infoInlineRight {
|
|
|
|
|
if t.separatorLen > 0 {
|
|
|
|
|
move(line+1, 0, false)
|
|
|
|
|
if !move(line+1, 0, false) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
printSeparator(t.window.Width()-1, false)
|
|
|
|
|
}
|
|
|
|
|
return
|
|
|
|
|