Ignore:
Timestamp:
2010-08-31T20:06:14Z (14 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
0c85c08
Parents:
8358691 (diff), 31dbb90a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge mainline stuff.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/message.c

    r8358691 rf5c0d8e  
    3131        struct xt_node *body = xt_find_node( node->children, "body" ), *c;
    3232        struct jabber_buddy *bud = NULL;
    33         char *s;
     33        char *s, *room = NULL, *reason = NULL;
    3434       
    3535        if( !from )
     
    5252                for( c = node->children; ( c = xt_find_node( c, "x" ) ); c = c->next )
    5353                {
    54                         char *ns = xt_find_attr( c, "xmlns" ), *room;
    55                         struct xt_node *inv, *reason;
     54                        char *ns = xt_find_attr( c, "xmlns" );
     55                        struct xt_node *inv;
    5656                       
    5757                        if( ns && strcmp( ns, XMLNS_MUC_USER ) == 0 &&
    5858                            ( inv = xt_find_node( c->children, "invite" ) ) )
    5959                        {
     60                                /* This is an invitation. Set some vars which
     61                                   will be passed to imcb_chat_invite() below. */
    6062                                room = from;
    6163                                if( ( from = xt_find_attr( inv, "from" ) ) == NULL )
    6264                                        from = room;
    63 
    64                                 g_string_append_printf( fullmsg, "<< \002BitlBee\002 - Invitation to chatroom %s >>\n", room );
    65                                 if( ( reason = xt_find_node( inv->children, "reason" ) ) && reason->text_len > 0 )
    66                                         g_string_append( fullmsg, reason->text );
     65                                if( ( inv = xt_find_node( inv->children, "reason" ) ) && inv->text_len > 0 )
     66                                        reason = inv->text;
    6767                        }
    6868                }
     
    9393                        }
    9494                }
    95                 else if( ( c = xt_find_node( node->children, "subject" ) ) && c->text_len > 0 )
     95                else if( ( c = xt_find_node( node->children, "subject" ) ) && c->text_len > 0 &&
     96                         ( !bud || !( bud->flags & JBFLAG_HIDE_SUBJECT ) ) )
    9697                {
    9798                        g_string_append_printf( fullmsg, "<< \002BitlBee\002 - Message with subject: %s >>\n", c->text );
     99                        if( bud )
     100                                bud->flags |= JBFLAG_HIDE_SUBJECT;
     101                }
     102                else if( bud && !c )
     103                {
     104                        /* Yeah, possibly we're hiding changes to this field now. But nobody uses
     105                           this for anything useful anyway, except GMail when people reply to an
     106                           e-mail via chat, repeating the same subject all the time. I don't want
     107                           to have to remember full subject strings for everyone. */
     108                        bud->flags &= ~JBFLAG_HIDE_SUBJECT;
    98109                }
    99110               
     
    104115                        imcb_buddy_msg( ic, from, fullmsg->str,
    105116                                        0, jabber_get_timestamp( node ) );
     117                if( room )
     118                        imcb_chat_invite( ic, room, from, reason );
    106119               
    107120                g_string_free( fullmsg, TRUE );
Note: See TracChangeset for help on using the changeset viewer.