forked from mirrors/gotosocial
2bbc64be43
* [feature] basic video support * fix missing semicolon * replace text shadow with stacked icons Co-authored-by: f0x <f0x@cthu.lu>
42 lines
820 B
Go
42 lines
820 B
Go
package util
|
|
|
|
import (
|
|
"strconv"
|
|
"strings"
|
|
"unicode"
|
|
)
|
|
|
|
func FormatSignedFixedFloat1616(val int32) string {
|
|
if val&0xffff == 0 {
|
|
return strconv.Itoa(int(val >> 16))
|
|
} else {
|
|
return strconv.FormatFloat(float64(val)/(1<<16), 'f', 5, 64)
|
|
}
|
|
}
|
|
|
|
func FormatUnsignedFixedFloat1616(val uint32) string {
|
|
if val&0xffff == 0 {
|
|
return strconv.Itoa(int(val >> 16))
|
|
} else {
|
|
return strconv.FormatFloat(float64(val)/(1<<16), 'f', 5, 64)
|
|
}
|
|
}
|
|
|
|
func FormatSignedFixedFloat88(val int16) string {
|
|
if val&0xff == 0 {
|
|
return strconv.Itoa(int(val >> 8))
|
|
} else {
|
|
return strconv.FormatFloat(float64(val)/(1<<8), 'f', 3, 32)
|
|
}
|
|
}
|
|
|
|
func EscapeUnprintable(r rune) rune {
|
|
if unicode.IsGraphic(r) {
|
|
return r
|
|
}
|
|
return rune('.')
|
|
}
|
|
|
|
func EscapeUnprintables(src string) string {
|
|
return strings.Map(EscapeUnprintable, src)
|
|
}
|