make sure the standard "replace input carriage returns with line feeds" and "replace output line feeds with carriage return and line feed" flags are set, even on raw (I dont think it should actually be raw)
This commit is contained in:
Родитель
29aab0e4bf
Коммит
4e24b235c3
6
term.go
6
term.go
|
@ -123,9 +123,11 @@ func MakeRaw(fd int) (*State, error) {
|
|||
if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), uintptr(getTermios), uintptr(unsafe.Pointer(&oldState.termios)), 0, 0, 0); err != 0 {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
|
||||
newState := oldState.termios
|
||||
newState.Iflag &^= istrip | INLCR | ICRNL | IGNCR | IXON | IXOFF
|
||||
newState.Iflag &^= ISTRIP | INLCR | IGNCR | IXON | IXOFF
|
||||
newState.Iflag |= ICRNL
|
||||
newState.Oflag |= ONLCR
|
||||
newState.Lflag &^= ECHO | ICANON | ISIG
|
||||
if _, _, err := syscall.Syscall6(syscall.SYS_IOCTL, uintptr(fd), uintptr(setTermios), uintptr(unsafe.Pointer(&newState)), 0, 0, 0); err != 0 {
|
||||
return nil, err
|
||||
|
|
Загрузка…
Ссылка в новой задаче