Changeset 3611717


Ignore:
Timestamp:
2008-08-31T15:00:35Z (16 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
3b99524
Parents:
d995c9b
Message:

Added auto_join code.

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • chat.c

    rd995c9b r3611717  
    5858       
    5959        s = set_add( &c->set, "auto_join", "false", set_eval_bool, c );
    60         s = set_add( &c->set, "auto_rejoin", "false", set_eval_bool, c );
     60        /* s = set_add( &c->set, "auto_rejoin", "false", set_eval_bool, c ); */
    6161        s = set_add( &c->set, "nick", NULL, NULL, c );
    6262        s->flags |= SET_NULL_OK;
     
    169169                return 0;
    170170}
     171
     172int chat_join( irc_t *irc, struct chat *c )
     173{
     174        struct groupchat *gc;
     175        char *nick = set_getstr( &c->set, "nick" );
     176       
     177        if( nick == NULL )
     178                nick = irc->nick;
     179       
     180        if( ( gc = c->acc->prpl->chat_join( c->acc->ic, c->handle, nick, NULL ) ) )
     181        {
     182                g_free( gc->channel );
     183                gc->channel = g_strdup( c->channel );
     184                return 1;
     185        }
     186       
     187        return 0;
     188}
  • chat.h

    rd995c9b r3611717  
    4343int chat_chancmp( char *a, char *b );
    4444int chat_chanok( char *a );
     45
     46int chat_join( irc_t *irc, struct chat *c );
  • irc_commands.c

    rd995c9b r3611717  
    193193        else if( cmd[1] )
    194194        {
    195                 struct groupchat *gc;
    196195                struct chat *c;
    197196                user_t *u;
     
    205204                if( ( c = chat_bychannel( irc, cmd[1] ) ) )
    206205                {
    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 );
    216                         }
     206                        chat_join( irc, c );
    217207                }
    218208                else
  • protocols/nogaim.c

    rd995c9b r3611717  
    249249void imcb_connected( struct im_connection *ic )
    250250{
     251        irc_t *irc = ic->irc;
     252        struct chat *c;
    251253        user_t *u;
    252254       
     
    271273           exponential backoff timer. */
    272274        ic->acc->auto_reconnect_delay = 0;
     275       
     276        for( c = irc->chatrooms; c; c = c->next )
     277        {
     278                if( c->acc != ic->acc )
     279                        continue;
     280               
     281                if( set_getbool( &c->set, "auto_join" ) )
     282                        chat_join( irc, c );
     283        }
    273284}
    274285
Note: See TracChangeset for help on using the changeset viewer.