]> Cypherpunks repositories - gostls13.git/commitdiff
net: move internal string manipulation routines to parse.go
authorMikio Hara <mikioh.mikioh@gmail.com>
Thu, 25 Aug 2011 23:22:46 +0000 (19:22 -0400)
committerRuss Cox <rsc@golang.org>
Thu, 25 Aug 2011 23:22:46 +0000 (19:22 -0400)
R=rsc
CC=golang-dev
https://golang.org/cl/4968044

src/pkg/net/interface.go
src/pkg/net/ip.go
src/pkg/net/parse.go

index c69e6251b408945953051d73cdfaca2fcaf78725..2696b7f4c58c1da53c2b7bebe1873322176c5320 100644 (file)
@@ -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.
index 037ea083f37f4bf7997fa9bb24ed159d80735525..474cec95a55fcc9fb91cdb4a3f90e00d447bff09 100644 (file)
@@ -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
 }
index de46830d2928d09f231d699ee9005485e12fd68b..0d30a7ac609d44b1cb3ad85a8aa66eb662efea2d 100644 (file)
@@ -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