mirror of
https://github.com/golang/go
synced 2024-11-12 01:10:21 -07:00
unicode/utf8: remove dependence on unicode.
The dependency was there only to pull in two constants. Now we define them locally and verify equality in the test. R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/5754046
This commit is contained in:
parent
46031400d0
commit
d9832987ba
@ -6,12 +6,15 @@
|
||||
// UTF-8. It includes functions to translate between runes and UTF-8 byte sequences.
|
||||
package utf8
|
||||
|
||||
import "unicode" // only needed for a couple of constants
|
||||
// The conditions RuneError==unicode.ReplacementChar and
|
||||
// MaxRune==unicode.MaxRune are verified in the tests.
|
||||
// Defining them locally avoids this package depending on package unicode.
|
||||
|
||||
// Numbers fundamental to the encoding.
|
||||
const (
|
||||
RuneError = unicode.ReplacementChar // the "error" Rune or "replacement character".
|
||||
RuneError = '\uFFFD' // the "error" Rune or "Unicode replacement character"
|
||||
RuneSelf = 0x80 // characters below Runeself are represented as themselves in a single byte.
|
||||
MaxRune = '\U0010FFFF' // Maximum valid Unicode code point.
|
||||
UTFMax = 4 // maximum number of bytes of a UTF-8 encoded Unicode character.
|
||||
)
|
||||
|
||||
@ -309,7 +312,7 @@ func EncodeRune(p []byte, r rune) int {
|
||||
return 2
|
||||
}
|
||||
|
||||
if uint32(r) > unicode.MaxRune {
|
||||
if uint32(r) > MaxRune {
|
||||
r = RuneError
|
||||
}
|
||||
|
||||
|
@ -7,9 +7,20 @@ package utf8_test
|
||||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
"unicode"
|
||||
. "unicode/utf8"
|
||||
)
|
||||
|
||||
// Validate the constants redefined from unicode.
|
||||
func init() {
|
||||
if MaxRune != unicode.MaxRune {
|
||||
panic("utf8.MaxRune is wrong")
|
||||
}
|
||||
if RuneError != unicode.ReplacementChar {
|
||||
panic("utf8.RuneError is wrong")
|
||||
}
|
||||
}
|
||||
|
||||
type Utf8Map struct {
|
||||
r rune
|
||||
str string
|
||||
|
Loading…
Reference in New Issue
Block a user