Changeset 279607e for protocols/purple


Ignore:
Timestamp:
2010-03-07T22:35:00Z (15 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
52cae01
Parents:
fb020ac
Message:

Fixed purple module to work with the new away interface.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/purple/purple.c

    rfb020ac r279607e  
    195195       
    196196        for( st = purple_account_get_status_types( pa ); st; st = st->next )
    197                 ret = g_list_append( ret, (void*) purple_status_type_get_name( st->data ) );
     197        {
     198                PurpleStatusPrimitive prim = purple_status_type_get_primitive( st->data );
     199                if( prim != PURPLE_STATUS_AVAILABLE && prim != PURPLE_STATUS_OFFLINE )
     200                        ret = g_list_append( ret, (void*) purple_status_type_get_name( st->data ) );
     201        }
    198202       
    199203        return ret;
     
    205209        GList *status_types = purple_account_get_status_types( pa ), *st;
    206210        PurpleStatusType *pst = NULL;
     211        GList *args = NULL;
    207212       
    208213        for( st = status_types; st; st = st->next )
     
    210215                pst = st->data;
    211216               
    212                 if( g_strcasecmp( state_txt, purple_status_type_get_name( pst ) ) == 0 )
    213                         break;
    214         }
    215        
    216         purple_account_set_status( pa, st ? purple_status_type_get_id( pst ) : "away",
    217                                    TRUE, "message", message, NULL );
     217                if( state_txt == NULL &&
     218                    purple_status_type_get_primitive( st->data ) == PURPLE_STATUS_AVAILABLE )
     219                        break;
     220
     221                if( state_txt != NULL &&
     222                    g_strcasecmp( state_txt, purple_status_type_get_name( pst ) ) == 0 )
     223                        break;
     224        }
     225       
     226        if( message )
     227        {
     228                args = g_list_append( args, "message" );
     229                args = g_list_append( args, message );
     230        }
     231       
     232        purple_account_set_status_list( pa, st ? purple_status_type_get_id( pst ) : "away",
     233                                        TRUE, args );
     234
     235        g_list_free( args );
    218236}
    219237
Note: See TracChangeset for help on using the changeset viewer.