Skip to content

Commit 6a81f93

Browse files
committed
change sbuf from global to local variable
1 parent 88f74a9 commit 6a81f93

File tree

1 file changed

+20
-20
lines changed

1 file changed

+20
-20
lines changed

kirc.c

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
#define BUFF 512 /* buffer size (see RFC 2812) */
1515

1616
static int conn; /* socket connection */
17-
static char sbuf[BUFF]; /* string buffer */
1817
static int verb = 0; /* verbose output (e.g. raw stream) */
1918
static int cmax = 80; /* max number of characters per line */
2019
static int gutl = 10; /* max character width of left column */
@@ -47,19 +46,19 @@ kbhit(void) {
4746
}
4847

4948
static void
50-
raw(char *fmt, ...) {
49+
raw(char s[], char *fmt, ...) {
5150

5251
va_list ap;
5352

5453
va_start(ap, fmt);
55-
vsnprintf(sbuf, BUFF, fmt, ap);
54+
vsnprintf(s, BUFF, fmt, ap);
5655
va_end(ap);
57-
if (verb) printf("<< %s", sbuf);
58-
write(conn, sbuf, strlen(sbuf));
56+
if (verb) printf("<< %s", s);
57+
write(conn, s, strlen(s));
5958
}
6059

6160
static void
62-
con(void) {
61+
con(char s[]) {
6362

6463
struct addrinfo *res, hints = {
6564
.ai_family = AF_INET,
@@ -70,11 +69,11 @@ con(void) {
7069
conn = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
7170
connect(conn, res->ai_addr, res->ai_addrlen);
7271

73-
if (nick) raw("NICK %s\r\n", nick);
74-
if (user && real) raw("USER %s - - :%s\r\n", user, real);
75-
if (user && !real && nick) raw("USER %s - - :%s\r\n", user, nick);
76-
if (!user && !real && nick) raw("USER %s - - :%s\r\n", nick, nick);
77-
if (pass) raw("PASS %s\r\n", pass);
72+
if (nick) raw(s, "NICK %s\r\n", nick);
73+
if (user && real) raw(s, "USER %s - - :%s\r\n", user, real);
74+
if (user && !real && nick) raw(s, "USER %s - - :%s\r\n", user, nick);
75+
if (!user && !real && nick) raw(s, "USER %s - - :%s\r\n", nick, nick);
76+
if (pass) raw(s, "PASS %s\r\n", pass);
7877

7978
fcntl(conn, F_SETFL, O_NONBLOCK);
8079
}
@@ -107,32 +106,32 @@ printw(const char *format, ...) {
107106
}
108107

109108
static void
110-
pars(int sl, char *buf) {
109+
pars(int sl, char *s) {
111110

112111
int len, i, o = -1;
113112
char buf_c[BUFF + 1], ltr[200], cha[50], nic[200], hos[200], \
114113
usr[200], cmd[200], msg[200], pre[200];
115114

116115
for (i = 0; i < sl; i++) {
117116
o++;
118-
buf_c[o] = buf[i];
117+
buf_c[o] = s[i];
119118

120-
if ((i > 0 && buf[i] == '\n' && buf[i - 1] == '\r') || o == BUFF) {
119+
if ((i > 0 && s[i] == '\n' && s[i - 1] == '\r') || o == BUFF) {
121120
buf_c[o + 1] = '\0';
122121
o = -1;
123122

124123
if (verb) printf(">> %s", buf_c);
125124

126125
if (!strncmp(buf_c, "PING", 4)) {
127126
buf_c[1] = 'O';
128-
raw(buf_c);
127+
raw(s, buf_c);
129128
}
130129

131130
else if (buf_c[0] == ':') {
132131
sscanf(buf_c, ":%[^ ] %[^:]:%[^\r]", pre, cmd, msg);
133132
sscanf(pre, "%[^!]!%[^@]@%s", nic, usr, hos);
134133
sscanf(cmd, "%[^#& ]%s", ltr, cha);
135-
if (!strncmp(ltr, "001", 3)) raw("JOIN #%s\r\n", chan);
134+
if (!strncmp(ltr, "001", 3)) raw(s, "JOIN #%s\r\n", chan);
136135

137136
if (!strncmp(ltr, "QUIT", 4)) {
138137
printw("%*.*s \x1b[34;1m%s\x1b[0m\n", gutl, gutl, "<--", nic);
@@ -187,14 +186,15 @@ main(int argc, char **argv) {
187186
if (pid == 0) {
188187
int sl, i;
189188
char u[BUFF];
189+
char s[BUFF];
190190

191-
con();
191+
con(s);
192192

193-
while ((sl = read(conn, sbuf, BUFF))) {
194-
pars(sl, sbuf);
193+
while ((sl = read(conn, s, BUFF))) {
194+
pars(sl, s);
195195
if (read(fd[0], u, BUFF) > 0) {
196196
for (i = 0; u[i] != '\n'; i++) continue;
197-
if (u[0] != ':') raw("%-*.*s\r\n", i, i, u);
197+
if (u[0] != ':') raw(s, "%-*.*s\r\n", i, i, u);
198198
}
199199
}
200200
printf("%*s<<press RETURN key to exit>>", gutl+2, "");

0 commit comments

Comments
 (0)