diff options
Diffstat (limited to 'modules/TUI/unix.jai')
| -rw-r--r-- | modules/TUI/unix.jai | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/modules/TUI/unix.jai b/modules/TUI/unix.jai index 9208e4b..7cd457e 100644 --- a/modules/TUI/unix.jai +++ b/modules/TUI/unix.jai @@ -4,9 +4,21 @@ #import "System"; #import "POSIX"; + // More info about the structs and enums at: + // LINUX : https://sourceware.org/git/glibc.git + // MACOS : https://github.com/apple/darwin-xnu + + #if OS == { + case .LINUX; + TCFLAG_T :: u32; + SPEED_T :: u32; + + case .MACOS; + TCFLAG_T :: u64; + SPEED_T :: u64; + } + // Queue selector used in tcflush(...). - // LINUX : https://sourceware.org/git/glibc.git -> ./sysdeps/unix/sysv/linux/bits/termios-struct.h - // MACOS : https://opensource.apple.com/source/xnu/xnu-792/bsd/sys/termios.h.auto.html Queue_Selector :: enum s32 { #if OS == { case .LINUX; @@ -22,17 +34,13 @@ } // Optional actions used in tcsetattr(...). - // LINUX : https://sourceware.org/git/glibc.git -> ./sysdeps/unix/sysv/linux/bits/termios-tcflow.h - // MACOS : https://opensource.apple.com/source/xnu/xnu-792/bsd/sys/termios.h.auto.html Optional_Actions :: enum s32 { TCSANOW :: 0; // Change immediately. TCSADRAIN :: 1; // Change when pending output is written. TCSAFLUSH :: 2; // Flush pending input before changing. } - + // Terminal control (struct termios). - // LINUX : https://sourceware.org/git/glibc.git -> ./sysdeps/unix/sysv/linux/bits/termios-struct.h - // MACOS : https://opensource.apple.com/source/xnu/xnu-792/bsd/sys/termios.h.auto.html Terminal_IO_Mode :: struct { #if OS == { @@ -47,16 +55,16 @@ c_oflag : Output_Modes; // Output mode flags. c_cflag : Control_Modes; // Control modes flags. c_lflag : Local_Modes; // Local modes flags. - c_line : u8; // Line discipline. + #if OS == .LINUX { + c_line : u8; // Line discipline. + } c_cc : [NCCS]Control_Chars; // Control characters. - c_ispeed : u32; // Input speed (baud rates). - c_ospeed : u32; // Output speed (baud rates). + c_ispeed : SPEED_T; // Input speed (baud rates). + c_ospeed : SPEED_T; // Output speed (baud rates). } // Input modes. - // LINUX : https://sourceware.org/git/glibc.git -> ./sysdeps/unix/sysv/linux/bits/termios-c_iflag.h - // MACOS : https://opensource.apple.com/source/xnu/xnu-792/bsd/sys/termios.h.auto.html - Input_Modes :: enum_flags u32 { + Input_Modes :: enum_flags TCFLAG_T { IGNBRK :: 0x00000001; // Ignore break condition. BRKINT :: 0x00000002; // Signal interrupt on break. IGNPAR :: 0x00000004; // Ignore characters with parity errors. @@ -82,9 +90,7 @@ } // Output modes. - // LINUX : https://sourceware.org/git/glibc.git -> ./sysdeps/unix/sysv/linux/bits/termios-c_oflag.h - // MACOS : https://opensource.apple.com/source/xnu/xnu-792/bsd/sys/termios.h.auto.html - Output_Modes :: enum_flags u32 { + Output_Modes :: enum_flags TCFLAG_T { #if OS == { case .LINUX; @@ -106,9 +112,7 @@ } // Control modes. - // LINUX : https://sourceware.org/git/glibc.git -> ./sysdeps/unix/sysv/linux/bits/termios-c_cflag.h - // MACOS : https://opensource.apple.com/source/xnu/xnu-792/bsd/sys/termios.h.auto.html - Control_Modes :: enum u32 { + Control_Modes :: enum TCFLAG_T { #if OS == { case .LINUX; @@ -140,9 +144,7 @@ } // Local modes. - // LINUX : https://sourceware.org/git/glibc.git -> ./sysdeps/unix/sysv/linux/bits/termios-c_lflag.h - // MACOS : https://opensource.apple.com/source/xnu/xnu-792/bsd/sys/termios.h.auto.html - Local_Modes :: enum_flags u32 { + Local_Modes :: enum_flags TCFLAG_T { #if OS == { case .LINUX; @@ -170,8 +172,6 @@ } // Control Characters - // LINUX : https://sourceware.org/git/glibc.git -> ./sysdeps/unix/sysv/linux/bits/termios-c_cc.h - // MACOS : https://opensource.apple.com/source/xnu/xnu-792/bsd/sys/termios.h.auto.html Control_Chars :: enum u8 { // Unused consts: // VINTR, VQUIT, VERASE, VKILL, VEOF, VSWTC, VSTART, VSTOP, VSUSP, VEOL, VREPRINT, VDISCARD, VWERASE, VLNEXT, VEOL2 |
