summaryrefslogtreecommitdiffstats
path: root/routers/repo
diff options
context:
space:
mode:
Diffstat (limited to 'routers/repo')
-rw-r--r--routers/repo/middlewares.go11
-rw-r--r--routers/repo/pull.go13
2 files changed, 21 insertions, 3 deletions
diff --git a/routers/repo/middlewares.go b/routers/repo/middlewares.go
index 8afad5be64..4dee272edb 100644
--- a/routers/repo/middlewares.go
+++ b/routers/repo/middlewares.go
@@ -50,3 +50,14 @@ func SetDiffViewStyle(ctx *context.Context) {
ctx.ServerError("ErrUpdateDiffViewStyle", err)
}
}
+
+// SetWhitespaceBehavior set whitespace behavior as render variable
+func SetWhitespaceBehavior(ctx *context.Context) {
+ whitespaceBehavior := ctx.Query("whitespace")
+ switch whitespaceBehavior {
+ case "ignore-all", "ignore-eol", "ignore-change":
+ ctx.Data["WhitespaceBehavior"] = whitespaceBehavior
+ default:
+ ctx.Data["WhitespaceBehavior"] = ""
+ }
+}
diff --git a/routers/repo/pull.go b/routers/repo/pull.go
index 6a1aaf314d..57fe33f855 100644
--- a/routers/repo/pull.go
+++ b/routers/repo/pull.go
@@ -390,6 +390,12 @@ func ViewPullFiles(ctx *context.Context) {
}
pull := issue.PullRequest
+ whitespaceFlags := map[string]string{
+ "ignore-all": "-w",
+ "ignore-change": "-b",
+ "ignore-eol": "--ignore-space-at-eol",
+ "": ""}
+
var (
diffRepoPath string
startCommitID string
@@ -455,11 +461,12 @@ func ViewPullFiles(ctx *context.Context) {
ctx.Data["Reponame"] = pull.HeadRepo.Name
}
- diff, err := models.GetDiffRange(diffRepoPath,
+ diff, err := models.GetDiffRangeWithWhitespaceBehavior(diffRepoPath,
startCommitID, endCommitID, setting.Git.MaxGitDiffLines,
- setting.Git.MaxGitDiffLineCharacters, setting.Git.MaxGitDiffFiles)
+ setting.Git.MaxGitDiffLineCharacters, setting.Git.MaxGitDiffFiles,
+ whitespaceFlags[ctx.Data["WhitespaceBehavior"].(string)])
if err != nil {
- ctx.ServerError("GetDiffRange", err)
+ ctx.ServerError("GetDiffRangeWithWhitespaceBehavior", err)
return
}