-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Description
Lines 51 to 76 in 07de019
| function getXY(t::Terminals.TTYTerminal) | |
| fd = ccall(:jl_uv_file_handle, Base.OS_HANDLE, (Ptr{Cvoid},), stdin.handle) | |
| systemerror("tcgetattr", | |
| ccall(:tcgetattr, Cint, (Cint, Ptr{Cvoid}), fd, TERM) == -1) | |
| systemerror("tcgetattr", | |
| ccall(:tcgetattr, Cint, (Cint, Ptr{Cvoid}), fd, RESTORE) == -1) | |
| TERM[].c_lflag &= ~(ICANON|ECHO) | |
| systemerror("tcsetattr", | |
| ccall(:tcsetattr, Cint, (Cint, Cint, Ptr{Cvoid}), fd, TCSANOW, TERM) == -1 | |
| ) | |
| write(stdout, "$(Terminals.CSI)6n") | |
| buf = UInt8[] | |
| while true | |
| ch = read(stdin, 1)[1] | |
| if Char(ch) == 'R' | |
| break | |
| end | |
| push!(buf, ch) | |
| end | |
| systemerror("tcsetattr", | |
| ccall(:tcsetattr, Cint, (Cint, Cint, Ptr{Cvoid}), fd, TCSANOW, RESTORE) == -1 | |
| ) | |
| r, c = split(String(buf[3:end]), ";") | |
| return parse(Int, c), parse(Int, r) | |
| end |
Metadata
Metadata
Assignees
Labels
No labels