From caf622f43f10cf58074dfaaba99947f10e6c6d83 Mon Sep 17 00:00:00 2001 From: Arpad Ryszka Date: Sun, 2 Nov 2025 01:23:00 +0100 Subject: [PATCH] fix single line release state --- singleline.go | 11 ++++++++++- singleline_test.go | 10 ++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/singleline.go b/singleline.go index 34f5747..b3655b0 100644 --- a/singleline.go +++ b/singleline.go @@ -28,7 +28,16 @@ func singleLineEdit(r rune, s singleLineState) ([]rune, singleLineState) { } func singleLineReleaseState(s singleLineState) []rune { - return s.currentWord + if len(s.currentWord) == 0 { + return nil + } + + var ret []rune + if s.started { + ret = append(ret, ' ') + } + + return append(ret, s.currentWord...) } func singleLine() Editor { diff --git a/singleline_test.go b/singleline_test.go index 04fb9b4..632e3b7 100644 --- a/singleline_test.go +++ b/singleline_test.go @@ -16,4 +16,14 @@ func TestSingleLine(t *testing.T) { t.Fatal(b.String()) } }) + + t.Run("two lines", func(t *testing.T) { + var b bytes.Buffer + w := textedit.New(&b, textedit.SingleLine()) + w.Write([]byte("Some sample text...\nwith invalid chars.")) + w.Flush() + if b.String() != "Some sample text... with invalid chars." { + t.Fatal(b.String()) + } + }) }