123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- // 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
- }
|