Skip to content

Commit 325db06

Browse files
committed
add comments, cleanup readability of source
1 parent fb3ac78 commit 325db06

File tree

1 file changed

+41
-33
lines changed

1 file changed

+41
-33
lines changed

kirc.c

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
/* See LICENSE file for license details. */
12
#define _POSIX_C_SOURCE 200809L
23
#include <ctype.h>
34
#include <stdarg.h>
@@ -11,20 +12,21 @@
1112
#include <sys/wait.h>
1213
#include <termios.h>
1314

14-
#define BUFF 512 /* buffer size (see RFC 2812) */
15-
16-
static int conn; /* socket connection */
17-
static int verb = 0; /* verbose output (e.g. raw stream) */
18-
static int cmax = 80; /* max number of characters per line */
19-
static int gutl = 10; /* max character width of left column */
20-
static char *host = "irc.freenode.org"; /* irc host address */
21-
static char *chan = "kisslinux"; /* channel */
22-
static char *port = "6667"; /* port */
23-
static char *nick = NULL; /* nickname */
24-
static char *pass = NULL; /* server password */
25-
static char *user = NULL; /* server username */
26-
static char *real = NULL; /* real name */
27-
15+
#define BUFF 512 /* buffer size (see RFC 2812) */
16+
17+
static int conn; /* socket connection */
18+
static int verb = 0; /* verbose output (e.g. raw stream) */
19+
static int cmax = 80; /* max number of chars per line */
20+
static int gutl = 10; /* max char width of left column */
21+
static char * host = "irc.freenode.org"; /* irc host address */
22+
static char * chan = "kisslinux"; /* channel */
23+
static char * port = "6667"; /* server port */
24+
static char * nick = NULL; /* nickname */
25+
static char * pass = NULL; /* server password */
26+
static char * user = NULL; /* server user name */
27+
static char * real = NULL; /* server user real name */
28+
29+
/* wait for keyboard press to interrupt stream */
2830
static int
2931
kbhit(void) {
3032

@@ -45,6 +47,24 @@ kbhit(void) {
4547
return byteswaiting > 0;
4648
}
4749

50+
/* handle keyboard strokes for command input */
51+
static char *
52+
input_handler(size_t size) {
53+
54+
char *usrin = malloc(sizeof(char) * (size + 1));
55+
struct termios tp, save;
56+
57+
tcgetattr(STDIN_FILENO, &tp);
58+
save = tp;
59+
tp.c_cc[VERASE] = 127;
60+
tcsetattr(STDIN_FILENO, TCSANOW, &tp);
61+
fgets(usrin, size, stdin);
62+
tcsetattr(STDIN_FILENO, TCSANOW, &save);
63+
64+
return usrin;
65+
}
66+
67+
/* send command to irc server */
4868
static void
4969
raw(char *s, char *fmt, ...) {
5070

@@ -57,8 +77,9 @@ raw(char *s, char *fmt, ...) {
5777
write(conn, s, strlen(s));
5878
}
5979

80+
/* initial irc server connection */
6081
static void
61-
con(char *s) {
82+
irc_init(char *s) {
6283

6384
struct addrinfo *res, hints = {
6485
.ai_family = AF_INET,
@@ -78,6 +99,7 @@ con(char *s) {
7899
fcntl(conn, F_SETFL, O_NONBLOCK);
79100
}
80101

102+
/* print formatted irc stream with word wrap and hanging indent */
81103
static void
82104
printw(const char *format, ...) {
83105

@@ -105,8 +127,9 @@ printw(const char *format, ...) {
105127
}
106128
}
107129

130+
/* parse irc stream */
108131
static void
109-
pars(int sl, char *s) {
132+
parser(int sl, char *s) {
110133

111134
int len, i, o = -1;
112135
char buf_c[BUFF + 1], ltr[200], cha[50], nic[200], hos[200], \
@@ -149,21 +172,6 @@ pars(int sl, char *s) {
149172
}
150173
}
151174

152-
static char *
153-
input_handler(size_t size) {
154-
155-
char *usrin = malloc(sizeof(char) * (size + 1));
156-
struct termios tp, save;
157-
158-
tcgetattr(STDIN_FILENO, &tp);
159-
save = tp;
160-
tp.c_cc[VERASE] = 127;
161-
tcsetattr(STDIN_FILENO, TCSANOW, &tp);
162-
fgets(usrin, size, stdin);
163-
tcsetattr(STDIN_FILENO, TCSANOW, &save);
164-
return usrin;
165-
}
166-
167175
int
168176
main(int argc, char **argv) {
169177

@@ -202,10 +210,10 @@ main(int argc, char **argv) {
202210
int sl, i;
203211
char u[BUFF], s[BUFF];
204212

205-
con(s);
213+
irc_init(s);
206214

207215
while ((sl = read(conn, s, BUFF))) {
208-
pars(sl, s);
216+
parser(sl, s);
209217
if (read(fd[0], u, BUFF) > 0) {
210218
for (i = 0; u[i] != '\n'; i++) continue;
211219
if (u[0] != ':') raw(s, "%-*.*s\r\n", i, i, u);

0 commit comments

Comments
 (0)