Skip to content

Commit dc49ad5

Browse files
committed
Fix darwin build (amd64 only at the moment).
1 parent cec87e6 commit dc49ad5

File tree

5 files changed

+127
-15
lines changed

5 files changed

+127
-15
lines changed

api.go

+10-10
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,16 @@ func Init() error {
185185
}
186186

187187
tios := orig_tios
188-
tios.Iflag &^= syscall.IGNBRK | syscall.BRKINT | syscall.PARMRK |
189-
syscall.ISTRIP | syscall.INLCR | syscall.IGNCR |
190-
syscall.ICRNL | syscall.IXON
191-
tios.Oflag &^= syscall.OPOST
192-
tios.Lflag &^= syscall.ECHO | syscall.ECHONL | syscall.ICANON |
193-
syscall.ISIG | syscall.IEXTEN
194-
tios.Cflag &^= syscall.CSIZE | syscall.PARENB
195-
tios.Cflag |= syscall.CS8
196-
tios.Cc[syscall.VMIN] = 1
197-
tios.Cc[syscall.VTIME] = 0
188+
tios.Iflag &^= syscall_IGNBRK | syscall_BRKINT | syscall_PARMRK |
189+
syscall_ISTRIP | syscall_INLCR | syscall_IGNCR |
190+
syscall_ICRNL | syscall_IXON
191+
tios.Oflag &^= syscall_OPOST
192+
tios.Lflag &^= syscall_ECHO | syscall_ECHONL | syscall_ICANON |
193+
syscall_ISIG | syscall_IEXTEN
194+
tios.Cflag &^= syscall_CSIZE | syscall_PARENB
195+
tios.Cflag |= syscall_CS8
196+
tios.Cc[syscall_VMIN] = 1
197+
tios.Cc[syscall_VTIME] = 0
198198

