goprotobuf: Various changes for working with weekly.2011-12-06.
  - strconv API changes
  - rune tweak

R=r
CC=golang-dev
http://codereview.appspot.com/5463043
diff --git a/proto/text_parser.go b/proto/text_parser.go
index 0e76e13..e6cb44d 100644
--- a/proto/text_parser.go
+++ b/proto/text_parser.go
@@ -383,12 +383,6 @@
 	return nil
 }
 
-const (
-	minInt32  = -1 << 31
-	maxInt32  = 1<<31 - 1
-	maxUint32 = 1<<32 - 1
-)
-
 func (p *textParser) readAny(v reflect.Value, props *Properties) *ParseError {
 	tok := p.next()
 	if tok.err != nil {
@@ -436,12 +430,12 @@
 			return nil
 		}
 	case reflect.Float32, reflect.Float64:
-		if f, err := strconv.AtofN(tok.value, fv.Type().Bits()); err == nil {
+		if f, err := strconv.ParseFloat(tok.value, fv.Type().Bits()); err == nil {
 			fv.SetFloat(f)
 			return nil
 		}
 	case reflect.Int32:
-		if x, err := strconv.Atoi64(tok.value); err == nil && minInt32 <= x && x <= maxInt32 {
+		if x, err := strconv.ParseInt(tok.value, 10, 32); err == nil {
 			fv.SetInt(x)
 			return nil
 		}
@@ -459,7 +453,7 @@
 		fv.SetInt(int64(x))
 		return nil
 	case reflect.Int64:
-		if x, err := strconv.Atoi64(tok.value); err == nil {
+		if x, err := strconv.ParseInt(tok.value, 10, 64); err == nil {
 			fv.SetInt(x)
 			return nil
 		}
@@ -485,12 +479,12 @@
 		}
 		return p.readStruct(fv, terminator)
 	case reflect.Uint32:
-		if x, err := strconv.Atoui64(tok.value); err == nil && x <= maxUint32 {
+		if x, err := strconv.ParseUint(tok.value, 10, 32); err == nil {
 			fv.SetUint(uint64(x))
 			return nil
 		}
 	case reflect.Uint64:
-		if x, err := strconv.Atoui64(tok.value); err == nil {
+		if x, err := strconv.ParseUint(tok.value, 10, 64); err == nil {
 			fv.SetUint(x)
 			return nil
 		}