circo

claudio's IRC oasis
git clone git://git.bitsmanent.org/circo
Log | Files | Refs | README | LICENSE

commit 0759e67fd9d471049398bedea6ec57114bf61f0f
parent 963e1cecb747815c0210bf80599f022b4daca745
Author: Claudio Alessi <smoppy@gmail.com>
Date:   Mon, 22 Jul 2019 10:44:36 +0200

Use read(2) instead of getchar().

Diffstat:
Mcirco.c | 13++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/circo.c b/circo.c @@ -136,6 +136,7 @@ void parsecmd(void); void parsesrv(void); void privmsg(char *to, char *txt); void quit(char *msg); +int readchar(void); void recv_busynick(char *u, char *u2, char *u3); void recv_join(char *who, char *chan, char *txt); void recv_kick(char *who, char *chan, char *txt); @@ -671,15 +672,15 @@ getbuf(char *name) { /* XXX quick'n dirty implementation */ int getkey(void) { - int key = getchar(), c; + int key = readchar(), c; - if(key != '\x1b' || getchar() != '[') { + if(key != '\x1b' || readchar() != '[') { switch(key) { case 127: key = KeyBackspace; break; } return key; } - switch((c = getchar())) { + switch((c = readchar())) { case 'A': key = KeyUp; break; case 'B': key = KeyDown; break; case 'C': key = KeyRight; break; @@ -856,6 +857,12 @@ quit(char *msg) { hangsup(); } +int +readchar(void) { + char buf[1] = {0}; + return (read(0, buf, 1) < 1 ? EOF : buf[0]); +} + void recv_busynick(char *u, char *u2, char *u3) { bprintf(status, "%s is busy, choose a different /nick\n", nick);