mirror of
https://github.com/cheat/cheat.git
synced 2026-03-07 11:13:33 +01:00
- Bump Go from 1.19 to 1.26 and update all dependencies - Rewrite CI workflow with matrix strategy (Linux, macOS, Windows) - Update GitHub Actions to current versions (checkout@v4, setup-go@v5) - Update CodeQL actions from v1 to v3 - Fix cross-platform bug in mock/path.go (path.Join -> filepath.Join) - Clean up dependabot config (weekly schedule, remove stale ignore) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
33 lines
700 B
Go
33 lines
700 B
Go
package diffmatchpatch
|
|
|
|
type index uint32
|
|
|
|
const runeSkipStart = 0xd800
|
|
const runeSkipEnd = 0xdfff + 1
|
|
const runeMax = 0x110000 // next invalid code point
|
|
|
|
func stringToIndex(text string) []index {
|
|
runes := []rune(text)
|
|
indexes := make([]index, len(runes))
|
|
for i, r := range runes {
|
|
if r < runeSkipEnd {
|
|
indexes[i] = index(r)
|
|
} else {
|
|
indexes[i] = index(r) - (runeSkipEnd - runeSkipStart)
|
|
}
|
|
}
|
|
return indexes
|
|
}
|
|
|
|
func indexesToString(indexes []index) string {
|
|
runes := make([]rune, len(indexes))
|
|
for i, index := range indexes {
|
|
if index < runeSkipStart {
|
|
runes[i] = rune(index)
|
|
} else {
|
|
runes[i] = rune(index + (runeSkipEnd - runeSkipStart))
|
|
}
|
|
}
|
|
return string(runes)
|
|
}
|