diff options
| author | 2025-04-22 12:32:39 +0200 | |
|---|---|---|
| committer | 2025-04-22 12:32:39 +0200 | |
| commit | f170bbcd49411f9828b0ee55b16da9a1b698a2c2 (patch) | |
| tree | 45e164846126bb8697892b918a75af05a65272e6 /vendor/github.com/yuin/goldmark/util/util.go | |
| parent | [chore/frontend] Reorder JS a little bit to avoid visible text changes (#4039) (diff) | |
| download | gotosocial-f170bbcd49411f9828b0ee55b16da9a1b698a2c2.tar.xz | |
[chore]: Bump github.com/yuin/goldmark from 1.7.8 to 1.7.10 (#4037)
Bumps [github.com/yuin/goldmark](https://github.com/yuin/goldmark) from 1.7.8 to 1.7.10.
- [Release notes](https://github.com/yuin/goldmark/releases)
- [Commits](https://github.com/yuin/goldmark/compare/v1.7.8...v1.7.10)
---
updated-dependencies:
- dependency-name: github.com/yuin/goldmark
dependency-version: 1.7.10
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/yuin/goldmark/util/util.go')
| -rw-r--r-- | vendor/github.com/yuin/goldmark/util/util.go | 62 |
1 files changed, 59 insertions, 3 deletions
diff --git a/vendor/github.com/yuin/goldmark/util/util.go b/vendor/github.com/yuin/goldmark/util/util.go index aa9863fdf..c074d725c 100644 --- a/vendor/github.com/yuin/goldmark/util/util.go +++ b/vendor/github.com/yuin/goldmark/util/util.go @@ -528,12 +528,21 @@ func ToLinkReference(v []byte) string { return string(ReplaceSpaces(v, ' ')) } -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, []byte("""), nil, nil, nil, []byte("&"), nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, []byte("<"), nil, []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, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 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 htmlQuote = []byte(""") +var htmlAmp = []byte("&") +var htmlLess = []byte("<") +var htmlGreater = []byte(">") + +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 // EscapeHTMLByte returns HTML escaped bytes if the given byte should be escaped, // otherwise nil. func EscapeHTMLByte(b byte) []byte { - return htmlEscapeTable[b] + v := htmlEscapeTable[b] + if v != nil { + return *v + } + return nil } // EscapeHTML escapes characters that should be escaped in HTML text. @@ -545,7 +554,7 @@ func EscapeHTML(v []byte) []byte { escaped := htmlEscapeTable[c] if escaped != nil { cob.Write(v[n:i]) - cob.Write(escaped) + cob.Write(*escaped) n = i + 1 } } @@ -911,6 +920,10 @@ type BytesFilter interface { // Extend copies this filter and adds given bytes to new filter. Extend(...[]byte) BytesFilter + + // ExtendString copies this filter and adds given bytes to new filter. + // Given string must be separated by a comma. + ExtendString(string) BytesFilter } type bytesFilter struct { @@ -931,6 +944,27 @@ func NewBytesFilter(elements ...[]byte) BytesFilter { return s } +// NewBytesFilterString returns a new BytesFilter. +// Given string must be separated by a comma. +func NewBytesFilterString(elements string) BytesFilter { + s := &bytesFilter{ + threshold: 3, + slots: make([][][]byte, 64), + } + start := 0 + for i := 0; i < len(elements); i++ { + if elements[i] == ',' { + s.Add(StringToReadOnlyBytes(elements[start:i])) + start = i + 1 + } + } + if start < len(elements) { + s.Add(StringToReadOnlyBytes(elements[start:])) + } + return s + +} + func (s *bytesFilter) Add(b []byte) { l := len(b) m := s.threshold @@ -963,6 +997,28 @@ func (s *bytesFilter) Extend(bs ...[]byte) BytesFilter { return newFilter } +func (s *bytesFilter) ExtendString(elements string) BytesFilter { + newFilter := NewBytesFilter().(*bytesFilter) + newFilter.chars = s.chars + newFilter.threshold = s.threshold + for k, v := range s.slots { + newSlot := make([][]byte, len(v)) + copy(newSlot, v) + newFilter.slots[k] = v + } + start := 0 + for i := 0; i < len(elements); i++ { + if elements[i] == ',' { + newFilter.Add(StringToReadOnlyBytes(elements[start:i])) + start = i + 1 + } + } + if start < len(elements) { + newFilter.Add(StringToReadOnlyBytes(elements[start:])) + } + return newFilter +} + func (s *bytesFilter) Contains(b []byte) bool { l := len(b) m := s.threshold |
