Properly close stream in interactive mode.

v0.9
Martin Dosch 3 months ago
parent 15e7664f2a
commit 6dcabd47f4
No known key found for this signature in database
GPG Key ID: 52A57CFCE13D657D

@ -1,6 +1,8 @@
# Changelog
## UNRELEASED
### Changed
- Properly close stream if `Ctrl+C` is pressed in interactive mode.
## [v0.8.4] 2024-03-09
### Changed

@ -15,6 +15,7 @@ import (
"net"
"os"
"os/signal"
"runtime"
"strings"
"time"
@ -466,17 +467,20 @@ func main() {
signal.Notify(c, os.Interrupt)
go func() {
for range c {
cancel()
client.Close()
os.Exit(0)
closeAndExit(client, cancel, nil)
}
}()
for {
message, err = reader.ReadString('\n')
message = strings.TrimSuffix(message, "\n")
if err != nil {
closeAndExit(client, cancel, errors.New("failed to read from stdin"))
select {
case <-ctx.Done():
return
default:
if err != nil {
closeAndExit(client, cancel, errors.New("failed to read from stdin"))
}
}
message = strings.TrimSuffix(message, "\n")
// Remove invalid code points.
message = validUTF8(message)

Loading…
Cancel
Save