3201 |
} |
} |
3202 |
|
|
3203 |
/* |
/* |
3204 |
|
* irc_cmd_recv_367: '367' command received (banlist) |
3205 |
|
*/ |
3206 |
|
|
3207 |
|
int |
3208 |
|
irc_cmd_recv_367 (t_irc_server *server, char *host, char *arguments) |
3209 |
|
{ |
3210 |
|
char *pos_channel, *pos_ban, *pos_user, *pos_date, *pos; |
3211 |
|
t_irc_channel *ptr_channel; |
3212 |
|
t_gui_buffer *buffer; |
3213 |
|
time_t datetime; |
3214 |
|
|
3215 |
|
/* make gcc happy */ |
3216 |
|
(void) host; |
3217 |
|
|
3218 |
|
/* look for channel */ |
3219 |
|
pos_channel = strchr (arguments, ' '); |
3220 |
|
if (!pos_channel) |
3221 |
|
{ |
3222 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3223 |
|
gui_printf_nolog (server->buffer, |
3224 |
|
_("%s cannot parse \"%s\" command\n"), |
3225 |
|
WEECHAT_ERROR, "367"); |
3226 |
|
return -1; |
3227 |
|
} |
3228 |
|
pos_channel[0] = '\0'; |
3229 |
|
pos_channel++; |
3230 |
|
while (pos_channel[0] == ' ') |
3231 |
|
pos_channel++; |
3232 |
|
|
3233 |
|
/* look for ban mask */ |
3234 |
|
pos_ban = strchr (pos_channel, ' '); |
3235 |
|
if (!pos_ban) |
3236 |
|
{ |
3237 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3238 |
|
gui_printf_nolog (server->buffer, |
3239 |
|
_("%s cannot parse \"%s\" command\n"), |
3240 |
|
WEECHAT_ERROR, "367"); |
3241 |
|
return -1; |
3242 |
|
} |
3243 |
|
pos_ban[0] = '\0'; |
3244 |
|
pos_ban++; |
3245 |
|
while (pos_ban[0] == ' ') |
3246 |
|
pos_ban++; |
3247 |
|
|
3248 |
|
/* look for user who set ban */ |
3249 |
|
pos_user = strchr (pos_ban, ' '); |
3250 |
|
if (!pos_user) |
3251 |
|
{ |
3252 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3253 |
|
gui_printf_nolog (server->buffer, |
3254 |
|
_("%s cannot parse \"%s\" command\n"), |
3255 |
|
WEECHAT_ERROR, "367"); |
3256 |
|
return -1; |
3257 |
|
} |
3258 |
|
pos_user[0] = '\0'; |
3259 |
|
pos_user++; |
3260 |
|
while (pos_user[0] == ' ') |
3261 |
|
pos_user++; |
3262 |
|
|
3263 |
|
/* look for date/time */ |
3264 |
|
pos_date = strchr (pos_user, ' '); |
3265 |
|
if (!pos_date) |
3266 |
|
{ |
3267 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3268 |
|
gui_printf_nolog (server->buffer, |
3269 |
|
_("%s cannot parse \"%s\" command\n"), |
3270 |
|
WEECHAT_ERROR, "367"); |
3271 |
|
return -1; |
3272 |
|
} |
3273 |
|
pos_date[0] = '\0'; |
3274 |
|
pos_date++; |
3275 |
|
while (pos_date[0] == ' ') |
3276 |
|
pos_date++; |
3277 |
|
|
3278 |
|
if (!pos_date || !pos_date[0]) |
3279 |
|
{ |
3280 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3281 |
|
gui_printf_nolog (server->buffer, |
3282 |
|
_("%s cannot parse \"%s\" command\n"), |
3283 |
|
WEECHAT_ERROR, "367"); |
3284 |
|
return -1; |
3285 |
|
} |
3286 |
|
|
3287 |
|
ptr_channel = channel_search (server, pos_channel); |
3288 |
|
buffer = (ptr_channel) ? ptr_channel->buffer : server->buffer; |
3289 |
|
|
3290 |
|
irc_display_prefix (buffer, PREFIX_INFO); |
3291 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, "["); |
3292 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_CHANNEL, "%s", pos_channel); |
3293 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, "] "); |
3294 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_HOST, "%s ", pos_ban); |
3295 |
|
gui_printf (buffer, _("banned by")); |
3296 |
|
pos = strchr (pos_user, '!'); |
3297 |
|
if (pos) |
3298 |
|
{ |
3299 |
|
pos[0] = '\0'; |
3300 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_NICK, " %s ", pos_user); |
3301 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, "("); |
3302 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_HOST, "%s", pos + 1); |
3303 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, ")"); |
3304 |
|
} |
3305 |
|
else |
3306 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_NICK, " %s", pos_user); |
3307 |
|
datetime = (time_t)(atol (pos_date)); |
3308 |
|
gui_printf_nolog (buffer, ", %s", ctime (&datetime)); |
3309 |
|
|
3310 |
|
return 0; |
3311 |
|
} |
3312 |
|
|
3313 |
|
/* |
3314 |
|
* irc_cmd_recv_368: '368' command received (end of banlist) |
3315 |
|
*/ |
3316 |
|
|
3317 |
|
int |
3318 |
|
irc_cmd_recv_368 (t_irc_server *server, char *host, char *arguments) |
3319 |
|
{ |
3320 |
|
char *pos_channel, *pos_msg; |
3321 |
|
t_irc_channel *ptr_channel; |
3322 |
|
t_gui_buffer *buffer; |
3323 |
|
|
3324 |
|
/* make gcc happy */ |
3325 |
|
(void) host; |
3326 |
|
|
3327 |
|
pos_channel = strchr (arguments, ' '); |
3328 |
|
if (!pos_channel) |
3329 |
|
{ |
3330 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3331 |
|
gui_printf_nolog (server->buffer, |
3332 |
|
_("%s cannot parse \"%s\" command\n"), |
3333 |
|
WEECHAT_ERROR, "368"); |
3334 |
|
return -1; |
3335 |
|
} |
3336 |
|
pos_channel[0] = '\0'; |
3337 |
|
pos_channel++; |
3338 |
|
while (pos_channel[0] == ' ') |
3339 |
|
pos_channel++; |
3340 |
|
|
3341 |
|
pos_msg = strchr (pos_channel, ' '); |
3342 |
|
if (!pos_msg) |
3343 |
|
{ |
3344 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3345 |
|
gui_printf_nolog (server->buffer, |
3346 |
|
_("%s cannot parse \"%s\" command\n"), |
3347 |
|
WEECHAT_ERROR, "368"); |
3348 |
|
return -1; |
3349 |
|
} |
3350 |
|
pos_msg[0] = '\0'; |
3351 |
|
pos_msg++; |
3352 |
|
while (pos_msg[0] == ' ') |
3353 |
|
pos_msg++; |
3354 |
|
if (pos_msg[0] == ':') |
3355 |
|
pos_msg++; |
3356 |
|
|
3357 |
|
ptr_channel = channel_search (server, pos_channel); |
3358 |
|
buffer = (ptr_channel) ? ptr_channel->buffer : server->buffer; |
3359 |
|
|
3360 |
|
irc_display_prefix (buffer, PREFIX_INFO); |
3361 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, "["); |
3362 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_CHANNEL, "%s", pos_channel); |
3363 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, "] "); |
3364 |
|
gui_printf_nolog (buffer, "%s\n", pos_msg); |
3365 |
|
|
3366 |
|
return 0; |
3367 |
|
} |
3368 |
|
|
3369 |
|
/* |
3370 |
* irc_cmd_recv_433: '433' command received (nickname already in use) |
* irc_cmd_recv_433: '433' command received (nickname already in use) |
3371 |
*/ |
*/ |
3372 |
|
|
3436 |
return irc_cmd_recv_error (server, host, arguments); |
return irc_cmd_recv_error (server, host, arguments); |
3437 |
return 0; |
return 0; |
3438 |
} |
} |
3439 |
|
|
3440 |
|
/* |
3441 |
|
* irc_cmd_recv_438: '438' command received (not authorized to change nickname) |
3442 |
|
*/ |
3443 |
|
|
3444 |
|
int |
3445 |
|
irc_cmd_recv_438 (t_irc_server *server, char *host, char *arguments) |
3446 |
|
{ |
3447 |
|
char *pos, *pos2; |
3448 |
|
|
3449 |
|
/* make gcc happy */ |
3450 |
|
(void) server; |
3451 |
|
(void) host; |
3452 |
|
|
3453 |
|
pos = strchr (arguments, ' '); |
3454 |
|
irc_display_prefix (server->buffer, PREFIX_SERVER); |
3455 |
|
if (pos) |
3456 |
|
{ |
3457 |
|
pos[0] = '\0'; |
3458 |
|
pos++; |
3459 |
|
|
3460 |
|
pos2 = strstr (pos, " :"); |
3461 |
|
if (pos2) |
3462 |
|
{ |
3463 |
|
pos2[0] = '\0'; |
3464 |
|
pos2 += 2; |
3465 |
|
gui_printf (server->buffer, "%s (%s => %s)\n", pos2, arguments, pos); |
3466 |
|
} |
3467 |
|
else |
3468 |
|
gui_printf (server->buffer, "%s (%s)\n", pos, arguments); |
3469 |
|
} |
3470 |
|
else |
3471 |
|
gui_printf (server->buffer, "%s\n", arguments); |
3472 |
|
|
3473 |
|
return 0; |
3474 |
|
} |