diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c3ae24..77f8294 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ # Changelog ## Unreleased +## Changed +- Improve interactive mode. ## [v0.5.4] 2022-09-30 ### Changed diff --git a/main.go b/main.go index bcdba0e..a9a0ee4 100644 --- a/main.go +++ b/main.go @@ -420,10 +420,17 @@ func main() { } case *flagInteractive: // Send in endless loop (for usage with e.g. "tail -f"). + var reader = bufio.NewReader(os.Stdin) for { - scanner := bufio.NewScanner(os.Stdin) - scanner.Scan() - message = scanner.Text() + message, err = reader.ReadString('\n') + if err != nil { + log.Fatal("failed to read from stdin") + } + + // Remove invalid code points. + message = strings.ToValidUTF8(message, "") + reg := regexp.MustCompile(`[\x{0000}-\x{0008}\x{000B}\x{000C}\x{000E}-\x{001F}]`) + message = reg.ReplaceAllString(message, "") if message == "" { continue }