mirror of https://github.com/Hilbis/Hilbish
fix: resize if terminal has been resized during running command and fix readline segfault
parent
6ac4aa50b3
commit
d270e8f66b
17
main.go
17
main.go
|
@ -34,6 +34,9 @@ var (
|
|||
hooks bait.Bait
|
||||
defaultConfPath string
|
||||
defaultHistPath string
|
||||
|
||||
resized bool
|
||||
started bool
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
@ -167,6 +170,7 @@ func main() {
|
|||
os.Exit(0)
|
||||
}
|
||||
|
||||
started = true
|
||||
input:
|
||||
for interactive {
|
||||
running = false
|
||||
|
@ -174,6 +178,11 @@ input:
|
|||
lr.SetPrompt(fmtPrompt())
|
||||
input, err := lr.Read()
|
||||
|
||||
if resized {
|
||||
resized = false
|
||||
lr.Resize()
|
||||
}
|
||||
|
||||
if err == io.EOF {
|
||||
// Exit if user presses ^D (ctrl + d)
|
||||
break
|
||||
|
@ -270,8 +279,12 @@ func HandleSignals() {
|
|||
}
|
||||
case syscall.SIGWINCH:
|
||||
hooks.Em.Emit("signals.resize")
|
||||
if !running && interactive {
|
||||
lr.Resize()
|
||||
if interactive {
|
||||
if !running && started {
|
||||
lr.Resize()
|
||||
} else {
|
||||
resized = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue