@@ -22,9 +22,11 @@ static char *host = "irc.freenode.org"; /* irc host address */
22
22
static char * chan = "kisslinux" ; /* channel */
23
23
static char * port = "6667" ; /* port */
24
24
static char * nick = NULL ; /* nickname */
25
+ static char * pass = NULL ; /* password */
25
26
26
27
static int
27
28
kbhit (void ) {
29
+
28
30
int byteswaiting ;
29
31
struct termios term ;
30
32
fd_set fds ;
@@ -45,6 +47,7 @@ kbhit(void) {
45
47
46
48
static void
47
49
raw (char * fmt , ...) {
50
+
48
51
va_list ap ;
49
52
50
53
va_start (ap , fmt );
@@ -58,6 +61,7 @@ raw(char *fmt, ...) {
58
61
59
62
static void
60
63
con (void ) {
64
+
61
65
struct addrinfo * res , hints = {
62
66
.ai_family = AF_INET ,
63
67
.ai_socktype = SOCK_STREAM
@@ -69,6 +73,7 @@ con(void) {
69
73
70
74
if (nick ) raw ("NICK %s\r\n" , nick );
71
75
if (nick ) raw ("USER %s - - :%s\r\n" , nick , nick );
76
+ if (pass ) raw ("PASS %s\r\n" , pass );
72
77
73
78
fcntl (conn , F_SETFL , O_NONBLOCK );
74
79
}
@@ -83,13 +88,17 @@ printw(const char *format, ...) {
83
88
va_start (argptr , format );
84
89
vsnprintf (line , BUFF + 1 , format , argptr );
85
90
va_end (argptr );
91
+
86
92
if (strlen (line ) <= CMAX ) printf ("%s" , line );
87
93
else if (strlen (line ) > CMAX ) {
94
+
88
95
for (i = 0 ; i < CMAX ; i ++ ) {
89
96
if (line [i ] == ' ' ) s1 = i ;
90
97
if (i == CMAX - 1 ) printf ("%-*.*s\n" , s1 , s1 , line );
91
98
}
99
+
92
100
s2 = o = s1 ;
101
+
93
102
for (i = s1 ; line [i ] != '\0' ; i ++ ) {
94
103
if (line [i ] == ' ' ) s2 = i ;
95
104
if ((i - o ) == (CMAX - GUTL )) {
@@ -141,8 +150,7 @@ pars(int sl, char *buf) {
141
150
GUTL , GUTL , "-->" , nic , cha );
142
151
}
143
152
else {
144
- printw ("\x1b[1m%*.*s\x1b[0m %s\n" , \
145
- GUTL , GUTL , nic , msg );
153
+ printw ("\x1b[1m%*.*s\x1b[0m %s\n" , GUTL , GUTL , nic , msg );
146
154
}
147
155
}
148
156
}
@@ -157,11 +165,12 @@ main(int argc, char **argv) {
157
165
while ((cval = getopt (argc , argv , "s:p:n:k:c:vV" )) != -1 ) {
158
166
switch (cval ) {
159
167
case 'v' : printf ("kirc 0.0.1\n" ); break ;
160
- case 'V' : verb = 1 ; break ;
161
- case 's' : host = optarg ; break ;
162
- case 'p' : port = optarg ; break ;
163
- case 'n' : nick = optarg ; break ;
164
- case 'c' : chan = optarg ; break ;
168
+ case 'V' : verb = 1 ; break ;
169
+ case 's' : host = optarg ; break ;
170
+ case 'p' : port = optarg ; break ;
171
+ case 'n' : nick = optarg ; break ;
172
+ case 'k' : pass = optarg ; break ;
173
+ case 'c' : chan = optarg ; break ;
165
174
case '?' : return 1 ;
166
175
}
167
176
}
0 commit comments