diff options
author | Runxi Yu <me@runxiyu.org> | 2025-02-14 13:31:17 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-02-14 13:53:34 +0800 |
commit | b072d8bc48e35dc814642ae0cee190db42fb56cf (patch) | |
tree | 5dc381baa29814072bc545765cbe73a293270ecc /http_handle_repo_commit.go | |
parent | *: Make the forge title configurable (diff) | |
download | forge-b072d8bc48e35dc814642ae0cee190db42fb56cf.tar.gz forge-b072d8bc48e35dc814642ae0cee190db42fb56cf.tar.zst forge-b072d8bc48e35dc814642ae0cee190db42fb56cf.zip |
reop_commit: Fix immediate newlines after <pre>
Diffstat (limited to '')
-rw-r--r-- | http_handle_repo_commit.go | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/http_handle_repo_commit.go b/http_handle_repo_commit.go index d4956d1..8e5cdbf 100644 --- a/http_handle_repo_commit.go +++ b/http_handle_repo_commit.go @@ -14,7 +14,12 @@ import ( type usable_file_patch struct { From diff.File To diff.File - Chunks []diff.Chunk + Chunks []usable_chunk +} + +type usable_chunk struct { + Operation diff.Operation + Content string } func handle_repo_commit(w http.ResponseWriter, r *http.Request, params map[string]any) { @@ -70,8 +75,19 @@ func handle_repo_commit(w http.ResponseWriter, r *http.Request, params map[strin if to == nil { to = fake_diff_file_null } + chunks := []usable_chunk{} + for _, chunk := range file_patch.Chunks() { + content := chunk.Content() + if len(content) > 0 && content[0] == '\n' { + content = "\n" + content + } // Horrible hack to fix how browsers newlines that immediately proceed <pre> + chunks = append(chunks, usable_chunk{ + Operation: chunk.Type(), + Content: content, + }) + } usable_file_patch := usable_file_patch{ - Chunks: file_patch.Chunks(), + Chunks: chunks, From: from, To: to, } |