[chore] update dependencies (#4188)

Update dependencies:
- github.com/gin-gonic/gin v1.10.0 -> v1.10.1
- github.com/gin-contrib/sessions v1.10.3 -> v1.10.4
- github.com/jackc/pgx/v5 v5.7.4 -> v5.7.5
- github.com/minio/minio-go/v7 v7.0.91 -> v7.0.92
- github.com/pquerna/otp v1.4.0 -> v1.5.0
- github.com/tdewolff/minify/v2 v2.23.5 -> v2.23.8
- github.com/yuin/goldmark v1.7.11 -> v1.7.12
- go.opentelemetry.io/otel{,/*} v1.35.0 -> v1.36.0
- modernc.org/sqlite v1.37.0 -> v1.37.1

Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4188
Reviewed-by: Daenney <daenney@noreply.codeberg.org>
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
This commit is contained in:
kim 2025-05-22 16:27:55 +02:00 committed by kim
commit b6ff55662e
214 changed files with 44839 additions and 32023 deletions

View file

@ -544,3 +544,27 @@ func DecodeURL(b []byte) []byte {
}
return b
}
func AppendEscape(b, str, chars []byte, escape byte) []byte {
i := 0
for j := 0; j < len(str); j++ {
has := false
for _, c := range chars {
if c == str[j] {
has = true
break
}
}
if has || str[j] == escape {
if i < j {
b = append(b, str[i:j]...)
}
b = append(b, escape)
i = j
}
}
if i < len(str) {
b = append(b, str[i:]...)
}
return b
}

View file

@ -69,3 +69,81 @@ func ParseDecimal(b []byte) (float64, int) {
}
return f * math.Pow10(exp), i
}
// AppendDecimal appends a float to `b` with `dec` the maximum number of decimals.
func AppendDecimal(b []byte, f float64, dec int) []byte {
if math.IsNaN(float64(f)) || math.IsInf(float64(f), 0) {
return b
}
if dec < 0 || 17 < dec {
dec = 17
}
f *= math.Pow10(dec)
// correct rounding
if 0.0 <= f {
f += 0.5
} else {
f -= 0.5
}
// calculate mantissa and exponent
num := int64(f)
if num == 0 {
return append(b, '0')
}
for 0 < dec && num%10 == 0 {
num /= 10
dec-- // remove trailing zeros
}
i, n := len(b), LenInt(num)
if 0 < dec {
if n < dec {
n = dec // number has zero after dot
}
n++ // dot
if lim := int64pow10[dec]; 0 < num && num < lim || num < 0 && -lim < num {
n++ // zero at beginning
}
}
if cap(b) < i+n {
b = append(b, make([]byte, n)...)
} else {
b = b[:i+n]
}
// print sign
if num < 0 {
num = -num
b[i] = '-'
}
i += n - 1
// print number
if 0 < dec {
b[i] = byte(num%10) + '0'
num /= 10
dec--
i--
for 0 < dec {
b[i] = byte(num%10) + '0'
num /= 10
dec--
i--
}
b[i] = '.'
i--
}
if num == 0 {
b[i] = '0'
} else {
for num != 0 {
b[i] = byte(num%10) + '0'
num /= 10
i--
}
}
return b
}

View file

@ -145,7 +145,7 @@ func AppendFloat(b []byte, f float64, prec int) ([]byte, bool) {
expLen = 1 + LenInt(int64(exp)) // e + digits
} else if mantExp < -3 {
exp = mantExp
expLen = 2 + LenInt(int64(exp)) // e + minus + digits
expLen = 1 + LenInt(int64(exp)) // e + minus + digits
} else if mantExp < -1 {
mantLen += -mantExp - 1 // extra zero between dot and first digit
}

View file

@ -60,13 +60,45 @@ func ParseUint(b []byte) (uint64, int) {
return n, i
}
// AppendInt will append an int64.
func AppendInt(b []byte, num int64) []byte {
if num == 0 {
return append(b, '0')
} else if num == -9223372036854775808 {
return append(b, "-9223372036854775808"...)
}
// resize byte slice
i, n := len(b), LenInt(num)
if cap(b) < i+n {
b = append(b, make([]byte, n)...)
} else {
b = b[:i+n]
}
// print sign
if num < 0 {
num = -num
b[i] = '-'
}
i += n - 1
// print number
for num != 0 {
b[i] = byte(num%10) + '0'
num /= 10
i--
}
return b
}
// LenInt returns the written length of an integer.
func LenInt(i int64) int {
if i < 0 {
if i == -9223372036854775808 {
return 19
return 20
}
i = -i
return 1 + LenUint(uint64(-i))
}
return LenUint(uint64(i))
}
@ -114,3 +146,7 @@ func LenUint(i uint64) int {
}
return 20
}
var int64pow10 = []int64{
1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000, 10000000000, 100000000000, 1000000000000, 10000000000000, 100000000000000, 1000000000000000, 10000000000000000, 100000000000000000, 1000000000000000000,
}

View file

@ -61,6 +61,9 @@ func AppendNumber(b []byte, num int64, dec int, groupSize int, groupSym rune, de
// calculate size
n := LenInt(num)
if sign == -1 {
n-- // ignore minux sign, add later
}
if dec < n && 0 < groupSize && groupSym != 0 {
n += utf8.RuneLen(groupSym) * (n - dec - 1) / groupSize
}