diff options
author | mcpcpc <michaelczigler@icloud.com> | 2020-08-20 19:14:01 -0400 |
---|---|---|
committer | mcpcpc <michaelczigler@icloud.com> | 2020-08-20 19:14:01 -0400 |
commit | 6a81f93b57ce2d6bea08ddd988d967672b91605c (patch) | |
tree | f5308e06922bcf3eaffe44c17a06f6722be57235 | |
parent | Create CODE_OF_CONDUCT (diff) | |
download | kirc-6a81f93b57ce2d6bea08ddd988d967672b91605c.tar.gz kirc-6a81f93b57ce2d6bea08ddd988d967672b91605c.tar.bz2 kirc-6a81f93b57ce2d6bea08ddd988d967672b91605c.tar.xz kirc-6a81f93b57ce2d6bea08ddd988d967672b91605c.tar.zst kirc-6a81f93b57ce2d6bea08ddd988d967672b91605c.zip |
change sbuf from global to local variable
Diffstat (limited to '')
-rw-r--r-- | kirc.c | 40 |
1 files changed, 20 insertions, 20 deletions
@@ -14,7 +14,6 @@ #define BUFF 512 /* buffer size (see RFC 2812) */ static int conn; /* socket connection */ -static char sbuf[BUFF]; /* string buffer */ static int verb = 0; /* verbose output (e.g. raw stream) */ static int cmax = 80; /* max number of characters per line */ static int gutl = 10; /* max character width of left column */ @@ -47,19 +46,19 @@ kbhit(void) { } static void -raw(char *fmt, ...) { +raw(char s[], char *fmt, ...) { va_list ap; va_start(ap, fmt); - vsnprintf(sbuf, BUFF, fmt, ap); + vsnprintf(s, BUFF, fmt, ap); va_end(ap); - if (verb) printf("<< %s", sbuf); - write(conn, sbuf, strlen(sbuf)); + if (verb) printf("<< %s", s); + write(conn, s, strlen(s)); } static void -con(void) { +con(char s[]) { struct addrinfo *res, hints = { .ai_family = AF_INET, @@ -70,11 +69,11 @@ con(void) { conn = socket(res->ai_family, res->ai_socktype, res->ai_protocol); connect(conn, res->ai_addr, res->ai_addrlen); - if (nick) raw("NICK %s\r\n", nick); - if (user && real) raw("USER %s - - :%s\r\n", user, real); - if (user && !real && nick) raw("USER %s - - :%s\r\n", user, nick); - if (!user && !real && nick) raw("USER %s - - :%s\r\n", nick, nick); - if (pass) raw("PASS %s\r\n", pass); + if (nick) raw(s, "NICK %s\r\n", nick); + if (user && real) raw(s, "USER %s - - :%s\r\n", user, real); + if (user && !real && nick) raw(s, "USER %s - - :%s\r\n", user, nick); + if (!user && !real && nick) raw(s, "USER %s - - :%s\r\n", nick, nick); + if (pass) raw(s, "PASS %s\r\n", pass); fcntl(conn, F_SETFL, O_NONBLOCK); } @@ -107,7 +106,7 @@ printw(const char *format, ...) { } static void -pars(int sl, char *buf) { +pars(int sl, char *s) { int len, i, o = -1; char buf_c[BUFF + 1], ltr[200], cha[50], nic[200], hos[200], \ @@ -115,9 +114,9 @@ pars(int sl, char *buf) { for (i = 0; i < sl; i++) { o++; - buf_c[o] = buf[i]; + buf_c[o] = s[i]; - if ((i > 0 && buf[i] == '\n' && buf[i - 1] == '\r') || o == BUFF) { + if ((i > 0 && s[i] == '\n' && s[i - 1] == '\r') || o == BUFF) { buf_c[o + 1] = '\0'; o = -1; @@ -125,14 +124,14 @@ pars(int sl, char *buf) { if (!strncmp(buf_c, "PING", 4)) { buf_c[1] = 'O'; - raw(buf_c); + raw(s, buf_c); } else if (buf_c[0] == ':') { sscanf(buf_c, ":%[^ ] %[^:]:%[^\r]", pre, cmd, msg); sscanf(pre, "%[^!]!%[^@]@%s", nic, usr, hos); sscanf(cmd, "%[^#& ]%s", ltr, cha); - if (!strncmp(ltr, "001", 3)) raw("JOIN #%s\r\n", chan); + if (!strncmp(ltr, "001", 3)) raw(s, "JOIN #%s\r\n", chan); if (!strncmp(ltr, "QUIT", 4)) { printw("%*.*s \x1b[34;1m%s\x1b[0m\n", gutl, gutl, "<--", nic); @@ -187,14 +186,15 @@ main(int argc, char **argv) { if (pid == 0) { int sl, i; char u[BUFF]; + char s[BUFF]; - con(); + con(s); - while ((sl = read(conn, sbuf, BUFF))) { - pars(sl, sbuf); + while ((sl = read(conn, s, BUFF))) { + pars(sl, s); if (read(fd[0], u, BUFF) > 0) { for (i = 0; u[i] != '\n'; i++) continue; - if (u[0] != ':') raw("%-*.*s\r\n", i, i, u); + if (u[0] != ':') raw(s, "%-*.*s\r\n", i, i, u); } } printf("%*s<<press RETURN key to exit>>", gutl+2, ""); |