Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/jabber.c

    rc27a923 rfcb2c2e  
    6363        s = set_add( &acc->set, "oauth", "false", set_eval_oauth, acc );
    6464
     65        s = set_add( &acc->set, "display_name", NULL, NULL, acc );
     66       
    6567        g_snprintf( str, sizeof( str ), "%d", jabber_port_list[0] );
    6668        s = set_add( &acc->set, "port", str, set_eval_int, acc );
     
    318320        g_free( jd->oauth2_access_token );
    319321        g_free( jd->away_message );
     322        g_free( jd->internal_jid );
    320323        g_free( jd->username );
    321324        g_free( jd->me );
     
    473476{
    474477        struct jabber_data *jd = ic->proto_data;
    475        
     478        char *final_nick;
     479       
     480        /* Ignore the passed nick parameter if we have our own default */
     481        if ( !( final_nick = set_getstr( sets, "nick" ) ) &&
     482             !( final_nick = set_getstr( &ic->acc->set, "display_name" ) ) ) {
     483                /* Well, whatever, actually use the provided default, then */
     484                final_nick = (char *) nick;
     485        }
     486
    476487        if( strchr( room, '@' ) == NULL )
    477488                imcb_error( ic, "%s is not a valid Jabber room name. Maybe you mean %s@conference.%s?",
     
    480491                imcb_error( ic, "Already present in chat `%s'", room );
    481492        else
    482                 return jabber_chat_join( ic, room, nick, set_getstr( sets, "password" ) );
     493                return jabber_chat_join( ic, room, final_nick, set_getstr( sets, "password" ) );
    483494       
    484495        return NULL;
     
    619630       
    620631        return NULL;
     632}
     633
     634gboolean jabber_handle_is_self( struct im_connection *ic, const char *who ) {
     635        struct jabber_data *jd = ic->proto_data;
     636        return ( ( g_strcasecmp( who, ic->acc->user ) == 0 ) ||
     637                 ( jd->internal_jid &&
     638                   g_strcasecmp( who, jd->internal_jid ) == 0 ) );
    621639}
    622640
     
    648666        ret->send_typing = jabber_send_typing;
    649667        ret->handle_cmp = g_strcasecmp;
     668        ret->handle_is_self = jabber_handle_is_self;
    650669        ret->transfer_request = jabber_si_transfer_request;
    651670        ret->buddy_action_list = jabber_buddy_action_list;
Note: See TracChangeset for help on using the changeset viewer.