Changeset 39f93f0


Ignore:
Timestamp:
2008-08-31T13:42:33Z (16 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
d995c9b
Parents:
0e639f5
Message:

/join can now be used to join chatrooms, join_chat should not be used
anymore. /join should not be used for unnamed groupchats anymore, use
"chat with" instead.

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • chat.c

    r0e639f5 r39f93f0  
    139139int chat_chanok( char *a )
    140140{
    141         if( strchr( "&#", a[0] ) != NULL )
     141        if( strchr( CTYPES, a[0] ) != NULL )
    142142                return nick_ok( a + 1 );
    143143        else
  • irc.c

    r0e639f5 r39f93f0  
    781781        irc_reply( irc,   3, ":%s", IRCD_INFO );
    782782        irc_reply( irc,   4, "%s %s %s %s", irc->myhost, BITLBEE_VERSION, UMODES UMODES_PRIV, CMODES );
    783         irc_reply( irc,   5, "PREFIX=(ov)@+ CHANTYPES=#& CHANMODES=,,,%s NICKLEN=%d NETWORK=BitlBee CASEMAPPING=rfc1459 MAXTARGETS=1 WATCH=128 :are supported by this server", CMODES, MAX_NICK_LENGTH - 1 );
     783        irc_reply( irc,   5, "PREFIX=(ov)@+ CHANTYPES=%s CHANMODES=,,,%s NICKLEN=%d NETWORK=BitlBee "
     784                             "CASEMAPPING=rfc1459 MAXTARGETS=1 WATCH=128 :are supported by this server",
     785                             CTYPES, CMODES, MAX_NICK_LENGTH - 1 );
    784786        irc_motd( irc );
    785787        irc->umode[0] = '\0';
     
    10221024        user_t *u = NULL;
    10231025       
    1024         if( *nick == '#' || *nick == '&' )
     1026        if( strchr( CTYPES, *nick ) )
    10251027        {
    10261028                if( !( c = irc_chat_by_channel( irc, nick ) ) )
  • irc.h

    r0e639f5 r39f93f0  
    3838#define CMODE "t"
    3939#define UMODE "s"
     40#define CTYPES "&#"
    4041
    4142typedef enum
     
    9697
    9798#include "user.h"
    98 // #include "nick.h"
    9999
    100100extern GSList *irc_connection_list;
  • irc_commands.c

    r0e639f5 r39f93f0  
    125125static void irc_cmd_mode( irc_t *irc, char **cmd )
    126126{
    127         if( *cmd[1] == '#' || *cmd[1] == '&' )
     127        if( strchr( CTYPES, *cmd[1] ) )
    128128        {
    129129                if( cmd[2] )
     
    193193        else if( cmd[1] )
    194194        {
    195                 if( ( cmd[1][0] == '#' || cmd[1][0] == '&' ) && cmd[1][1] )
    196                 {
    197                         user_t *u = user_find( irc, cmd[1] + 1 );
    198                        
    199                         if( u && u->ic && u->ic->acc->prpl->chat_with )
    200                         {
    201                                 irc_reply( irc, 403, "%s :Initializing groupchat in a different channel", cmd[1] );
    202                                
    203                                 if( !u->ic->acc->prpl->chat_with( u->ic, u->handle ) )
    204                                 {
    205                                         irc_usermsg( irc, "Could not open a groupchat with %s.", u->nick );
    206                                 }
    207                         }
    208                         else if( u )
    209                         {
    210                                 irc_reply( irc, 403, "%s :Groupchats are not possible with %s", cmd[1], cmd[1]+1 );
    211                         }
    212                         else
    213                         {
    214                                 irc_reply( irc, 403, "%s :No such nick", cmd[1] );
     195                struct groupchat *gc;
     196                struct chat *c;
     197                user_t *u;
     198               
     199                if( strchr( CTYPES, cmd[1][0] ) == NULL || cmd[1][1] == 0 )
     200                {
     201                        irc_reply( irc, 403, "%s :No such channel", cmd[1] );
     202                        return;
     203                }
     204               
     205                if( ( c = chat_bychannel( irc, cmd[1] ) ) )
     206                {
     207                        char *nick = set_getstr( &c->set, "nick" );
     208                       
     209                        if( nick == NULL )
     210                                nick = irc->nick;
     211                       
     212                        if( ( gc = c->acc->prpl->chat_join( c->acc->ic, c->handle, nick, NULL ) ) )
     213                        {
     214                                g_free( gc->channel );
     215                                gc->channel = g_strdup( c->channel );
    215216                        }
    216217                }
  • root_commands.c

    r0e639f5 r39f93f0  
    10511051                cmd_set_real( irc, cmd + 1, cmd_chat_set_findhead );
    10521052        }
     1053        else if( g_strcasecmp( cmd[1], "with" ) == 0 )
     1054        {
     1055                user_t *u;
     1056
     1057                if( !cmd[2] )
     1058                {
     1059                        irc_usermsg( irc, "Not enough parameters given (need %d)", 2 );
     1060                        return;
     1061                }
     1062               
     1063                if( ( u = user_find( irc, cmd[2] ) ) && u->ic && u->ic->acc->prpl->chat_with )
     1064                {
     1065                        if( !u->ic->acc->prpl->chat_with( u->ic, u->handle ) )
     1066                        {
     1067                                irc_usermsg( irc, "(Possible) failure while trying to open "
     1068                                                  "a groupchat with %s.", u->nick );
     1069                        }
     1070                }
     1071                else
     1072                {
     1073                        irc_usermsg( irc, "Can't open a groupchat with %s.", cmd[2] );
     1074                }
     1075        }
    10531076        else
    10541077        {
     
    10841107        if( cmd[3] )
    10851108        {
    1086                 if( cmd[3][0] != '#' && cmd[3][0] != '&' )
     1109                if( strchr( CTYPES, cmd[3][0] ) == NULL )
    10871110                        channel = g_strdup_printf( "&%s", cmd[3] );
    10881111                else
Note: See TracChangeset for help on using the changeset viewer.