mirror of
https://github.com/golang/go
synced 2024-11-21 21:34:40 -07:00
net: move internal string manipulation routines to parse.go
R=rsc CC=golang-dev https://golang.org/cl/4968044
This commit is contained in:
parent
78963f4f1d
commit
825f8c147a
@ -83,18 +83,6 @@ error:
|
||||
return nil, os.NewError("invalid MAC address: " + s)
|
||||
}
|
||||
|
||||
// xtoi2 converts the next two hex digits of s into a byte.
|
||||
// If s is longer than 2 bytes then the third byte must be e.
|
||||
// If the first two bytes of s are not hex digits or the third byte
|
||||
// does not match e, false is returned.
|
||||
func xtoi2(s string, e byte) (byte, bool) {
|
||||
if len(s) > 2 && s[2] != e {
|
||||
return 0, false
|
||||
}
|
||||
n, ei, ok := xtoi(s[:2], 0)
|
||||
return byte(n), ok && ei == 2
|
||||
}
|
||||
|
||||
// Interface represents a mapping between network interface name
|
||||
// and index. It also represents network interface facility
|
||||
// information.
|
||||
|
@ -230,40 +230,6 @@ func (ip IP) Mask(mask IPMask) IP {
|
||||
return out
|
||||
}
|
||||
|
||||
// Convert i to decimal string.
|
||||
func itod(i uint) string {
|
||||
if i == 0 {
|
||||
return "0"
|
||||
}
|
||||
|
||||
// Assemble decimal in reverse order.
|
||||
var b [32]byte
|
||||
bp := len(b)
|
||||
for ; i > 0; i /= 10 {
|
||||
bp--
|
||||
b[bp] = byte(i%10) + '0'
|
||||
}
|
||||
|
||||
return string(b[bp:])
|
||||
}
|
||||
|
||||
// Convert i to hexadecimal string.
|
||||
func itox(i uint) string {
|
||||
if i == 0 {
|
||||
return "0"
|
||||
}
|
||||
|
||||
// Assemble hexadecimal in reverse order.
|
||||
var b [32]byte
|
||||
bp := len(b)
|
||||
for ; i > 0; i /= 16 {
|
||||
bp--
|
||||
b[bp] = "0123456789abcdef"[byte(i%16)]
|
||||
}
|
||||
|
||||
return string(b[bp:])
|
||||
}
|
||||
|
||||
// String returns the string form of the IP address ip.
|
||||
// If the address is an IPv4 address, the string representation
|
||||
// is dotted decimal ("74.125.19.99"). Otherwise the representation
|
||||
@ -317,7 +283,7 @@ func (ip IP) String() string {
|
||||
} else if i > 0 {
|
||||
s += ":"
|
||||
}
|
||||
s += itox((uint(p[i]) << 8) | uint(p[i+1]))
|
||||
s += itox((uint(p[i])<<8)|uint(p[i+1]), 1)
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
@ -159,6 +159,18 @@ func xtoi(s string, i0 int) (n int, i int, ok bool) {
|
||||
return n, i, true
|
||||
}
|
||||
|
||||
// xtoi2 converts the next two hex digits of s into a byte.
|
||||
// If s is longer than 2 bytes then the third byte must be e.
|
||||
// If the first two bytes of s are not hex digits or the third byte
|
||||
// does not match e, false is returned.
|
||||
func xtoi2(s string, e byte) (byte, bool) {
|
||||
if len(s) > 2 && s[2] != e {
|
||||
return 0, false
|
||||
}
|
||||
n, ei, ok := xtoi(s[:2], 0)
|
||||
return byte(n), ok && ei == 2
|
||||
}
|
||||
|
||||
// Integer to decimal.
|
||||
func itoa(i int) string {
|
||||
var buf [30]byte
|
||||
@ -181,6 +193,37 @@ func itoa(i int) string {
|
||||
return string(buf[n:])
|
||||
}
|
||||
|
||||
// Convert i to decimal string.
|
||||
func itod(i uint) string {
|
||||
if i == 0 {
|
||||
return "0"
|
||||
}
|
||||
|
||||
// Assemble decimal in reverse order.
|
||||
var b [32]byte
|
||||
bp := len(b)
|
||||
for ; i > 0; i /= 10 {
|
||||
bp--
|
||||
b[bp] = byte(i%10) + '0'
|
||||
}
|
||||
|
||||
return string(b[bp:])
|
||||
}
|
||||
|
||||
// Convert i to hexadecimal string.
|
||||
func itox(i uint, min int) string {
|
||||
// Assemble hexadecimal in reverse order.
|
||||
var b [32]byte
|
||||
bp := len(b)
|
||||
for ; i > 0 || min > 0; i /= 16 {
|
||||
bp--
|
||||
b[bp] = "0123456789abcdef"[byte(i%16)]
|
||||
min--
|
||||
}
|
||||
|
||||
return string(b[bp:])
|
||||
}
|
||||
|
||||
// Number of occurrences of b in s.
|
||||
func count(s string, b byte) int {
|
||||
n := 0
|
||||
|
Loading…
Reference in New Issue
Block a user