Skip to content

Commit c9a215d

Browse files
committed
cleaned up command option switch
1 parent 2faed06 commit c9a215d

File tree

1 file changed

+19
-42
lines changed

1 file changed

+19
-42
lines changed

kirc.c

Lines changed: 19 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ kbhit(void) {
3232
tcgetattr(0, &term);
3333
fd_set fds;
3434
struct timespec ts = {0};
35-
3635
struct termios term2 = term;
3736

3837
term2.c_lflag &= ~ICANON;
@@ -76,7 +75,6 @@ con(void) {
7675
fcntl(conn, F_SETFL, O_NONBLOCK);
7776
}
7877

79-
/* printf, using hanging indent and greedy algortihm for word wrapping */
8078
static void
8179
printw(const char *format, ...) {
8280

@@ -87,11 +85,9 @@ printw(const char *format, ...) {
8785
va_start(argptr, format);
8886
vsnprintf(line, BUFF + 1, format, argptr);
8987
va_end(argptr);
90-
/* need to pad first tok since strtok removes duplicate whitespace */
9188
for (i = 0; isspace(line[i]); i++) printf("%c", line[i]);
9289

9390
s = cmax + gutl - (i - 1);
94-
//s = cmax - (i - 1);
9591

9692
for(tok = strtok(&line[i], " "); tok != NULL; tok = strtok(NULL, " ")) {
9793
len = strlen(tok);
@@ -109,11 +105,11 @@ printw(const char *format, ...) {
109105
static void
110106
pars(int sl, char *buf) {
111107

112-
char buf_c[BUFF + 1], ltr[200], cha[200], nic[200], hos[200], \
108+
int len, i, o = -1;
109+
char buf_c[BUFF + 1], ltr[200], cha[50], nic[200], hos[200], \
113110
usr[200], cmd[200], msg[200], pre[200];
114-
int o = -1;
115111

116-
for (int i = 0; i < sl; i++) {
112+
for (i = 0; i < sl; i++) {
117113
o++;
118114
buf_c[o] = buf[i];
119115

@@ -141,9 +137,9 @@ pars(int sl, char *buf) {
141137
printw("%*.*s \x1b[32;1m%s\x1b[0m\n", gutl, gutl, "-->", nic);
142138
}
143139
else {
140+
len = strlen(nic);
144141
printw("%*s\x1b[33;1m%-.*s\x1b[0m %s\n", \
145-
gutl-(strlen(nic) <= gutl ? strlen(nic) : gutl), \
146-
"", gutl, nic, msg);
142+
gutl-(len <= gutl ? len : gutl), "", gutl, nic, msg);
147143
}
148144
}
149145
}
@@ -195,10 +191,10 @@ main(int argc, char **argv) {
195191
if (u[0] != ':') raw("%-*.*s\r\n", i, i, u);
196192
}
197193
}
198-
printf("%*s \x1b[31mpress <RETURN> key to exit\x1b[0m\n", gutl, " ");
194+
printf("%*s press <RETURN> key to exit", gutl, " ");
199195
}
200196
else {
201-
char usrin[cmax], val1[cmax], val2[20];
197+
char usrin[cmax], v1[cmax], v2[20];
202198
struct termios tp, save;
203199

204200
tcgetattr(STDIN_FILENO, &tp);
@@ -215,40 +211,21 @@ main(int argc, char **argv) {
215211
tcsetattr(STDIN_FILENO, TCSANOW, &save);
216212

217213
if (usrin[0] == ':') {
214+
if (sscanf(usrin, ":%*[M] %s %[^\n]\n", v2, v1) != 3) {
215+
sscanf(usrin, ":%*[njpm] %[^\n]\n", v1);
216+
}
218217
switch (usrin[1]) {
219-
case 'q':
220-
dprintf(fd[1],"quit\n");
221-
break;
222-
case 'm':
223-
sscanf(usrin, ":m %[^\n]\n", val1);
224-
dprintf(fd[1], "privmsg #%s :%s\n", chan, val1);
225-
break;
226-
case 'n':
227-
sscanf(usrin, ":n %[^\n]\n", val1);
228-
dprintf(fd[1], "privmsg nickserv :%s\n", val1);
229-
break;
230-
case 'j':
231-
sscanf(usrin, ":j %[^\n]\n", val1);
232-
dprintf(fd[1], "join %s\n", val1);
233-
break;
234-
case 'p':
235-
sscanf(usrin, ":p %[^\n]\n", val1);
236-
dprintf(fd[1], "part %s\n", val1);
237-
break;
238-
case 'M':
239-
sscanf(usrin, ":M %s %[^\n]\n", val2, val1);
240-
dprintf(fd[1], "privmsg %s :%s\n", val2, val1);
241-
break;
242-
case '\n':
243-
break;
244-
default:
245-
printf("\x1b[31munknown ':%c' \x1b[0m\n", usrin[1]);
246-
break;
218+
case 'q': dprintf(fd[1], "quit\n"); break;
219+
case 'j': dprintf(fd[1], "join %s\n", v1); break;
220+
case 'p': dprintf(fd[1], "part %s\n", v1); break;
221+
case 'm': dprintf(fd[1], "privmsg #%s :%s\n", chan, v1); break;
222+
case 'n': dprintf(fd[1], "privmsg nickserv :%s\n", v1); break;
223+
case 'M': dprintf(fd[1], "privmsg %s :%s\n", v2, v1); break;
224+
case '?': break;
247225
}
248226
}
249-
else {
250-
dprintf(fd[1], "%s", usrin);
251-
}
227+
else dprintf(fd[1], "%s", usrin);
228+
252229
fflush(stdout);
253230
}
254231
}

0 commit comments

Comments
 (0)