/[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.56 by flashcode, Sun Mar 13 09:22:48 2005 UTC revision 1.57 by flashcode, Sun Mar 13 23:36:47 2005 UTC
# Line 3201  irc_cmd_recv_366 (t_irc_server *server, Line 3201  irc_cmd_recv_366 (t_irc_server *server,
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    
# Line 3270  irc_cmd_recv_433 (t_irc_server *server, Line 3436  irc_cmd_recv_433 (t_irc_server *server,
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    }

Legend:
Removed from v.1.56  
changed lines
  Added in v.1.57

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