From 5e3a2492c7bb73daa4e27398daaf490d09980ff3 Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Wed, 22 Jun 2022 17:41:59 -0400 Subject: Base system viewer with data loaded from csv files --- src/input.cpp | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 src/input.cpp (limited to 'src/input.cpp') diff --git a/src/input.cpp b/src/input.cpp new file mode 100644 index 0000000..5cbedb2 --- /dev/null +++ b/src/input.cpp @@ -0,0 +1,37 @@ +#include "input.hpp" +namespace input { + +int getcode() { + int r = 0; + char c; + if(read(STDIN_FILENO, &c, 1) != 1) return -1; + if(c == '\x1b') { + char seq[3]; + if(read(STDIN_FILENO, &seq[0], 1) != 1) return '\x1b'; + if(read(STDIN_FILENO, &seq[1], 1) != 1) return '\x1b'; + if(seq[0] == '[') { + if(seq[1] >= 0 && seq[1] <= '9') { + if(read(STDIN_FILENO, &seq[2], 1) != 1) return '\x1b'; + if(seq[2] == '~') { + switch(seq[1]) { + case '1': + case '7': return CTRL_KEY_HOME; + case '4': + case '8': return CTRL_KEY_END; + default: return CTRL_RANGE_START + seq[1] + 20; + } + } + }else{ + switch(seq[1]) { + default: return CTRL_RANGE_START + seq[1]; + } + } + }else if(seq[0] == 'O') { + return CTRL_RANGE_START + seq[1]; + } + return '\x1b'; + }else{ + return c; + } +} +} -- cgit v1.2.1