199199
err = tcsetattr(out.Fd(), &tios)
200200
if err != nil {

syscalls.go

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
// +build ignore
2+
3+
package termbox
4+
5+
/*
6+
#include <termios.h>
7+
#include <sys/ioctl.h>
8+
*/
9+
import "C"
10+
11+
type syscall_Termios C.struct_termios
12+
13+
const (
14+
syscall_IGNBRK = C.IGNBRK
15+
syscall_BRKINT = C.BRKINT
16+
syscall_PARMRK = C.PARMRK
17+
syscall_ISTRIP = C.ISTRIP
18+
syscall_INLCR = C.INLCR
19+
syscall_IGNCR = C.IGNCR
20+
syscall_ICRNL = C.ICRNL
21+
syscall_IXON = C.IXON
22+
syscall_OPOST = C.OPOST
23+
syscall_ECHO = C.ECHO
24+
syscall_ECHONL = C.ECHONL
25+
syscall_ICANON = C.ICANON
26+
syscall_ISIG = C.ISIG
27+
syscall_IEXTEN = C.IEXTEN
28+
syscall_CSIZE = C.CSIZE
29+
syscall_PARENB = C.PARENB
30+
syscall_CS8 = C.CS8
31+
syscall_VMIN = C.VMIN
32+
syscall_VTIME = C.VTIME
33+
34+
// on darwin change these to (on *bsd too?):
35+
// C.TIOCGETA
36+
// C.TIOCSETA
37+
syscall_TCGETS = C.TCGETS
38+
syscall_TCSETS = C.TCSETS
39+
)

syscalls_darwin_amd64.go

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// Created by cgo -godefs - DO NOT EDIT
2+
// cgo -godefs syscalls.go
3+
4+
package termbox
5+
6+
type syscall_Termios struct {
7+
Iflag uint64
8+
Oflag uint64
9+
Cflag uint64
10+
Lflag uint64
11+
Cc [20]uint8
12+
Pad_cgo_0 [4]byte
13+
Ispeed uint64
14+
Ospeed uint64
15+
}
16+
17+
const (
18+
syscall_IGNBRK = 0x1
19+
syscall_BRKINT = 0x2
20+
syscall_PARMRK = 0x8
21+
syscall_ISTRIP = 0x20
22+
syscall_INLCR = 0x40
23+
syscall_IGNCR = 0x80
24+
syscall_ICRNL = 0x100
25+
syscall_IXON = 0x200
26+
syscall_OPOST = 0x1
27+
syscall_ECHO = 0x8
28+
syscall_ECHONL = 0x10
29+
syscall_ICANON = 0x100
30+
syscall_ISIG = 0x80
31+
syscall_IEXTEN = 0x400
32+
syscall_CSIZE = 0x300
33+
syscall_PARENB = 0x1000
34+
syscall_CS8 = 0x300
35+
syscall_VMIN = 0x10
36+
syscall_VTIME = 0x11
37+
38+
syscall_TCGETS = 0x40487413
39+
syscall_TCSETS = 0x80487414
40+
)

syscalls_linux.go

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// Created by cgo -godefs - DO NOT EDIT
2+
// cgo -godefs syscalls.go
3+
4+
package termbox
5+
6+
import "syscall"
7+
8+
type syscall_Termios syscall.Termios
9+
10+
const (
11+
syscall_IGNBRK = syscall.IGNBRK
12+
syscall_BRKINT = syscall.BRKINT
13+
syscall_PARMRK = syscall.PARMRK
14+
syscall_ISTRIP = syscall.ISTRIP
15+
syscall_INLCR = syscall.INLCR
16+
syscall_IGNCR = syscall.IGNCR
17+
syscall_ICRNL = syscall.ICRNL
18+
syscall_IXON = syscall.IXON
19+
syscall_OPOST = syscall.OPOST
20+
syscall_ECHO = syscall.ECHO
21+
syscall_ECHONL = syscall.ECHONL
22+
syscall_ICANON = syscall.ICANON
23+
syscall_ISIG = syscall.ISIG
24+
syscall_IEXTEN = syscall.IEXTEN
25+
syscall_CSIZE = syscall.CSIZE
26+
syscall_PARENB = syscall.PARENB
27+
syscall_CS8 = syscall.CS8
28+
syscall_VMIN = syscall.VMIN
29+
syscall_VTIME = syscall.VTIME
30+
31+
syscall_TCGETS = syscall.TCGETS
32+
syscall_TCSETS = syscall.TCSETS
33+
)

termbox.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ var (
3838
funcs []string
3939

4040
// termbox inner state
41-
orig_tios syscall.Termios
41+
orig_tios syscall_Termios
4242
back_buffer cellbuf
4343
front_buffer cellbuf
4444
termw int
@@ -227,18 +227,18 @@ func update_size() {
227227
send_clear()
228228
}
229229

230-
func tcsetattr(fd uintptr, termios *syscall.Termios) error {
230+
func tcsetattr(fd uintptr, termios *syscall_Termios) error {
231231
r, _, e := syscall.Syscall(syscall.SYS_IOCTL,
232-
fd, uintptr(syscall.TCSETS), uintptr(unsafe.Pointer(termios)))
232+
fd, uintptr(syscall_TCSETS), uintptr(unsafe.Pointer(termios)))
233233
if r != 0 {
234234
return os.NewSyscallError("SYS_IOCTL", e)
235235
}
236236
return nil
237237
}
238238

239-
func tcgetattr(fd uintptr, termios *syscall.Termios) error {
239+
func tcgetattr(fd uintptr, termios *syscall_Termios) error {
240240
r, _, e := syscall.Syscall(syscall.SYS_IOCTL,
241-
fd, uintptr(syscall.TCGETS), uintptr(unsafe.Pointer(termios)))
241+
fd, uintptr(syscall_TCGETS), uintptr(unsafe.Pointer(termios)))
242242
if r != 0 {
243243
return os.NewSyscallError("SYS_IOCTL", e)
244244
}

0 commit comments

Comments
 (0)