R2LTH4RU362GRCUSL5UWKAEBEIY54WP4KK5WAXXHEDF2YNJF7CFAC
4ZFYKR4CWNYVSUA7OHDYFKU5XDH5X5H5EZNPF523RYEUBELU2W6AC
KINQGWBUC6PAA7PDIHAOPK4T2WIBHM3FUFZV5DXFXWCJCDKLEQSQC
742DOW7EY2WD5BZC2CEBAMLIVAQLLCYWWNLSVSWVWTLIZJQ4HFKAC
JLGSGC2YQL2DAK3DGCLJOEBAXKKSGWTV3ZV5NQMAUFER7PD34CBAC
TJLBC4ZGNZU5NMW2RBXHYUYRLV5T5VG5TYXWXDB5IBRM2OXPECVAC
D2NY5ZG5TDM3CNO5OEOQ2XDYW33GLAVF6ZNCJKUNGYX7OUHCWQMQC
termState.lflag &= ~@as(linux.tcflag_t, linux.ECHO | linux.ICANON);
// These are the flags for setting up raw mode (see man 3 termios)
// The explanation is for the switched off state.
// ~ECHO: not-repeating every input back to output
// ~ECHONL:
// ~ICANON: read input by bytes, no need to press <Enter> after every line
// ~ISIG: send raw bytes instead of signals for the program (C-c, C-z etc.)
// ~IEXTEN: disable (C-v) literal signal sending
// ~IXON: disable flow control: suspend (C-s), resume (C-q)
// ~ICRNL: disable C-m rewrite from \r to \n (from 13 to 10)
// ~INLCR:
// ~BRKINT, ~IGNBRK, ~PARMRK: BREAK reads as null byte ('\0')
// ~ISTRIP: do not strip off 8th bit
// ~IGNCR: do not ignore carrige return
// ~OPOST: output post-processing: \n -> \r\n
// ~CSIZE:
// ~PARENB:
// only in snapdragon's kilo:
// ~INPCK: disable input parity check
termState.lflag &= ~@as(linux.tcflag_t, linux.ECHO | linux.ECHONL | linux.ICANON |
linux.ISIG | linux.IEXTEN);
termState.iflag &= ~@as(linux.tcflag_t, linux.IXON | linux.ICRNL | linux.INLCR |
linux.BRKINT | linux.IGNBRK | linux.PARMRK | linux.ISTRIP | linux.IGNCR);
termState.oflag &= ~@as(linux.tcflag_t, linux.OPOST);
termState.cflag &= ~@as(linux.tcflag_t, linux.CSIZE | linux.PARENB);
// CS8 bit mask sets up character size to 8 bit/byte
termState.cflag |= linux.CS8;