mirror of
https://github.com/rwinkhart/sys.git
synced 2026-09-06 00:57:18 -04:00
unix,windows,plan9: add Byte{Slice,Ptr}ToString functions
We already provide ByteSliceFromString and BytePtrFromString, and on Windows we provide UTF16FromString, UTF16PtrFromString, UTF16ToString, and UTF16PtrToString. So this commit fills in the remaining two Byte-oriented functions: ByteSliceToString and BytePtrToString. Since the existing two are available on windows, unix, and plan9, we add the remaining two to the same places. This helps eliminate unsafe pointer options in addition to triggering checkptr in Go 1.15, by eliminating the use of prior idioms for these types of casts. Change-Id: I85ae49f2756e142c2462fe8b2428216b6992e089 Reviewed-on: https://go-review.googlesource.com/c/sys/+/263757 Run-TryBot: Jason A. Donenfeld <Jason@zx2c4.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Trust: Brad Fitzpatrick <bradfitz@golang.org> Trust: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
committed by
Ian Lance Taylor
parent
eeed37f84f
commit
6e5568b54d
@@ -92,11 +92,11 @@ func UTF16FromString(s string) ([]uint16, error) {
|
||||
}
|
||||
|
||||
// UTF16ToString returns the UTF-8 encoding of the UTF-16 sequence s,
|
||||
// with a terminating NUL removed.
|
||||
// with a terminating NUL and any bytes after the NUL removed.
|
||||
func UTF16ToString(s []uint16) string {
|
||||
for i, v := range s {
|
||||
if v == 0 {
|
||||
s = s[0:i]
|
||||
s = s[:i]
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -120,7 +120,7 @@ func UTF16PtrFromString(s string) (*uint16, error) {
|
||||
}
|
||||
|
||||
// UTF16PtrToString takes a pointer to a UTF-16 sequence and returns the corresponding UTF-8 encoded string.
|
||||
// If the pointer is nil, this returns the empty string. This assumes that the UTF-16 sequence is terminated
|
||||
// If the pointer is nil, it returns the empty string. It assumes that the UTF-16 sequence is terminated
|
||||
// at a zero word; if the zero word is not present, the program may crash.
|
||||
func UTF16PtrToString(p *uint16) string {
|
||||
if p == nil {
|
||||
|
||||
Reference in New Issue
Block a user