mirror of
https://github.com/go-gitea/gitea.git
synced 2025-07-15 00:01:25 -04:00
Compare commits
2 Commits
638fbd0b78
...
77c89572e9
Author | SHA1 | Date | |
---|---|---|---|
|
77c89572e9 | ||
|
68b908d92a |
@ -7,7 +7,6 @@ package charset
|
|||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"regexp"
|
"regexp"
|
||||||
"sort"
|
|
||||||
"strings"
|
"strings"
|
||||||
"unicode"
|
"unicode"
|
||||||
"unicode/utf8"
|
"unicode/utf8"
|
||||||
@ -21,12 +20,16 @@ import (
|
|||||||
var defaultWordRegexp = regexp.MustCompile(`(-?\d*\.\d\w*)|([^\` + "`" + `\~\!\@\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s\x00-\x1f]+)`)
|
var defaultWordRegexp = regexp.MustCompile(`(-?\d*\.\d\w*)|([^\` + "`" + `\~\!\@\#\$\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s\x00-\x1f]+)`)
|
||||||
|
|
||||||
func NewEscapeStreamer(locale translation.Locale, next HTMLStreamer, allowed ...rune) HTMLStreamer {
|
func NewEscapeStreamer(locale translation.Locale, next HTMLStreamer, allowed ...rune) HTMLStreamer {
|
||||||
|
allowedM := make(map[rune]bool, len(allowed))
|
||||||
|
for _, v := range allowed {
|
||||||
|
allowedM[v] = true
|
||||||
|
}
|
||||||
return &escapeStreamer{
|
return &escapeStreamer{
|
||||||
escaped: &EscapeStatus{},
|
escaped: &EscapeStatus{},
|
||||||
PassthroughHTMLStreamer: *NewPassthroughStreamer(next),
|
PassthroughHTMLStreamer: *NewPassthroughStreamer(next),
|
||||||
locale: locale,
|
locale: locale,
|
||||||
ambiguousTables: AmbiguousTablesForLocale(locale),
|
ambiguousTables: AmbiguousTablesForLocale(locale),
|
||||||
allowed: allowed,
|
allowed: allowedM,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -35,7 +38,7 @@ type escapeStreamer struct {
|
|||||||
escaped *EscapeStatus
|
escaped *EscapeStatus
|
||||||
locale translation.Locale
|
locale translation.Locale
|
||||||
ambiguousTables []*AmbiguousTable
|
ambiguousTables []*AmbiguousTable
|
||||||
allowed []rune
|
allowed map[rune]bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *escapeStreamer) EscapeStatus() *EscapeStatus {
|
func (e *escapeStreamer) EscapeStatus() *EscapeStatus {
|
||||||
@ -257,7 +260,7 @@ func (e *escapeStreamer) runeTypes(runes ...rune) (types []runeType, confusables
|
|||||||
runeCounts.numBrokenRunes++
|
runeCounts.numBrokenRunes++
|
||||||
case r == ' ' || r == '\t' || r == '\n':
|
case r == ' ' || r == '\t' || r == '\n':
|
||||||
runeCounts.numBasicRunes++
|
runeCounts.numBasicRunes++
|
||||||
case e.isAllowed(r):
|
case e.allowed[r]:
|
||||||
if r > 0x7e || r < 0x20 {
|
if r > 0x7e || r < 0x20 {
|
||||||
types[i] = nonBasicASCIIRuneType
|
types[i] = nonBasicASCIIRuneType
|
||||||
runeCounts.numNonConfusingNonBasicRunes++
|
runeCounts.numNonConfusingNonBasicRunes++
|
||||||
@ -283,16 +286,3 @@ func (e *escapeStreamer) runeTypes(runes ...rune) (types []runeType, confusables
|
|||||||
}
|
}
|
||||||
return types, confusables, runeCounts
|
return types, confusables, runeCounts
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *escapeStreamer) isAllowed(r rune) bool {
|
|
||||||
if len(e.allowed) == 0 {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
if len(e.allowed) == 1 {
|
|
||||||
return e.allowed[0] == r
|
|
||||||
}
|
|
||||||
|
|
||||||
return sort.Search(len(e.allowed), func(i int) bool {
|
|
||||||
return e.allowed[i] >= r
|
|
||||||
}) >= 0
|
|
||||||
}
|
|
||||||
|
@ -99,6 +99,9 @@ func GetDefaultMergeMessage(baseGitRepo *git.Repository, pr *issues_model.PullRe
|
|||||||
}
|
}
|
||||||
for _, ref := range refs {
|
for _, ref := range refs {
|
||||||
if ref.RefAction == references.XRefActionCloses {
|
if ref.RefAction == references.XRefActionCloses {
|
||||||
|
if err := ref.LoadIssue(); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
closeIssueIndexes = append(closeIssueIndexes, fmt.Sprintf("%s %s%d", closeWord, issueReference, ref.Issue.Index))
|
closeIssueIndexes = append(closeIssueIndexes, fmt.Sprintf("%s %s%d", closeWord, issueReference, ref.Issue.Index))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user