/[weechat]/weechat/src/irc/irc-recv.c
ViewVC logotype

Diff of /weechat/src/irc/irc-recv.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.88 by flashcode, Sat Oct 15 12:34:21 2005 UTC revision 1.89 by flashcode, Sun Oct 16 21:46:31 2005 UTC
# Line 574  void irc_get_channel_modes (t_irc_channe Line 574  void irc_get_channel_modes (t_irc_channe
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)
# Line 3777  irc_cmd_recv_345 (t_irc_server *server, Line 3827  irc_cmd_recv_345 (t_irc_server *server,
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   */   */

Legend:
Removed from v.1.88  
changed lines
  Added in v.1.89

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26