// Copyright 2020 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package git import ( "strings" "unicode" ) const ( fileSizeLimit int64 = 16 * 1024 // 16 KiB bigFileSize int64 = 1024 * 1024 // 1 MiB ) // mergeLanguageStats mergers language names with different cases. The name with most upper case letters is used. func mergeLanguageStats(stats map[string]int64) map[string]int64 { names := map[string]struct { uniqueName string upperCount int }{} countUpper := func(s string) (count int) { for _, r := range s { if unicode.IsUpper(r) { count++ } } return count } for name := range stats { cnt := countUpper(name) lower := strings.ToLower(name) if cnt >= names[lower].upperCount { names[lower] = struct { uniqueName string upperCount int }{uniqueName: name, upperCount: cnt} } } res := make(map[string]int64, len(names)) for name, num := range stats { res[names[strings.ToLower(name)].uniqueName] += num } return res }