diff options
-rw-r--r-- | .gopmfile | 1 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | gogs.go | 2 | ||||
-rw-r--r-- | models/git_diff.go | 4 | ||||
-rw-r--r-- | modules/base/tool.go | 20 | ||||
-rw-r--r-- | modules/template/template.go | 6 | ||||
-rw-r--r-- | templates/.VERSION | 2 | ||||
-rw-r--r-- | templates/base/footer.tmpl | 2 |
8 files changed, 22 insertions, 17 deletions
@@ -16,6 +16,7 @@ github.com/go-macaron/toolbox = commit:ab30a81 github.com/go-sql-driver/mysql = commit:d512f20 github.com/go-xorm/core = commit:acb6f00 github.com/go-xorm/xorm = commit:a8fba4d +github.com/gogits/chardet = commit:2404f77725 github.com/gogits/git-module = commit:5cd57b9 github.com/gogits/go-gogs-client = commit:78460e9 github.com/issue9/identicon = commit:f8c0d2c @@ -3,7 +3,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra ![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true) -##### Current version: 0.8.14 +##### Current version: 0.8.15 | Web | UI | Preview | |:-------------:|:-------:|:-------:| @@ -17,7 +17,7 @@ import ( "github.com/gogits/gogs/modules/setting" ) -const APP_VER = "0.8.14.1230" +const APP_VER = "0.8.15.1231" func init() { runtime.GOMAXPROCS(runtime.NumCPU()) diff --git a/models/git_diff.go b/models/git_diff.go index 1b2fb5f2b1..22075ef76b 100644 --- a/models/git_diff.go +++ b/models/git_diff.go @@ -246,8 +246,8 @@ func ParsePatch(maxlines int, reader io.Reader) (*Diff, error) { buf.WriteString("\n") } } - charsetLabel := base.DetectEncoding(buf.Bytes()) - if charsetLabel != "UTF-8" { + charsetLabel, err := base.DetectEncoding(buf.Bytes()) + if charsetLabel != "UTF-8" && err == nil { encoding, _ := charset.Lookup(charsetLabel) if encoding != nil { d := encoding.NewDecoder() diff --git a/modules/base/tool.go b/modules/base/tool.go index 5927dad01c..255c34ef5a 100644 --- a/modules/base/tool.go +++ b/modules/base/tool.go @@ -23,7 +23,8 @@ import ( "github.com/Unknwon/com" "github.com/Unknwon/i18n" "github.com/microcosm-cc/bluemonday" - "golang.org/x/net/html/charset" + + "github.com/gogits/chardet" "github.com/gogits/gogs/modules/avatar" "github.com/gogits/gogs/modules/log" @@ -53,19 +54,20 @@ func ShortSha(sha1 string) string { return sha1 } -func DetectEncoding(content []byte) string { - if utf8.Valid(content[:1024]) { +func DetectEncoding(content []byte) (string, error) { + if utf8.Valid(content) { log.Debug("Detected encoding: utf-8 (fast)") - return "utf-8" + return "UTF-8", nil } - _, name, certain := charset.DetermineEncoding(content, "") - if name != "utf-8" && len(setting.Repository.AnsiCharset) > 0 { + result, err := chardet.NewTextDetector().DetectBest(content) + if result.Charset != "UTF-8" && len(setting.Repository.AnsiCharset) > 0 { log.Debug("Using default AnsiCharset: %s", setting.Repository.AnsiCharset) - return setting.Repository.AnsiCharset + return setting.Repository.AnsiCharset, err } - log.Debug("Detected encoding: %s (%v)", name, certain) - return name + + log.Debug("Detected encoding: %s", result.Charset) + return result.Charset, err } func BasicAuthDecode(encoded string) (string, string, error) { diff --git a/modules/template/template.go b/modules/template/template.go index 6c070b7009..6099fcc987 100644 --- a/modules/template/template.go +++ b/modules/template/template.go @@ -130,8 +130,10 @@ func Sha1(str string) string { } func ToUtf8WithErr(content []byte) (error, string) { - charsetLabel := base.DetectEncoding(content) - if charsetLabel == "utf-8" { + charsetLabel, err := base.DetectEncoding(content) + if err != nil { + return err, "" + } else if charsetLabel == "UTF-8" { return nil, string(content) } diff --git a/templates/.VERSION b/templates/.VERSION index b5c863bb9d..cfcdb254d1 100644 --- a/templates/.VERSION +++ b/templates/.VERSION @@ -1 +1 @@ -0.8.14.1230
\ No newline at end of file +0.8.15.1231
\ No newline at end of file diff --git a/templates/base/footer.tmpl b/templates/base/footer.tmpl index 9bbaf7c7a9..5f2e8da03f 100644 --- a/templates/base/footer.tmpl +++ b/templates/base/footer.tmpl @@ -7,7 +7,7 @@ <footer> <div class="ui container"> <div class="ui left"> - © 2015 Gogs {{if (or .ShowFooterVersion .PageIsAdmin)}}{{.i18n.Tr "version"}}: {{AppVer}}{{end}} {{.i18n.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong> {{.i18n.Tr "template"}}: <strong>{{call .TmplLoadTimes}}</strong> + © 2016 Gogs {{if (or .ShowFooterVersion .PageIsAdmin)}}{{.i18n.Tr "version"}}: {{AppVer}}{{end}} {{.i18n.Tr "page"}}: <strong>{{LoadTimes .PageStartTime}}</strong> {{.i18n.Tr "template"}}: <strong>{{call .TmplLoadTimes}}</strong> </div> <div class="ui right links"> {{if .ShowFooterBranding}} |