- Timestamp:
- 2010-03-06T15:44:46Z (15 years ago)
- Branches:
- master
- Children:
- 17f9522
- Parents:
- 2bc8ac0
- Location:
- protocols/msn
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/msn/msn.c
r2bc8ac0 rb051d39 139 139 140 140 if( l == NULL ) 141 for( i = 0; msn_away_state_list[i].number > -1; i ++ ) 142 l = g_list_append( l, (void*) msn_away_state_list[i].name ); 141 for( i = 0; *msn_away_state_list[i].code; i ++ ) 142 if( *msn_away_state_list[i].name ) 143 l = g_list_append( l, (void*) msn_away_state_list[i].name ); 143 144 144 145 return l; … … 149 150 char buf[1024]; 150 151 struct msn_data *md = ic->proto_data; 151 const struct msn_away_state *st;152 153 if( strcmp( state, GAIM_AWAY_CUSTOM ) == 0 )154 st = msn_away_state_by_name( "Away" );152 153 if( state ) 154 md->away_state = msn_away_state_by_name( state ) ? : 155 msn_away_state_list + 1; 155 156 else 156 st = msn_away_state_by_name( state ); 157 158 if( !st ) st = msn_away_state_list; 159 md->away_state = st; 160 161 g_snprintf( buf, sizeof( buf ), "CHG %d %s\r\n", ++md->trId, st->code ); 157 md->away_state = msn_away_state_list; 158 159 g_snprintf( buf, sizeof( buf ), "CHG %d %s\r\n", ++md->trId, md->away_state->code ); 162 160 msn_write( ic, buf, strlen( buf ) ); 163 161 } -
protocols/msn/msn.h
r2bc8ac0 rb051d39 97 97 struct msn_away_state 98 98 { 99 int number;100 99 char code[4]; 101 100 char name[16]; -
protocols/msn/ns.c
r2bc8ac0 rb051d39 420 420 { 421 421 /* FIXME: Warn/Bomb about unknown away state? */ 422 st = msn_away_state_list; 423 } 424 425 imcb_buddy_status( ic, cmd[3], OPT_LOGGED_IN | 426 ( st->number ? OPT_AWAY : 0 ), st->name, NULL ); 422 st = msn_away_state_list + 1; 423 } 424 425 imcb_buddy_status( ic, cmd[3], OPT_LOGGED_IN | 426 ( st != msn_away_state_list ? OPT_AWAY : 0 ), 427 st->name, NULL ); 427 428 } 428 429 else if( strcmp( cmd[0], "FLN" ) == 0 ) … … 449 450 { 450 451 /* FIXME: Warn/Bomb about unknown away state? */ 451 st = msn_away_state_list; 452 } 453 454 imcb_buddy_status( ic, cmd[2], OPT_LOGGED_IN | 455 ( st->number ? OPT_AWAY : 0 ), st->name, NULL ); 452 st = msn_away_state_list + 1; 453 } 454 455 imcb_buddy_status( ic, cmd[2], OPT_LOGGED_IN | 456 ( st != msn_away_state_list ? OPT_AWAY : 0 ), 457 st->name, NULL ); 456 458 } 457 459 else if( strcmp( cmd[0], "RNG" ) == 0 ) -
protocols/msn/tables.c
r2bc8ac0 rb051d39 29 29 const struct msn_away_state msn_away_state_list[] = 30 30 { 31 { 0, "NLN", "Available" },32 { 1,"BSY", "Busy" },33 { 3,"IDL", "Idle" },34 { 5,"BRB", "Be Right Back" },35 { 7,"AWY", "Away" },36 { 9,"PHN", "On the Phone" },37 { 11,"LUN", "Out to Lunch" },38 { 13,"HDN", "Hidden" },39 { -1,"", "" }31 { "NLN", "" }, 32 { "BSY", "Busy" }, 33 { "IDL", "Idle" }, 34 { "BRB", "Be Right Back" }, 35 { "AWY", "Away" }, 36 { "PHN", "On the Phone" }, 37 { "LUN", "Out to Lunch" }, 38 { "HDN", "Hidden" }, 39 { "", "" } 40 40 }; 41 42 const struct msn_away_state *msn_away_state_by_number( int number )43 {44 int i;45 46 for( i = 0; msn_away_state_list[i].number > -1; i ++ )47 if( msn_away_state_list[i].number == number )48 return( msn_away_state_list + i );49 50 return( NULL );51 }52 41 53 42 const struct msn_away_state *msn_away_state_by_code( char *code ) … … 55 44 int i; 56 45 57 for( i = 0; msn_away_state_list[i].number > -1; i ++ )46 for( i = 0; *msn_away_state_list[i].code; i ++ ) 58 47 if( g_strcasecmp( msn_away_state_list[i].code, code ) == 0 ) 59 48 return( msn_away_state_list + i ); 60 49 61 return ( NULL );50 return NULL; 62 51 } 63 52 … … 66 55 int i; 67 56 68 for( i = 0; msn_away_state_list[i].number > -1; i ++ )57 for( i = 0; *msn_away_state_list[i].code; i ++ ) 69 58 if( g_strcasecmp( msn_away_state_list[i].name, name ) == 0 ) 70 59 return( msn_away_state_list + i ); 71 60 72 return ( NULL );61 return NULL; 73 62 } 74 63
Note: See TracChangeset
for help on using the changeset viewer.