From 3380041707b635a98c69ae120d4a291700b580a7 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Feb 2022 02:32:44 +0800 Subject: [PATCH 1/3] fix: `utils.Trim` should trim all string content --- utils/strings.go | 6 ++++++ utils/strings_test.go | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/utils/strings.go b/utils/strings.go index dcdd8da736..618bcfb741 100644 --- a/utils/strings.go +++ b/utils/strings.go @@ -49,6 +49,12 @@ func Trim(s string, cutset byte) string { } } + if i == j { + if s[i] == cutset { + return "" + } + } + return s[i : j+1] } diff --git a/utils/strings_test.go b/utils/strings_test.go index 2ebb32838b..2836c03fcf 100644 --- a/utils/strings_test.go +++ b/utils/strings_test.go @@ -126,6 +126,12 @@ func Test_Trim(t *testing.T) { res = Trim(".test", '.') AssertEqual(t, "test", res) + + res = Trim(" ", ' ') + AssertEqual(t, "", res) + + res = Trim(" ", ' ') + AssertEqual(t, "", res) } func Benchmark_Trim(b *testing.B) { From 0a8bfe9b0b9ae499bd9d1409ba41fdbf4d4bc785 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Feb 2022 02:39:55 +0800 Subject: [PATCH 2/3] add empty string input --- utils/strings_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/utils/strings_test.go b/utils/strings_test.go index 2836c03fcf..97002adfd0 100644 --- a/utils/strings_test.go +++ b/utils/strings_test.go @@ -132,6 +132,9 @@ func Test_Trim(t *testing.T) { res = Trim(" ", ' ') AssertEqual(t, "", res) + + res = Trim("", ' ') + AssertEqual(t, "", res) } func Benchmark_Trim(b *testing.B) { From ad6efae4936b6a9bc21c01b7a13a57bee3d13ea5 Mon Sep 17 00:00:00 2001 From: Trim21 Date: Mon, 14 Feb 2022 06:11:56 +0800 Subject: [PATCH 3/3] better fix --- utils/strings.go | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/utils/strings.go b/utils/strings.go index 618bcfb741..39cc48b0d7 100644 --- a/utils/strings.go +++ b/utils/strings.go @@ -43,18 +43,12 @@ func Trim(s string, cutset byte) string { break } } - for ; i < j; j-- { + for ; i <= j; j-- { if s[j] != cutset { break } } - if i == j { - if s[i] == cutset { - return "" - } - } - return s[i : j+1] }