diff options
author | sillyguodong <33891828+sillyguodong@users.noreply.github.com> | 2024-03-29 04:40:35 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-28 20:40:35 +0000 |
commit | 62b073e6f31645e446c7e8d6b5a506f61b47924e (patch) | |
tree | 9a82f10165ab8de01e1c6219e69762402a42c41d /modules/util | |
parent | 61036235966773a0af6b690b10b33ff8222df1d7 (diff) | |
download | gitea-62b073e6f31645e446c7e8d6b5a506f61b47924e.tar.gz gitea-62b073e6f31645e446c7e8d6b5a506f61b47924e.zip |
Add API for `Variables` (#29520)
close #27801
---------
Co-authored-by: silverwind <me@silverwind.io>
Diffstat (limited to 'modules/util')
-rw-r--r-- | modules/util/util.go | 9 | ||||
-rw-r--r-- | modules/util/util_test.go | 5 |
2 files changed, 14 insertions, 0 deletions
diff --git a/modules/util/util.go b/modules/util/util.go index c94fb91047..b6e730eb54 100644 --- a/modules/util/util.go +++ b/modules/util/util.go @@ -221,3 +221,12 @@ func IfZero[T comparable](v, def T) T { } return v } + +func ReserveLineBreakForTextarea(input string) string { + // Since the content is from a form which is a textarea, the line endings are \r\n. + // It's a standard behavior of HTML. + // But we want to store them as \n like what GitHub does. + // And users are unlikely to really need to keep the \r. + // Other than this, we should respect the original content, even leading or trailing spaces. + return strings.ReplaceAll(input, "\r\n", "\n") +} diff --git a/modules/util/util_test.go b/modules/util/util_test.go index 819e12ee91..5c5b13d04b 100644 --- a/modules/util/util_test.go +++ b/modules/util/util_test.go @@ -235,3 +235,8 @@ func TestToPointer(t *testing.T) { val123 := 123 assert.False(t, &val123 == ToPointer(val123)) } + +func TestReserveLineBreakForTextarea(t *testing.T) { + assert.Equal(t, ReserveLineBreakForTextarea("test\r\ndata"), "test\ndata") + assert.Equal(t, ReserveLineBreakForTextarea("test\r\ndata\r\n"), "test\ndata\n") +} |