574 |
parm = pos; |
parm = pos; |
575 |
} |
} |
576 |
break; |
break; |
577 |
|
case 'e': |
578 |
|
pos = NULL; |
579 |
|
if (parm) |
580 |
|
{ |
581 |
|
pos = strchr (parm, ' '); |
582 |
|
if (pos) |
583 |
|
pos[0] = '\0'; |
584 |
|
} |
585 |
|
if (nick_host) |
586 |
|
irc_display_mode (ptr_channel->buffer, |
587 |
|
channel_name, set_flag, "e", nick_host, |
588 |
|
(set_flag == '+') ? |
589 |
|
_("sets exception on") : |
590 |
|
_("removes exception on"), |
591 |
|
(parm) ? parm : NULL); |
592 |
|
|
593 |
|
/* look for next parameter */ |
594 |
|
if (parm && pos) |
595 |
|
{ |
596 |
|
pos++; |
597 |
|
while (pos[0] == ' ') |
598 |
|
pos++; |
599 |
|
parm = pos; |
600 |
|
} |
601 |
|
break; |
602 |
|
case 'f': |
603 |
|
pos = NULL; |
604 |
|
if (parm) |
605 |
|
{ |
606 |
|
pos = strchr (parm, ' '); |
607 |
|
if (pos) |
608 |
|
pos[0] = '\0'; |
609 |
|
} |
610 |
|
if (nick_host) |
611 |
|
irc_display_mode (ptr_channel->buffer, |
612 |
|
channel_name, set_flag, "f", nick_host, |
613 |
|
(set_flag == '+') ? |
614 |
|
_("sets mode +f") : |
615 |
|
_("removes mode +f"), |
616 |
|
(parm) ? parm : NULL); |
617 |
|
|
618 |
|
/* look for next parameter */ |
619 |
|
if (parm && pos) |
620 |
|
{ |
621 |
|
pos++; |
622 |
|
while (pos[0] == ' ') |
623 |
|
pos++; |
624 |
|
parm = pos; |
625 |
|
} |
626 |
|
break; |
627 |
case 'h': |
case 'h': |
628 |
pos = NULL; |
pos = NULL; |
629 |
if (parm) |
if (parm) |
3827 |
return 0; |
return 0; |
3828 |
} |
} |
3829 |
|
|
3830 |
|
/* |
3831 |
|
* irc_cmd_recv_348: '348' command received (channel exception list) |
3832 |
|
*/ |
3833 |
|
|
3834 |
|
int |
3835 |
|
irc_cmd_recv_348 (t_irc_server *server, char *host, char *nick, char *arguments) |
3836 |
|
{ |
3837 |
|
char *pos_channel, *pos_exception, *pos_user, *pos_date, *pos; |
3838 |
|
t_irc_channel *ptr_channel; |
3839 |
|
t_gui_buffer *buffer; |
3840 |
|
time_t datetime; |
3841 |
|
|
3842 |
|
/* make gcc happy */ |
3843 |
|
(void) nick; |
3844 |
|
|
3845 |
|
/* look for channel */ |
3846 |
|
pos_channel = strchr (arguments, ' '); |
3847 |
|
if (!pos_channel) |
3848 |
|
{ |
3849 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3850 |
|
gui_printf_nolog (server->buffer, |
3851 |
|
_("%s cannot parse \"%s\" command\n"), |
3852 |
|
WEECHAT_ERROR, "348"); |
3853 |
|
return -1; |
3854 |
|
} |
3855 |
|
pos_channel[0] = '\0'; |
3856 |
|
pos_channel++; |
3857 |
|
while (pos_channel[0] == ' ') |
3858 |
|
pos_channel++; |
3859 |
|
|
3860 |
|
/* look for exception mask */ |
3861 |
|
pos_exception = strchr (pos_channel, ' '); |
3862 |
|
if (!pos_exception) |
3863 |
|
{ |
3864 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3865 |
|
gui_printf_nolog (server->buffer, |
3866 |
|
_("%s cannot parse \"%s\" command\n"), |
3867 |
|
WEECHAT_ERROR, "348"); |
3868 |
|
return -1; |
3869 |
|
} |
3870 |
|
pos_exception[0] = '\0'; |
3871 |
|
pos_exception++; |
3872 |
|
while (pos_exception[0] == ' ') |
3873 |
|
pos_exception++; |
3874 |
|
|
3875 |
|
/* look for user who set exception */ |
3876 |
|
pos_user = strchr (pos_exception, ' '); |
3877 |
|
if (!pos_user) |
3878 |
|
{ |
3879 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3880 |
|
gui_printf_nolog (server->buffer, |
3881 |
|
_("%s cannot parse \"%s\" command\n"), |
3882 |
|
WEECHAT_ERROR, "348"); |
3883 |
|
return -1; |
3884 |
|
} |
3885 |
|
pos_user[0] = '\0'; |
3886 |
|
pos_user++; |
3887 |
|
while (pos_user[0] == ' ') |
3888 |
|
pos_user++; |
3889 |
|
|
3890 |
|
/* look for date/time */ |
3891 |
|
pos_date = strchr (pos_user, ' '); |
3892 |
|
if (!pos_date) |
3893 |
|
{ |
3894 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3895 |
|
gui_printf_nolog (server->buffer, |
3896 |
|
_("%s cannot parse \"%s\" command\n"), |
3897 |
|
WEECHAT_ERROR, "348"); |
3898 |
|
return -1; |
3899 |
|
} |
3900 |
|
pos_date[0] = '\0'; |
3901 |
|
pos_date++; |
3902 |
|
while (pos_date[0] == ' ') |
3903 |
|
pos_date++; |
3904 |
|
|
3905 |
|
if (!pos_date || !pos_date[0]) |
3906 |
|
{ |
3907 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3908 |
|
gui_printf_nolog (server->buffer, |
3909 |
|
_("%s cannot parse \"%s\" command\n"), |
3910 |
|
WEECHAT_ERROR, "348"); |
3911 |
|
return -1; |
3912 |
|
} |
3913 |
|
|
3914 |
|
ptr_channel = channel_search (server, pos_channel); |
3915 |
|
buffer = (ptr_channel) ? ptr_channel->buffer : server->buffer; |
3916 |
|
|
3917 |
|
command_ignored |= ignore_check (host, "348", pos_channel, server->name); |
3918 |
|
|
3919 |
|
if (!command_ignored) |
3920 |
|
{ |
3921 |
|
irc_display_prefix (buffer, PREFIX_INFO); |
3922 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, "["); |
3923 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_CHANNEL, "%s", pos_channel); |
3924 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, "] "); |
3925 |
|
gui_printf (buffer, _("exception")); |
3926 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_HOST, " %s ", pos_exception); |
3927 |
|
gui_printf (buffer, _("by")); |
3928 |
|
pos = strchr (pos_user, '!'); |
3929 |
|
if (pos) |
3930 |
|
{ |
3931 |
|
pos[0] = '\0'; |
3932 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_NICK, " %s ", pos_user); |
3933 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, "("); |
3934 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_HOST, "%s", pos + 1); |
3935 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, ")"); |
3936 |
|
} |
3937 |
|
else |
3938 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_NICK, " %s", pos_user); |
3939 |
|
datetime = (time_t)(atol (pos_date)); |
3940 |
|
gui_printf_nolog (buffer, ", %s", ctime (&datetime)); |
3941 |
|
} |
3942 |
|
return 0; |
3943 |
|
} |
3944 |
|
|
3945 |
|
/* |
3946 |
|
* irc_cmd_recv_349: '349' command received (end of channel exception list) |
3947 |
|
*/ |
3948 |
|
|
3949 |
|
int |
3950 |
|
irc_cmd_recv_349 (t_irc_server *server, char *host, char *nick, char *arguments) |
3951 |
|
{ |
3952 |
|
char *pos_channel, *pos_msg; |
3953 |
|
t_irc_channel *ptr_channel; |
3954 |
|
t_gui_buffer *buffer; |
3955 |
|
|
3956 |
|
/* make gcc happy */ |
3957 |
|
(void) nick; |
3958 |
|
|
3959 |
|
pos_channel = strchr (arguments, ' '); |
3960 |
|
if (!pos_channel) |
3961 |
|
{ |
3962 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3963 |
|
gui_printf_nolog (server->buffer, |
3964 |
|
_("%s cannot parse \"%s\" command\n"), |
3965 |
|
WEECHAT_ERROR, "349"); |
3966 |
|
return -1; |
3967 |
|
} |
3968 |
|
pos_channel[0] = '\0'; |
3969 |
|
pos_channel++; |
3970 |
|
while (pos_channel[0] == ' ') |
3971 |
|
pos_channel++; |
3972 |
|
|
3973 |
|
pos_msg = strchr (pos_channel, ' '); |
3974 |
|
if (!pos_msg) |
3975 |
|
{ |
3976 |
|
irc_display_prefix (server->buffer, PREFIX_ERROR); |
3977 |
|
gui_printf_nolog (server->buffer, |
3978 |
|
_("%s cannot parse \"%s\" command\n"), |
3979 |
|
WEECHAT_ERROR, "349"); |
3980 |
|
return -1; |
3981 |
|
} |
3982 |
|
pos_msg[0] = '\0'; |
3983 |
|
pos_msg++; |
3984 |
|
while (pos_msg[0] == ' ') |
3985 |
|
pos_msg++; |
3986 |
|
if (pos_msg[0] == ':') |
3987 |
|
pos_msg++; |
3988 |
|
|
3989 |
|
ptr_channel = channel_search (server, pos_channel); |
3990 |
|
buffer = (ptr_channel) ? ptr_channel->buffer : server->buffer; |
3991 |
|
|
3992 |
|
command_ignored |= ignore_check (host, "349", pos_channel, server->name); |
3993 |
|
|
3994 |
|
if (!command_ignored) |
3995 |
|
{ |
3996 |
|
irc_display_prefix (buffer, PREFIX_INFO); |
3997 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, "["); |
3998 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_CHANNEL, "%s", pos_channel); |
3999 |
|
gui_printf_color (buffer, COLOR_WIN_CHAT_DARK, "] "); |
4000 |
|
gui_printf_nolog (buffer, "%s\n", pos_msg); |
4001 |
|
} |
4002 |
|
return 0; |
4003 |
|
} |
4004 |
|
|
4005 |
/* |
/* |
4006 |
* irc_cmd_recv_351: '351' command received (server version) |
* irc_cmd_recv_351: '351' command received (server version) |
4007 |
*/ |
*/ |