mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			29 lines
		
	
	
		
			738 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			738 B
		
	
	
	
		
			Go
		
	
	
	
// errstr_rtems.go -- RTEMS specific error strings.
 | 
						|
 | 
						|
// Copyright 2010 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.
 | 
						|
 | 
						|
package syscall
 | 
						|
 | 
						|
import "unsafe"
 | 
						|
 | 
						|
//sysnb	strerror_r(errnum int, b []byte) (errstr *byte)
 | 
						|
//strerror_r(errnum _C_int, b *byte, len Size_t) *byte
 | 
						|
 | 
						|
func Errstr(errnum int) string {
 | 
						|
	a := make([]byte, 128)
 | 
						|
	p := strerror_r(errnum, a)
 | 
						|
	b := (*[1000]byte)(unsafe.Pointer(p))
 | 
						|
	i := 0
 | 
						|
	for b[i] != 0 {
 | 
						|
		i++
 | 
						|
	}
 | 
						|
	// Lowercase first letter: Bad -> bad, but STREAM -> STREAM.
 | 
						|
	if i > 1 && 'A' <= b[0] && b[0] <= 'Z' && 'a' <= b[1] && b[1] <= 'z' {
 | 
						|
		c := b[0] + 'a' - 'A'
 | 
						|
		return string(c) + string(b[1:i])
 | 
						|
	}
 | 
						|
	return string(b[:i])
 | 
						|
}
 |