mirror of
https://github.com/golang/go
synced 2024-11-13 16:10:25 -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.
|
// UTF-8. It includes functions to translate between runes and UTF-8 byte sequences.
|
||||||
package utf8
|
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.
|
// Numbers fundamental to the encoding.
|
||||||
const (
|
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.
|
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.
|
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
|
return 2
|
||||||
}
|
}
|
||||||
|
|
||||||
if uint32(r) > unicode.MaxRune {
|
if uint32(r) > MaxRune {
|
||||||
r = RuneError
|
r = RuneError
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,9 +7,20 @@ package utf8_test
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"testing"
|
"testing"
|
||||||
|
"unicode"
|
||||||
. "unicode/utf8"
|
. "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 {
|
type Utf8Map struct {
|
||||||
r rune
|
r rune
|
||||||
str string
|
str string
|
||||||
|
Loading…
Reference in New Issue
Block a user