]> gitweb.ps.run Git - iftint/commitdiff
main2 cross platform
authorPatrick <patrick.schoenberger@posteo.de>
Wed, 26 Jul 2023 21:35:57 +0000 (23:35 +0200)
committerPatrick <patrick.schoenberger@posteo.de>
Wed, 26 Jul 2023 21:35:57 +0000 (23:35 +0200)
main2.c

diff --git a/main2.c b/main2.c
index e462674535e0fa56c2515165f58bbed59ac6a9c7..d58a5bcfdbfb65ae0d6ca75e7d2c93d971eece1c 100644 (file)
--- a/main2.c
+++ b/main2.c
@@ -1,5 +1,40 @@
 #include <stdio.h>\r
+\r
+#ifdef _WIN32\r
 #include <conio.h>\r
+#else\r
+#include <termios.h>\r
+#include <unistd.h>\r
+#include <stdio.h>\r
+\r
+/* reads from keypress, doesn't echo */\r
+int getch(void)\r
+{\r
+    struct termios oldattr, newattr;\r
+    int ch;\r
+    tcgetattr( STDIN_FILENO, &oldattr );\r
+    newattr = oldattr;\r
+    newattr.c_lflag &= ~( ICANON | ECHO );\r
+    tcsetattr( STDIN_FILENO, TCSANOW, &newattr );\r
+    ch = getchar();\r
+    tcsetattr( STDIN_FILENO, TCSANOW, &oldattr );\r
+    return ch;\r
+}\r
+\r
+/* reads from keypress, echoes */\r
+int getche(void)\r
+{\r
+    struct termios oldattr, newattr;\r
+    int ch;\r
+    tcgetattr( STDIN_FILENO, &oldattr );\r
+    newattr = oldattr;\r
+    newattr.c_lflag &= ~( ICANON );\r
+    tcsetattr( STDIN_FILENO, TCSANOW, &newattr );\r
+    ch = getchar();\r
+    tcsetattr( STDIN_FILENO, TCSANOW, &oldattr );\r
+    return ch;\r
+}\r
+#endif\r
 \r
 #define ASCII_ESC 27\r
 \r