Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/nogaim.c

    r3e1ef92c r449a51d  
    9898void register_protocol (struct prpl *p)
    9999{
    100         protocols = g_list_append(protocols, p);
     100        int i;
     101        gboolean refused = global.conf->protocols != NULL;
     102 
     103        for (i = 0; global.conf->protocols && global.conf->protocols[i]; i++)
     104        {
     105                if (g_strcasecmp(p->name, global.conf->protocols[i]) == 0)
     106                        refused = FALSE;
     107        }
     108
     109        if (refused)
     110                log_message(LOGLVL_WARNING, "Protocol %s disabled\n", p->name);
     111        else
     112                protocols = g_list_append(protocols, p);
    101113}
    102114
     
    371383/* list.c */
    372384
    373 void imcb_add_buddy( struct im_connection *ic, char *handle, char *group )
     385void imcb_add_buddy( struct im_connection *ic, const char *handle, const char *group )
    374386{
    375387        user_t *u;
     
    445457}
    446458
    447 void imcb_rename_buddy( struct im_connection *ic, char *handle, char *realname )
     459void imcb_rename_buddy( struct im_connection *ic, const char *handle, const char *realname )
    448460{
    449461        user_t *u = user_findhandle( ic, handle );
     462        char *set;
    450463       
    451464        if( !u || !realname ) return;
     
    460473                        imcb_log( ic, "User `%s' changed name to `%s'", u->nick, u->realname );
    461474        }
    462 }
    463 
    464 void imcb_remove_buddy( struct im_connection *ic, char *handle, char *group )
     475       
     476        set = set_getstr( &ic->acc->set, "nick_source" );
     477        if( strcmp( set, "handle" ) != 0 )
     478        {
     479                char *name = g_strdup( realname );
     480               
     481                if( strcmp( set, "first_name" ) == 0 )
     482                {
     483                        int i;
     484                        for( i = 0; name[i] && !isspace( name[i] ); i ++ ) {}
     485                        name[i] = '\0';
     486                }
     487               
     488                imcb_buddy_nick_hint( ic, handle, name );
     489               
     490                g_free( name );
     491        }
     492}
     493
     494void imcb_remove_buddy( struct im_connection *ic, const char *handle, char *group )
    465495{
    466496        user_t *u;
     
    472502/* Mainly meant for ICQ (and now also for Jabber conferences) to allow IM
    473503   modules to suggest a nickname for a handle. */
    474 void imcb_buddy_nick_hint( struct im_connection *ic, char *handle, char *nick )
     504void imcb_buddy_nick_hint( struct im_connection *ic, const char *handle, const char *nick )
    475505{
    476506        user_t *u = user_findhandle( ic, handle );
     
    617647        oo = u->online;
    618648       
    619         if( u->away )
    620         {
    621                 g_free( u->away );
    622                 u->away = NULL;
    623         }
     649        g_free( u->away );
     650        g_free( u->status_msg );
     651        u->away = u->status_msg = NULL;
    624652       
    625653        if( ( flags & OPT_LOGGED_IN ) && !u->online )
     
    659687                }
    660688        }
    661         /* else waste_any_state_information_for_now(); */
     689        else
     690        {
     691                u->status_msg = g_strdup( message );
     692        }
    662693       
    663694        /* LISPy... */
     
    684715}
    685716
    686 void imcb_buddy_msg( struct im_connection *ic, char *handle, char *msg, uint32_t flags, time_t sent_at )
     717void imcb_buddy_msg( struct im_connection *ic, const char *handle, char *msg, uint32_t flags, time_t sent_at )
    687718{
    688719        irc_t *irc = ic->irc;
     
    817848}
    818849
    819 void imcb_chat_msg( struct groupchat *c, char *who, char *msg, uint32_t flags, time_t sent_at )
     850void imcb_chat_msg( struct groupchat *c, const char *who, char *msg, uint32_t flags, time_t sent_at )
    820851{
    821852        struct im_connection *ic = c->ic;
     
    889920/* buddy_chat.c */
    890921
    891 void imcb_chat_add_buddy( struct groupchat *b, char *handle )
     922void imcb_chat_add_buddy( struct groupchat *b, const char *handle )
    892923{
    893924        user_t *u = user_findhandle( b->ic, handle );
     
    924955
    925956/* This function is one BIG hack... :-( EREWRITE */
    926 void imcb_chat_remove_buddy( struct groupchat *b, char *handle, char *reason )
     957void imcb_chat_remove_buddy( struct groupchat *b, const char *handle, const char *reason )
    927958{
    928959        user_t *u;
Note: See TracChangeset for help on using the changeset viewer.