All checks were successful
Test / Create distribution (push) Successful in 32s
Test / Sandbox (push) Successful in 1m52s
Test / Sandbox (race detector) (push) Successful in 3m14s
Test / Planterette (push) Successful in 3m36s
Test / Hakurei (race detector) (push) Successful in 4m31s
Test / Hakurei (push) Successful in 2m3s
Test / Flake checks (push) Successful in 1m13s
This allows slightly easier use of the vanity url. This also provides some disambiguation between low level containers and hakurei app containers. Signed-off-by: Ophestra <cat@gensokyo.uk>
31 lines
498 B
Go
31 lines
498 B
Go
package vfs
|
|
|
|
import "strings"
|
|
|
|
func Unmangle(s string) string {
|
|
if !strings.ContainsRune(s, '\\') {
|
|
return s
|
|
}
|
|
|
|
v := make([]byte, len(s))
|
|
var (
|
|
j int
|
|
c byte
|
|
)
|
|
for i := 0; i < len(s); i++ {
|
|
c = s[i]
|
|
if c == '\\' && len(s) > i+3 &&
|
|
(s[i+1] == '0' || s[i+1] == '1') &&
|
|
(s[i+2] >= '0' && s[i+2] <= '7') &&
|
|
(s[i+3] >= '0' && s[i+3] <= '7') {
|
|
c = ((s[i+1] - '0') << 6) |
|
|
((s[i+2] - '0') << 3) |
|
|
(s[i+3] - '0')
|
|
i += 3
|
|
}
|
|
v[j] = c
|
|
j++
|
|
}
|
|
return string(v[:j])
|
|
}
|