mirror of
https://github.com/golang/go
synced 2024-10-02 16:18:38 -06:00
79c4fad8c2
Remove use of itod on posix systems and replace with call to itoa. Build and use same itoa function on all systems. Fix infinite recursion in iota function for the case -1<<63. Change-Id: I89d7e742383c5c4aeef8780501c78a3e1af87a6f Reviewed-on: https://go-review.googlesource.com/2213 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
34 lines
728 B
Go
34 lines
728 B
Go
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
// Simple converions to avoid depending on strconv.
|
|
|
|
package os
|
|
|
|
// Convert integer to decimal string
|
|
func itoa(val int) string {
|
|
if val < 0 {
|
|
return "-" + uitoa(uint(-val))
|
|
}
|
|
return uitoa(uint(val))
|
|
}
|
|
|
|
// Convert unsigned integer to decimal string
|
|
func uitoa(val uint) string {
|
|
if val == 0 { // avoid string allocation
|
|
return "0"
|
|
}
|
|
var buf [20]byte // big enough for 64bit value base 10
|
|
i := len(buf) - 1
|
|
for val >= 10 {
|
|
q := val / 10
|
|
buf[i] = byte('0' + val - q*10)
|
|
i--
|
|
val = q
|
|
}
|
|
// val < 10
|
|
buf[i] = byte('0' + val)
|
|
return string(buf[i:])
|
|
}
|