diff options
| author | Stefan Majewsky <majewsky@gmx.net> | 2026-06-09 21:09:39 +0200 |
|---|---|---|
| committer | Stefan Majewsky <majewsky@gmx.net> | 2026-06-09 21:09:39 +0200 |
| commit | 6903a774ecbbd05596adda5e2b5e18d58dd3a8f9 (patch) | |
| tree | f5d48f52f0da3da8d829436519bc66652bf41c64 /vendor/github.com/yuin/goldmark/util/util.go | |
| parent | e75d9e371269a4e46bffa6b3dd1fc7d040e82750 (diff) | |
| download | gofu-6903a774ecbbd05596adda5e2b5e18d58dd3a8f9.tar.gz | |
bump all dependencies to their latest versions
Diffstat (limited to 'vendor/github.com/yuin/goldmark/util/util.go')
| -rw-r--r-- | vendor/github.com/yuin/goldmark/util/util.go | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/vendor/github.com/yuin/goldmark/util/util.go b/vendor/github.com/yuin/goldmark/util/util.go index c074d72..68a84bf 100644 --- a/vendor/github.com/yuin/goldmark/util/util.go +++ b/vendor/github.com/yuin/goldmark/util/util.go @@ -6,6 +6,7 @@ import ( "io" "net/url" "regexp" + "slices" "sort" "strconv" "unicode" @@ -127,13 +128,13 @@ func IsBlank(bs []byte) bool { // VisualizeSpaces visualize invisible space characters. func VisualizeSpaces(bs []byte) []byte { - bs = bytes.Replace(bs, []byte(" "), []byte("[SPACE]"), -1) - bs = bytes.Replace(bs, []byte("\t"), []byte("[TAB]"), -1) - bs = bytes.Replace(bs, []byte("\n"), []byte("[NEWLINE]\n"), -1) - bs = bytes.Replace(bs, []byte("\r"), []byte("[CR]"), -1) - bs = bytes.Replace(bs, []byte("\v"), []byte("[VTAB]"), -1) - bs = bytes.Replace(bs, []byte("\x00"), []byte("[NUL]"), -1) - bs = bytes.Replace(bs, []byte("\ufffd"), []byte("[U+FFFD]"), -1) + bs = bytes.ReplaceAll(bs, []byte(" "), []byte("[SPACE]")) + bs = bytes.ReplaceAll(bs, []byte("\t"), []byte("[TAB]")) + bs = bytes.ReplaceAll(bs, []byte("\n"), []byte("[NEWLINE]\n")) + bs = bytes.ReplaceAll(bs, []byte("\r"), []byte("[CR]")) + bs = bytes.ReplaceAll(bs, []byte("\v"), []byte("[VTAB]")) + bs = bytes.ReplaceAll(bs, []byte("\x00"), []byte("[NUL]")) + bs = bytes.ReplaceAll(bs, []byte("\ufffd"), []byte("[U+FFFD]")) return bs } @@ -197,13 +198,15 @@ func DedentPosition(bs []byte, currentPos, width int) (pos, padding int) { w := 0 l := len(bs) i := 0 +loop: for ; i < l; i++ { - if bs[i] == '\t' { + switch bs[i] { + case '\t': w += TabWidth(currentPos + w) - } else if bs[i] == ' ' { + case ' ': w++ - } else { - break + default: + break loop } } if w >= width { @@ -225,13 +228,15 @@ func DedentPositionPadding(bs []byte, currentPos, paddingv, width int) (pos, pad w := 0 i := 0 l := len(bs) +loop: for ; i < l; i++ { - if bs[i] == '\t' { + switch bs[i] { + case '\t': w += TabWidth(currentPos + w) - } else if bs[i] == ' ' { + case ' ': w++ - } else { - break + default: + break loop } } if w >= width { @@ -242,17 +247,16 @@ func DedentPositionPadding(bs []byte, currentPos, paddingv, width int) (pos, pad // IndentWidth calculate an indent width for the given line. func IndentWidth(bs []byte, currentPos int) (width, pos int) { - l := len(bs) - for i := 0; i < l; i++ { - b := bs[i] - if b == ' ' { + for i := range len(bs) { + switch bs[i] { + case ' ': width++ pos++ - } else if b == '\t' { + case '\t': width += TabWidth(currentPos + width) pos++ - } else { - break + default: + return } } return @@ -315,12 +319,13 @@ func FindClosure(bs []byte, opener, closure byte, codeSpan, allowNesting bool) i } } } else if (codeSpan && codeSpanOpener == 0) || !codeSpan { - if c == closure { + switch c { + case closure: opened-- if opened == 0 { return i } - } else if c == opener { + case opener: if !allowNesting { return -1 } @@ -340,7 +345,7 @@ func TrimLeft(source, b []byte) []byte { for ; i < len(source); i++ { c := source[i] found := false - for j := 0; j < len(b); j++ { + for j := range len(b) { if c == b[j] { found = true break @@ -359,7 +364,7 @@ func TrimRight(source, b []byte) []byte { for ; i >= 0; i-- { c := source[i] found := false - for j := 0; j < len(b); j++ { + for j := range len(b) { if c == b[j] { found = true break @@ -532,8 +537,9 @@ var htmlQuote = []byte(""") var htmlAmp = []byte("&") var htmlLess = []byte("<") var htmlGreater = []byte(">") +var htmlNull = []byte("\ufffd") -var htmlEscapeTable = [256]*[]byte{nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, &htmlQuote, nil, nil, nil, &htmlAmp, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, &htmlLess, nil, &htmlGreater, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil} //nolint:golint,lll +var htmlEscapeTable = [256]*[]byte{&htmlNull, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, &htmlQuote, nil, nil, nil, &htmlAmp, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, &htmlLess, nil, &htmlGreater, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil} //nolint:golint,lll // EscapeHTMLByte returns HTML escaped bytes if the given byte should be escaped, // otherwise nil. @@ -549,7 +555,7 @@ func EscapeHTMLByte(b byte) []byte { func EscapeHTML(v []byte) []byte { cob := NewCopyOnWriteBuffer(v) n := 0 - for i := 0; i < len(v); i++ { + for i := range len(v) { c := v[i] escaped := htmlEscapeTable[c] if escaped != nil { @@ -865,7 +871,7 @@ type BufWriter interface { // A PrioritizedValue struct holds pair of an arbitrary value and a priority. type PrioritizedValue struct { // Value is an arbitrary value that you want to prioritize. - Value interface{} + Value any // Priority is a priority of the value. Priority int } @@ -881,7 +887,7 @@ func (s PrioritizedSlice) Sort() { } // Remove removes the given value from this slice. -func (s PrioritizedSlice) Remove(v interface{}) PrioritizedSlice { +func (s PrioritizedSlice) Remove(v any) PrioritizedSlice { i := 0 found := false for ; i < len(s); i++ { @@ -893,11 +899,11 @@ func (s PrioritizedSlice) Remove(v interface{}) PrioritizedSlice { if !found { return s } - return append(s[:i], s[i+1:]...) + return slices.Delete(s, i, i+1) } // Prioritized returns a new PrioritizedValue. -func Prioritized(v interface{}, priority int) PrioritizedValue { +func Prioritized(v any, priority int) PrioritizedValue { return PrioritizedValue{v, priority} } @@ -952,7 +958,7 @@ func NewBytesFilterString(elements string) BytesFilter { slots: make([][][]byte, 64), } start := 0 - for i := 0; i < len(elements); i++ { + for i := range len(elements) { if elements[i] == ',' { s.Add(StringToReadOnlyBytes(elements[start:i])) start = i + 1 @@ -967,11 +973,8 @@ func NewBytesFilterString(elements string) BytesFilter { func (s *bytesFilter) Add(b []byte) { l := len(b) - m := s.threshold - if l < s.threshold { - m = l - } - for i := 0; i < m; i++ { + m := min(l, s.threshold) + for i := range m { s.chars[b[i]] |= 1 << uint8(i) } h := bytesHash(b) % uint64(len(s.slots)) @@ -1007,7 +1010,7 @@ func (s *bytesFilter) ExtendString(elements string) BytesFilter { newFilter.slots[k] = v } start := 0 - for i := 0; i < len(elements); i++ { + for i := range len(elements) { if elements[i] == ',' { newFilter.Add(StringToReadOnlyBytes(elements[start:i])) start = i + 1 @@ -1021,11 +1024,8 @@ func (s *bytesFilter) ExtendString(elements string) BytesFilter { func (s *bytesFilter) Contains(b []byte) bool { l := len(b) - m := s.threshold - if l < s.threshold { - m = l - } - for i := 0; i < m; i++ { + m := min(l, s.threshold) + for i := range m { if (s.chars[b[i]] & (1 << uint8(i))) == 0 { return false } |
