From 455a0aaf534036d50a5570f2b19d8b608ddb07d4 Mon Sep 17 00:00:00 2001 From: Top1055 <123alexfeetham@gmail.com> Date: Tue, 23 Dec 2025 16:09:03 +0000 Subject: [PATCH] enabled raw mode with no echo, character input rather than line input, ignore to stop build files being pushed --- .gitignore | 1 + Makefile | 9 ++++++++- kilo | Bin 16608 -> 0 bytes kilo.c | 30 +++++++++++++++++++++++++----- 4 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 .gitignore delete mode 100755 kilo diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0627995 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +kilo diff --git a/Makefile b/Makefile index 5dbe62b..c9b5a5a 100644 --- a/Makefile +++ b/Makefile @@ -1,2 +1,9 @@ kilo: kilo.c - $(CC) kilo.c -o kilo -Wall -Wextra -pedantic -std=c99 + mkdir -p ./out + $(CC) kilo.c -o ./out/kilo -Wall -Wextra -pedantic -std=c99 + +run: + ./out/kilo + +clean: + rm -rf ./out diff --git a/kilo b/kilo deleted file mode 100755 index 70588187db08eecf81e8c841b0787d4d11c50225..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16608 zcmeHOYit}>6~4P`$Iff*qzSl5A=8qI1nTuVZHzlIdfoBAC~r(%S)TY50uMQ9l7jC*L@wi zbbBtFFHf~kb$7LQ-4`hpB0H?>-avtHpBgwYtdc(pJ`x)~cjNl$(C#}2=AP>?zFX$F zIR^H}I$T&E=||pKZeQ0EtRi)#E@yr@X)%^L@om!T$k^ZdI{b~x@E<0=R!4tg89v8) zR~>y-%%sxFFh-|R##lC=%4JVxh@>oz8YMGTG>yqrHm{iGBzCERkk1UIMsn<9e6o-iABL@3SCNAXN`8Zs_kj8+anKLSo3ble z-YK!;`9Ob;uCoOT(*MC<5C_|0wj6xWSN7U`&I{)rWzNCp`;Id2;G=J|Y{9{oSBhn_ z=-@m1e_PBFt0n^UDVyV;{S5dS@H60Nz|Vl60Y3wN2K)@Xe=?xY{Ha+#(|EN*DgDdm z%wY8uedc2Gg<62sov)FodiOOtw`_?~jcJ~Zs5j=SRPO#E(PL*}(D~=V%H^YawER{iy=L5Nxyv4+&~UCii76r+?dr4>`(RVB9SV0 z4C^yJ??kAoS6(;Q=x2I15r4j&u4sOOPL~?j5gj-JJK!6iC*d&JP~uw8>a+dTpYSw8 zuUz^mftvsQ&1zMjSqzxhe$4dGFN{T6wmijEN*`Ts{4>efp29s;d2q1uoA~fxJMwP4gKM5UujH)qff8U!`(AY1L4^5aCbZ$jfc1OhPB>s8|n9ko2~Dc z7s>ot^1~B7qqHBJy{IuEj0>|JQ(Z<=%F?uuxY7SYJEP*Y`5qQoP^b0YD-`;ho8P2xU)=m=h5PB|uTZl@(?|BT3!BH6|2h+ z*Y;(&{kJGQr*1wu(VQH+9#ZRS>;0Y55Uo^?)z!aE;kkF~Z%}yN-TaNJUcU;d4=Ak9 zcI(sA7;|#$dPub?tuFs|6|Kw1Tj-WAe*PNNTh&_}yTv<;^K+c|+%De7tjpzbIs$5Gp1)4~dhsuJUEj3)tXByR z*i-8HdC}6jZAqLj6F;Dq-beoLOVx?} z%FiqEyTjMXrIjk0Rdb)x7Jq3!;r}LEssDKU$tvQn4=#OP?q$B)wM8YC;g5)aZ~rV1 zU#sKii^N|SY*ToTLgfteISFDUKM(2~#OFMmkUUubS(4F9bhJ``>yA;yQ6@zHkn~&p z=lUY?S>Kz7mqdT3__zKuC4VmypX2oE|BU#Wqdin#CH`F?oH$xEOJ;d&EHbKY?IbbG zNn@1vl9Xs4NxEQ+=L#dKoRKyQ#gdUKPpQ$us@PYXL!9KUd z+B8Ef+B{_R>*7IA99G6a@?dW~X&l_Q?}7dyV<_I6>}RjmR-4gM*^2mIZ>hJ=7U}Zj%nUIb%ktQdgY*V`j*%qi%3#rNMC^cU&*)s*lcQ8VkR1xaK zlhiex55s?7=W#YYV)U-G3&u@AjI%{->7vf~5jvcEk}$pkZgnbC9q%8oyFB(7hXFMx z3VQ7m#D9mzx`-d+H6Yr@d;sHaxII7>9{a-{<2vB;qKN%ou*W$4L6Y+j5%w7W0iP6m z0O#6SjuOFRdDvr|2;}hs7sL-e;A14?xdCX5CxIFpQ}M=cbCo(t70xN_G42GO6GgP| zz5b`fzE|`x-vJ^|Y)`+^wfP$O&k&Dug83Q$R9QukZJdQ;b(RVdPJ2!4YUos^y2rix zn#VpS3P4;h+<*o?=ds7{Bk&2&4M+R%_ic|o#@Rs33!(45{uji)Hnz}2Q_!mq8u$aT z$Ng`Bo!}mlI}7Z<<5kIgiLj4pwglMhxqjr$)}jT>RN+3(&kz^P1F(PBs}CCZYqDvf z1NImXFUbC8=&^4upn=sAfW{S$V$kI#}VtH2)fk1HL-q_WM1+8Oph zd;EIKUd2Q;YNIA30CvE?k-*u$7PB=qu}7RVy2QjK|{ zUgN_a|NlS$dncmrK!@=mIF!Wm?-1Wo#Dn(-KOcyls +#include #include -int main() { - char c; - while (read(STDIN_FILENO, &c, 1) == 1) - ; - return 0; +struct termios orig_termios; + +void disableRawMode() { + tcsetattr(STDIN_FILENO, TCSAFLUSH, &orig_termios); +} + +void enableRawMode() { + tcgetattr(STDIN_FILENO, &orig_termios); + atexit(disableRawMode); + + struct termios raw = orig_termios; + raw.c_lflag &= ~(ECHO); + raw.c_lflag &= ~(ICANON); + + tcsetattr(STDIN_FILENO, TCSAFLUSH, &raw); +} + +int main() { + enableRawMode(); + + char c; + while (read(STDIN_FILENO, &c, 1) == 1 && c != 'q'); + return 0; }