aboutsummaryrefslogtreecommitdiff
path: root/http_handle_repo_commit.go
diff options
context:
space:
mode:
authorRunxi Yu <me@runxiyu.org>2025-02-14 13:31:17 +0800
committerRunxi Yu <me@runxiyu.org>2025-02-14 13:53:34 +0800
commitb072d8bc48e35dc814642ae0cee190db42fb56cf (patch)
tree5dc381baa29814072bc545765cbe73a293270ecc /http_handle_repo_commit.go
parent*: Make the forge title configurable (diff)
downloadforge-b072d8bc48e35dc814642ae0cee190db42fb56cf.tar.gz
forge-b072d8bc48e35dc814642ae0cee190db42fb56cf.tar.zst
forge-b072d8bc48e35dc814642ae0cee190db42fb56cf.zip
reop_commit: Fix immediate newlines after <pre>
Diffstat (limited to 'http_handle_repo_commit.go')
-rw-r--r--http_handle_repo_commit.go20
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,
}