Files
kyle 9444a35322 p1: /v2/scrape, /v1/fetch, auth, CLI, contract tests
Single Fetcher.Fetch on the Guard that holds DenyPrefixes. skipTlsVerification
is ignored. No 502. keys add writes the secret only to --out. Release binary
has no -test-allow-prefix.
2026-09-22 21:54:01 -07:00

80 lines
2.1 KiB
Go

package collapse
import (
"unsafe"
)
func byteSliceToString(b []byte) string {
/* #nosec G103 */
return *(*string)(unsafe.Pointer(&b))
}
func replaceAnyWhitespaceWithSpace(source string) string {
if source == "" {
return source
}
// Some performance optimizations:
// - If no replacement was done, we return the original slice and dont allocate.
// - We batch appends
var ret []byte
makeIfNeeded := func() {
if ret == nil {
ret = make([]byte, 0, len(source))
}
}
startNormal := 0
startMatch := -1
for i := 0; i < len(source); i++ {
isWhitespace := source[i] == ' ' || source[i] == '\r' || source[i] == '\n' || source[i] == '\t'
if startMatch == -1 && isWhitespace {
// Start of newlines
startMatch = i
continue
} else if startMatch != -1 && isWhitespace {
// Middle of newlines
continue
} else if startMatch != -1 {
// Character after the last newline character
count := i - startMatch
if count == 1 && source[startMatch] == ' ' {
// There was only one `isWhitespace` match & that is a space.
// So the replacement would be exactly the same...
} else {
makeIfNeeded()
ret = append(ret, source[startNormal:startMatch]...)
ret = append(ret, byte(' '))
startNormal = i
}
startMatch = -1
}
}
if startMatch == -1 && startNormal == 0 {
// a) no changes need to be done
} else if startMatch == -1 {
// b) Only the normal characters until the end still need to be added
makeIfNeeded()
ret = append(ret, source[startNormal:]...)
} else if ret == nil && len(source)-startMatch == 1 && source[startMatch] == ' ' {
// c) There is a match, but it is exactly the same as the replacement
// If there is no new slice, we can skip the replacement.
} else {
// d) The match still needs to be replaced (and possible the previous normal characters be added)
makeIfNeeded()
ret = append(ret, source[startNormal:startMatch]...)
ret = append(ret, byte(' '))
}
if ret == nil {
// Huray, we did not do any allocations with make()
// and instead just return the original slice.
return source
}
return byteSliceToString(ret)
}