@@ -209,7 +209,7 @@ func runServ(c *cli.Context) { | |||
} | |||
// Check if this deploy key belongs to current repository. | |||
if !models.HasDeployKey(key.ID, repo.ID) { | |||
fail("Key access denied", "Key access denied: %d-%d", key.ID, repo.ID) | |||
fail("Key access denied", "Key access denied: [key_id: %d, repo_id: %d]", key.ID, repo.ID) | |||
} | |||
// Update deploy key activity. |
@@ -17,7 +17,7 @@ import ( | |||
"github.com/gogits/gogs/modules/setting" | |||
) | |||
const APP_VER = "0.8.13.1224" | |||
const APP_VER = "0.8.13.1225" | |||
func init() { | |||
runtime.GOMAXPROCS(runtime.NumCPU()) |
@@ -25,6 +25,7 @@ import ( | |||
"golang.org/x/net/html/charset" | |||
"github.com/gogits/gogs/modules/avatar" | |||
"github.com/gogits/gogs/modules/log" | |||
"github.com/gogits/gogs/modules/setting" | |||
) | |||
@@ -52,7 +53,8 @@ func ShortSha(sha1 string) string { | |||
} | |||
func DetectEncoding(content []byte) string { | |||
_, name, _ := charset.DetermineEncoding(content, setting.Repository.AnsiCharset) | |||
_, name, certain := charset.DetermineEncoding(content, setting.Repository.AnsiCharset) | |||
log.Debug("Detected encoding: %s (%v)", name, certain) | |||
return name | |||
} | |||
@@ -12,6 +12,7 @@ import ( | |||
"runtime" | |||
"strings" | |||
"time" | |||
"unicode/utf8" | |||
"golang.org/x/net/html/charset" | |||
"golang.org/x/text/transform" | |||
@@ -130,20 +131,19 @@ func Sha1(str string) string { | |||
} | |||
func ToUtf8WithErr(content []byte) (error, string) { | |||
charsetLabel := base.DetectEncoding(content) | |||
if charsetLabel == "UTF-8" { | |||
if utf8.Valid(content[:1024]) { | |||
return nil, string(content) | |||
} | |||
charsetLabel := base.DetectEncoding(content) | |||
encoding, _ := charset.Lookup(charsetLabel) | |||
if encoding == nil { | |||
return fmt.Errorf("unknown char decoder %s", charsetLabel), string(content) | |||
return fmt.Errorf("Unknown encoding: %s", charsetLabel), string(content) | |||
} | |||
result, n, err := transform.String(encoding.NewDecoder(), string(content)) | |||
// If there is an error, we concatenate the nicely decoded part and the | |||
// original left over. This way we won't loose data. | |||
result, n, err := transform.String(encoding.NewDecoder(), string(content)) | |||
if err != nil { | |||
result = result + string(content[n:]) | |||
} |
@@ -6,6 +6,7 @@ package user | |||
import ( | |||
"fmt" | |||
"path" | |||
"strings" | |||
"github.com/gogits/gogs/models" | |||
@@ -38,7 +39,7 @@ func Profile(ctx *middleware.Context) { | |||
uname := ctx.Params(":username") | |||
// Special handle for FireFox requests favicon.ico. | |||
if uname == "favicon.ico" { | |||
ctx.Redirect(setting.AppSubUrl + "/img/favicon.png") | |||
ctx.ServeFile(path.Join(setting.StaticRootPath, "public/img/favicon.png")) | |||
return | |||
} else if strings.HasSuffix(uname, ".png") { | |||
ctx.Error(404) |
@@ -1 +1 @@ | |||
0.8.13.1224 | |||
0.8.13.1225 |