mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-01-13 15:59:33 -05:00
b272224918
Backport #28935 by @silverwind
The `ToUTF8*` functions were stripping BOM, while BOM is actually valid
in UTF8, so the stripping must be optional depending on use case. This
does:
- Add a options struct to all `ToUTF8*` functions, that by default will
strip BOM to preserve existing behaviour
- Remove `ToUTF8` function, it was dead code
- Rename `ToUTF8WithErr` to `ToUTF8`
- Preserve BOM in Monaco Editor
- Remove a unnecessary newline in the textarea value. Browsers did
ignore it, it seems but it's better not to rely on this behaviour.
Fixes: https://github.com/go-gitea/gitea/issues/28743
Related: https://github.com/go-gitea/gitea/issues/6716 which seems to
have once introduced a mechanism that strips and re-adds the BOM, but
from what I can tell, this mechanism was removed at some point after
that PR.
Co-authored-by: silverwind <me@silverwind.io>
(cherry picked from commit
|
||
---|---|---|
.. | ||
actions | ||
setting | ||
activity.go | ||
attachment.go | ||
blame.go | ||
branch.go | ||
cherry_pick.go | ||
commit.go | ||
compare.go | ||
download.go | ||
editor.go | ||
editor_test.go | ||
find.go | ||
githttp.go | ||
githttp_test.go | ||
helper.go | ||
helper_test.go | ||
issue.go | ||
issue_content_history.go | ||
issue_dependency.go | ||
issue_label.go | ||
issue_label_test.go | ||
issue_lock.go | ||
issue_pin.go | ||
issue_stopwatch.go | ||
issue_test.go | ||
issue_timetrack.go | ||
issue_watch.go | ||
main_test.go | ||
middlewares.go | ||
migrate.go | ||
milestone.go | ||
packages.go | ||
patch.go | ||
projects.go | ||
projects_test.go | ||
pull.go | ||
pull_review.go | ||
release.go | ||
release_test.go | ||
render.go | ||
repo.go | ||
search.go | ||
topic.go | ||
treelist.go | ||
view.go | ||
view_test.go | ||
wiki.go | ||
wiki_test.go |