Changeset 24b8bbb for irc_commands.c


Ignore:
Timestamp:
2010-04-12T00:06:49Z (9 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
89c11e7
Parents:
e21c0f8
Message:

Start handling CTCPs, in a saner way than before.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • irc_commands.c

    re21c0f8 r24b8bbb  
    255255        {
    256256                irc_send_num( irc, 412, ":No text to send" );
    257         }
    258         else if( irc_channel_name_ok( cmd[1] ) &&
    259                  ( ic = irc_channel_by_name( irc, cmd[1] ) ) )
     257                return;
     258        }
     259       
     260        /* Don't treat CTCP actions as real CTCPs, just convert them right now. */
     261        if( g_strncasecmp( cmd[2], "\001ACTION", 7 ) == 0 )
     262        {
     263                cmd[2] += 4;
     264                strcpy( cmd[2], "/me" );
     265                if( cmd[2][strlen(cmd[2])-1] == '\001' )
     266                        cmd[2][strlen(cmd[2])-1] = '\0';
     267        }
     268       
     269        if( irc_channel_name_ok( cmd[1] ) &&
     270            ( ic = irc_channel_by_name( irc, cmd[1] ) ) )
    260271        {
    261272                if( ic->f->privmsg )
     
    264275        else if( ( iu = irc_user_by_name( irc, cmd[1] ) ) )
    265276        {
    266                 if( iu->f->privmsg )
     277                if( cmd[2][0] == '\001' )
     278                {
     279                        char **ctcp;
     280                       
     281                        if( iu->f->ctcp == NULL )
     282                                return;
     283                        if( cmd[2][strlen(cmd[2])-1] == '\001' )
     284                                cmd[2][strlen(cmd[2])-1] = '\0';
     285                       
     286                        ctcp = split_command_parts( cmd[2] + 1 );
     287                        iu->f->ctcp( iu, ctcp );
     288                }
     289                else if( iu->f->privmsg )
    267290                        iu->f->privmsg( iu, cmd[2] );
    268291        }
Note: See TracChangeset for help on using the changeset viewer.