From 53bcf373c1d076dd14db6aff0247ae9dbdc49c77 Mon Sep 17 00:00:00 2001
From: Vladimir Vissoultchev <wqweto@gmail.com>
Date: Mon, 27 Jul 2015 21:58:51 +0300
Subject: [PATCH] Allow explicit charset/codepage setting for ANSI source files
 to alleviate issue #1088

---
 modules/base/template.go   | 3 +++
 modules/setting/setting.go | 2 ++
 2 files changed, 5 insertions(+)

diff --git a/modules/base/template.go b/modules/base/template.go
index 1442bf0e8..bc69bb3b3 100644
--- a/modules/base/template.go
+++ b/modules/base/template.go
@@ -55,6 +55,9 @@ func ShortSha(sha1 string) string {
 func DetectEncoding(content []byte) (string, error) {
 	detector := chardet.NewTextDetector()
 	result, err := detector.DetectBest(content)
+	if result.Charset == "ISO-8859-1" {
+		return setting.AnsiCharset, err
+	}
 	return result.Charset, err
 }
 
diff --git a/modules/setting/setting.go b/modules/setting/setting.go
index 2364c313a..896e60ad1 100644
--- a/modules/setting/setting.go
+++ b/modules/setting/setting.go
@@ -84,6 +84,7 @@ var (
 	// Repository settings.
 	RepoRootPath string
 	ScriptType   string
+	AnsiCharset  string
 
 	// UI settings.
 	IssuePagingNum int
@@ -312,6 +313,7 @@ func NewConfigContext() {
 		RepoRootPath = path.Clean(RepoRootPath)
 	}
 	ScriptType = sec.Key("SCRIPT_TYPE").MustString("bash")
+	AnsiCharset = sec.Key("ANSI_CHARSET").MustString("ISO-8859-1")
 
 	// UI settings.
 	IssuePagingNum = Cfg.Section("ui").Key("ISSUE_PAGING_NUM").MustInt(10)