Skip to content

Commit e062406

Browse files
committed
refactoring and cleanup
1 parent 4ed5ca8 commit e062406

File tree

1 file changed

+29
-25
lines changed

1 file changed

+29
-25
lines changed

kirc.c

Lines changed: 29 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -78,19 +78,20 @@ printw(const char *format, ...)
7878
{
7979
int s1 = 0, s2, i, o;
8080
va_list argptr;
81-
char *line = malloc(sizeof(char) * (BUFF + 1));
81+
char line[BUFF + 1];
8282
va_start(argptr, format);
8383
vsnprintf(line, BUFF + 1, format, argptr);
84-
if (strlen(line) <= CMAX) printf(line);
84+
va_end(argptr);
85+
if (strlen(line) <= CMAX) printf("%s", line);
8586
else if (strlen(line) > CMAX)
8687
{
8788

88-
for (i = 0; i < CMAX; i++)
89-
{
89+
for (i = 0; i < CMAX; i++)
90+
{
9091
if (line[i] == ' ') s1 = i;
91-
if (i == CMAX - 1) printf("%-*.*s\n", s1, s1, line);
92-
}
93-
s2 = o = s1;
92+
if (i == CMAX - 1) printf("%-*.*s\n", s1, s1, line);
93+
}
94+
s2 = o = s1;
9495
for (i = s1; line[i] != '\0'; i++)
9596
{
9697
if (line[i] == ' ') s2 = i;
@@ -99,14 +100,13 @@ printw(const char *format, ...)
99100
printf("%*s %-*.*s\n", GUTL, " ", s2 - o, s2 - o, &line[o + 1]);
100101
o = i = s2;
101102
}
102-
else if (line[i + 1] == '\0')
103+
else if (line[i + 1] == '\0')
103104
{
104105
printf("%*s %-*.*s", GUTL, " ", i - o, i - o, &line[o + 1]);
105106
}
106107
}
107108
}
108-
va_end(argptr);
109-
free(line);
109+
110110
}
111111

112112
static void
@@ -166,20 +166,24 @@ pars(int sl, char *buf)
166166
int
167167
main(int argc, char **argv)
168168
{
169-
extern char *optarg;
170-
extern int optind, optopt;
171169
int fd[2], cval;
172170

173171
while ((cval = getopt(argc, argv, "s:p:n:k:c:vV")) != -1)
174172
{
175173
switch (cval)
176174
{
177-
case 'v' : printf("kirc 0.0.1\n"); break;
178-
case 'V' : verb = 1; break;
179-
case 's' : host = optarg; break;
180-
case 'p' : port = optarg; break;
181-
case 'n' : nick = optarg; break;
182-
case 'c' : chan = optarg; break;
175+
case 'v' : printf("kirc 0.0.1\n"); break;
176+
case 'V' : verb = 1; break;
177+
case 's' : host = optarg; break;
178+
case 'p' : port = optarg; break;
179+
case 'n' : nick = optarg; break;
180+
case 'c' : chan = optarg; break;
181+
case '?' :
182+
fprintf(stderr, "Unrecognized option: -%c\n", optopt);
183+
break;
184+
case ':' :
185+
fprintf(stderr, "-%c requires and operand\n", optopt);
186+
break;
183187
}
184188
}
185189

@@ -230,18 +234,18 @@ main(int argc, char **argv)
230234
switch (cmd)
231235
{
232236
case 'q':
233-
snprintf(usrin, CMAX, "quit");
237+
write(fd[1], "quit", sizeof("quit"));
234238
break;
235239
case 'm':
236-
while (isspace(*cmd_val))
237-
cmd_val++;
238-
cmd_val = strdup(cmd_val);
239-
snprintf(usrin, CMAX, "privmsg #%s :%s", chan, cmd_val);
240-
free(cmd_val);
240+
while (isspace(*cmd_val)) cmd_val++;
241+
dprintf(fd[1], "privmsg #%s :%s", chan, cmd_val);
241242
break;
242243
}
243244
}
244-
write(fd[1], usrin, CMAX);
245+
else
246+
{
247+
write(fd[1], usrin, CMAX);
248+
}
245249
fflush(stdout);
246250
}
247251
}

0 commit comments

Comments
 (0)