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:
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);