コード例 #1
0
ファイル: window.go プロジェクト: trotha01/goncurses
// GetString reads at most 'n' characters entered by the user from the Window.
// Attempts to enter greater than 'n' characters will elicit a 'beep'
func (w *Window) GetString(n int) (string, error) {
	cstr := make([]C.char, n)
	if C.wgetnstr(w.win, (*C.char)(&cstr[0]), C.int(n)) == C.ERR {
		return "", errors.New("Failed to retrieve string from input stream")
	}
	return C.GoString(&cstr[0]), nil
}
コード例 #2
0
ファイル: window.go プロジェクト: zyxar/gocurse
func (win *Window) Getnstr(length int) (string, error) {
	buf := make([]byte, length)
	r := C.wgetnstr((*C.WINDOW)(win), (*C.char)(unsafe.Pointer(&buf[0])), C.int(length))
	if r == C.ERR {
		return string(buf), CursesError{"wgetnstr failed"}
	}
	return string(buf), nil
}
コード例 #3
0
ファイル: curses.go プロジェクト: zozor/gocurse
func (w *Window) Getstr() (string, error) {
	var buffer [1024]C.char
	if C.wgetnstr(w.win, &buffer[0], 1024) == ERR {
		return "", Error
	}

	s := C.GoString(&buffer[0])
	return s, nil
}