Ignore:
Timestamp:
2015-02-20T22:50:54Z (9 years ago)
Author:
dequis <dx@…>
Branches:
master
Children:
0b9daac, 3d45471, 7733b8c
Parents:
af359b4
git-author:
Indent <please@…> (19-02-15 05:47:20)
git-committer:
dequis <dx@…> (20-02-15 22:50:54)
Message:

Reindent everything to K&R style with tabs

Used uncrustify, with the configuration file in ./doc/uncrustify.cfg

Commit author set to "Indent <please@…>" so that it's easier to
skip while doing git blame.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/yahoo/yahoo.c

    raf359b4 r5ebff60  
    3535
    3636/* A hack to handle removal of buddies not in the group "Buddies" correctly */
    37 struct byahoo_buddygroups
    38 {
     37struct byahoo_buddygroups {
    3938        char *buddy;
    4039        char *group;
    4140};
    4241
    43 struct byahoo_data
    44 {
     42struct byahoo_data {
    4543        int y2_id;
    4644        int current_status;
     
    4947};
    5048
    51 struct byahoo_input_data
    52 {
     49struct byahoo_input_data {
    5350        int h;
    5451        void *d;
    5552};
    5653
    57 struct byahoo_conf_invitation
    58 {
     54struct byahoo_conf_invitation {
    5955        char *name;
    6056        struct groupchat *c;
     
    6763static int byahoo_chat_id = 0;
    6864
    69 static char *byahoo_strip( const char *in )
     65static char *byahoo_strip(const char *in)
    7066{
    7167        int len;
    72        
     68
    7369        /* This should get rid of the markup noise at the beginning of the string. */
    74         while( *in )
    75         {
    76                 if( g_strncasecmp( in, "<font", 5 ) == 0 ||
    77                     g_strncasecmp( in, "<fade", 5 ) == 0 ||
    78                     g_strncasecmp( in, "<alt", 4 ) == 0 )
    79                 {
    80                         char *s = strchr( in, '>' );
    81                         if( !s )
     70        while (*in) {
     71                if (g_strncasecmp(in, "<font", 5) == 0 ||
     72                    g_strncasecmp(in, "<fade", 5) == 0 ||
     73                    g_strncasecmp(in, "<alt", 4) == 0) {
     74                        char *s = strchr(in, '>');
     75                        if (!s) {
    8276                                break;
    83                        
     77                        }
     78
    8479                        in = s + 1;
    85                 }
    86                 else if( strncmp( in, "\e[", 2 ) == 0 )
    87                 {
     80                } else if (strncmp(in, "\e[", 2) == 0) {
    8881                        const char *s;
    89                        
    90                         for( s = in + 2; *s && *s != 'm'; s ++ );
    91                        
    92                         if( *s != 'm' )
     82
     83                        for (s = in + 2; *s && *s != 'm'; s++) {
     84                                ;
     85                        }
     86
     87                        if (*s != 'm') {
    9388                                break;
    94                        
     89                        }
     90
    9591                        in = s + 1;
    96                 }
    97                 else
    98                 {
     92                } else {
    9993                        break;
    10094                }
    10195        }
    102        
     96
    10397        /* This is supposed to get rid of the noise at the end of the line. */
    104         len = strlen( in );
    105         while( len > 0 && ( in[len-1] == '>' || in[len-1] == 'm' ) )
    106         {
     98        len = strlen(in);
     99        while (len > 0 && (in[len - 1] == '>' || in[len - 1] == 'm')) {
    107100                int blen = len;
    108101                const char *search;
    109                
    110                 if( in[len-1] == '>' )
     102
     103                if (in[len - 1] == '>') {
    111104                        search = "</";
    112                 else
     105                } else {
    113106                        search = "\e[";
    114                
     107                }
     108
    115109                len -= 3;
    116                 while( len > 0 && strncmp( in + len, search, 2 ) != 0 )
    117                         len --;
    118                
    119                 if( len <= 0 && strncmp( in, search, 2 ) != 0 )
    120                 {
     110                while (len > 0 && strncmp(in + len, search, 2) != 0) {
     111                        len--;
     112                }
     113
     114                if (len <= 0 && strncmp(in, search, 2) != 0) {
    121115                        len = blen;
    122116                        break;
    123117                }
    124118        }
    125        
    126         return( g_strndup( in, len ) );
    127 }
    128 
    129 static void byahoo_init( account_t *acc )
    130 {
    131         set_add( &acc->set, "mail_notifications", "false", set_eval_bool, acc );
    132        
     119
     120        return(g_strndup(in, len));
     121}
     122
     123static void byahoo_init(account_t *acc)
     124{
     125        set_add(&acc->set, "mail_notifications", "false", set_eval_bool, acc);
     126
    133127        acc->flags |= ACC_FLAG_AWAY_MESSAGE | ACC_FLAG_STATUS_MESSAGE;
    134128}
    135129
    136 static void byahoo_login( account_t *acc )
    137 {
    138         struct im_connection *ic = imcb_new( acc );
    139         struct byahoo_data *yd = ic->proto_data = g_new0( struct byahoo_data, 1 );
     130static void byahoo_login(account_t *acc)
     131{
     132        struct im_connection *ic = imcb_new(acc);
     133        struct byahoo_data *yd = ic->proto_data = g_new0(struct byahoo_data, 1);
    140134        char *s;
    141        
     135
    142136        yd->logged_in = FALSE;
    143137        yd->current_status = YAHOO_STATUS_AVAILABLE;
    144        
    145         if( ( s = strchr( acc->user, '@' ) ) && g_strcasecmp( s, "@yahoo.com" ) == 0 )
    146                 imcb_error( ic, "Your Yahoo! username should just be a username. "
    147                                 "Do not include any @domain part." );
    148        
    149         imcb_log( ic, "Connecting" );
    150         yd->y2_id = yahoo_init( acc->user, acc->pass );
    151         yahoo_login( yd->y2_id, yd->current_status );
    152 }
    153 
    154 static void byahoo_logout( struct im_connection *ic )
     138
     139        if ((s = strchr(acc->user, '@')) && g_strcasecmp(s, "@yahoo.com") == 0) {
     140                imcb_error(ic, "Your Yahoo! username should just be a username. "
     141                           "Do not include any @domain part.");
     142        }
     143
     144        imcb_log(ic, "Connecting");
     145        yd->y2_id = yahoo_init(acc->user, acc->pass);
     146        yahoo_login(yd->y2_id, yd->current_status);
     147}
     148
     149static void byahoo_logout(struct im_connection *ic)
    155150{
    156151        struct byahoo_data *yd = (struct byahoo_data *) ic->proto_data;
    157152        GSList *l;
    158        
    159         while( ic->groupchats )
    160                 imcb_chat_free( ic->groupchats->data );
    161        
    162         for( l = yd->buddygroups; l; l = l->next )
    163         {
     153
     154        while (ic->groupchats) {
     155                imcb_chat_free(ic->groupchats->data);
     156        }
     157
     158        for (l = yd->buddygroups; l; l = l->next) {
    164159                struct byahoo_buddygroups *bg = l->data;
    165                
    166                 g_free( bg->buddy );
    167                 g_free( bg->group );
    168                 g_free( bg );
    169         }
    170         g_slist_free( yd->buddygroups );
    171        
    172         yahoo_logoff( yd->y2_id );
    173        
    174         g_free( yd );
    175 }
    176 
    177 static void byahoo_get_info(struct im_connection *ic, char *who) 
     160
     161                g_free(bg->buddy);
     162                g_free(bg->group);
     163                g_free(bg);
     164        }
     165        g_slist_free(yd->buddygroups);
     166
     167        yahoo_logoff(yd->y2_id);
     168
     169        g_free(yd);
     170}
     171
     172static void byahoo_get_info(struct im_connection *ic, char *who)
    178173{
    179174        /* Just make an URL and let the user fetch the info */
    180         imcb_log(ic, "%s\n%s: %s%s", _("User Info"), 
    181                         _("For now, fetch yourself"), yahoo_get_profile_url(),
    182                         who);
    183 }
    184 
    185 static int byahoo_buddy_msg( struct im_connection *ic, char *who, char *what, int flags )
     175        imcb_log(ic, "%s\n%s: %s%s", _("User Info"),
     176                 _("For now, fetch yourself"), yahoo_get_profile_url(),
     177                 who);
     178}
     179
     180static int byahoo_buddy_msg(struct im_connection *ic, char *who, char *what, int flags)
    186181{
    187182        struct byahoo_data *yd = ic->proto_data;
    188        
    189         yahoo_send_im( yd->y2_id, NULL, who, what, 1, 0 );
    190        
     183
     184        yahoo_send_im(yd->y2_id, NULL, who, what, 1, 0);
     185
    191186        return 1;
    192187}
    193188
    194 static int byahoo_send_typing( struct im_connection *ic, char *who, int typing )
     189static int byahoo_send_typing(struct im_connection *ic, char *who, int typing)
    195190{
    196191        struct byahoo_data *yd = ic->proto_data;
    197        
    198         yahoo_send_typing( yd->y2_id, NULL, who, ( typing & OPT_TYPING ) != 0 );
    199        
     192
     193        yahoo_send_typing(yd->y2_id, NULL, who, (typing & OPT_TYPING) != 0);
     194
    200195        return 1;
    201196}
    202197
    203 static void byahoo_set_away( struct im_connection *ic, char *state, char *msg )
     198static void byahoo_set_away(struct im_connection *ic, char *state, char *msg)
    204199{
    205200        struct byahoo_data *yd = (struct byahoo_data *) ic->proto_data;
    206        
    207         if( state && msg == NULL )
    208         {
     201
     202        if (state && msg == NULL) {
    209203                /* Use these states only if msg doesn't contain additional
    210204                   info since away messages are only supported with CUSTOM. */
    211                 if( g_strcasecmp( state, "Be Right Back" ) == 0 )
     205                if (g_strcasecmp(state, "Be Right Back") == 0) {
    212206                        yd->current_status = YAHOO_STATUS_BRB;
    213                 else if( g_strcasecmp( state, "Busy" ) == 0 )
     207                } else if (g_strcasecmp(state, "Busy") == 0) {
    214208                        yd->current_status = YAHOO_STATUS_BUSY;
    215                 else if( g_strcasecmp( state, "Not At Home" ) == 0 )
     209                } else if (g_strcasecmp(state, "Not At Home") == 0) {
    216210                        yd->current_status = YAHOO_STATUS_NOTATHOME;
    217                 else if( g_strcasecmp( state, "Not At Desk" ) == 0 )
     211                } else if (g_strcasecmp(state, "Not At Desk") == 0) {
    218212                        yd->current_status = YAHOO_STATUS_NOTATDESK;
    219                 else if( g_strcasecmp( state, "Not In Office" ) == 0 )
     213                } else if (g_strcasecmp(state, "Not In Office") == 0) {
    220214                        yd->current_status = YAHOO_STATUS_NOTINOFFICE;
    221                 else if( g_strcasecmp( state, "On Phone" ) == 0 )
     215                } else if (g_strcasecmp(state, "On Phone") == 0) {
    222216                        yd->current_status = YAHOO_STATUS_ONPHONE;
    223                 else if( g_strcasecmp( state, "On Vacation" ) == 0 )
     217                } else if (g_strcasecmp(state, "On Vacation") == 0) {
    224218                        yd->current_status = YAHOO_STATUS_ONVACATION;
    225                 else if( g_strcasecmp( state, "Out To Lunch" ) == 0 )
     219                } else if (g_strcasecmp(state, "Out To Lunch") == 0) {
    226220                        yd->current_status = YAHOO_STATUS_OUTTOLUNCH;
    227                 else if( g_strcasecmp( state, "Stepped Out" ) == 0 )
     221                } else if (g_strcasecmp(state, "Stepped Out") == 0) {
    228222                        yd->current_status = YAHOO_STATUS_STEPPEDOUT;
    229                 else if( g_strcasecmp( state, "Invisible" ) == 0 )
     223                } else if (g_strcasecmp(state, "Invisible") == 0) {
    230224                        yd->current_status = YAHOO_STATUS_INVISIBLE;
    231                 else
     225                } else {
    232226                        yd->current_status = YAHOO_STATUS_CUSTOM;
    233         }
    234         else if( msg )
     227                }
     228        } else if (msg) {
    235229                yd->current_status = YAHOO_STATUS_CUSTOM;
    236         else
     230        } else {
    237231                yd->current_status = YAHOO_STATUS_AVAILABLE;
    238        
    239         yahoo_set_away( yd->y2_id, yd->current_status, msg, state ? 2 : 0 );
    240 }
    241 
    242 static GList *byahoo_away_states( struct im_connection *ic )
     232        }
     233
     234        yahoo_set_away(yd->y2_id, yd->current_status, msg, state ? 2 : 0);
     235}
     236
     237static GList *byahoo_away_states(struct im_connection *ic)
    243238{
    244239        static GList *m = NULL;
    245240
    246         if( m == NULL )
    247         {
    248                 m = g_list_append( m, "Be Right Back" );
    249                 m = g_list_append( m, "Busy" );
    250                 m = g_list_append( m, "Not At Home" );
    251                 m = g_list_append( m, "Not At Desk" );
    252                 m = g_list_append( m, "Not In Office" );
    253                 m = g_list_append( m, "On Phone" );
    254                 m = g_list_append( m, "On Vacation" );
    255                 m = g_list_append( m, "Out To Lunch" );
    256                 m = g_list_append( m, "Stepped Out" );
    257                 m = g_list_append( m, "Invisible" );
    258         }
    259        
     241        if (m == NULL) {
     242                m = g_list_append(m, "Be Right Back");
     243                m = g_list_append(m, "Busy");
     244                m = g_list_append(m, "Not At Home");
     245                m = g_list_append(m, "Not At Desk");
     246                m = g_list_append(m, "Not In Office");
     247                m = g_list_append(m, "On Phone");
     248                m = g_list_append(m, "On Vacation");
     249                m = g_list_append(m, "Out To Lunch");
     250                m = g_list_append(m, "Stepped Out");
     251                m = g_list_append(m, "Invisible");
     252        }
     253
    260254        return m;
    261255}
    262256
    263 static void byahoo_keepalive( struct im_connection *ic )
     257static void byahoo_keepalive(struct im_connection *ic)
    264258{
    265259        struct byahoo_data *yd = ic->proto_data;
    266        
    267         yahoo_keepalive( yd->y2_id );
    268 }
    269 
    270 static void byahoo_add_buddy( struct im_connection *ic, char *who, char *group )
     260
     261        yahoo_keepalive(yd->y2_id);
     262}
     263
     264static void byahoo_add_buddy(struct im_connection *ic, char *who, char *group)
    271265{
    272266        struct byahoo_data *yd = (struct byahoo_data *) ic->proto_data;
    273267        bee_user_t *bu;
    274        
    275         if( group && ( bu = bee_user_by_handle( ic->bee, ic, who ) ) && bu->group )
    276         {
     268
     269        if (group && (bu = bee_user_by_handle(ic->bee, ic, who)) && bu->group) {
    277270                GSList *bgl;
    278                
     271
    279272                /* If the person is in our list already, this is a group change. */
    280                 yahoo_change_buddy_group( yd->y2_id, who, bu->group->name, group );
    281                
     273                yahoo_change_buddy_group(yd->y2_id, who, bu->group->name, group);
     274
    282275                /* No idea how often people have people in multiple groups and
    283276                   BitlBee doesn't currently support this anyway .. but keep
    284277                   this struct up-to-date for now. */
    285                 for( bgl = yd->buddygroups; bgl; bgl = bgl->next )
    286                 {
     278                for (bgl = yd->buddygroups; bgl; bgl = bgl->next) {
    287279                        struct byahoo_buddygroups *bg = bgl->data;
    288                        
    289                         if( g_strcasecmp( bg->buddy, who ) == 0 &&
    290                             g_strcasecmp( bg->group, bu->group->name ) == 0 )
    291                         {
    292                                 g_free( bg->group );
    293                                 bg->group = g_strdup( group );
     280
     281                        if (g_strcasecmp(bg->buddy, who) == 0 &&
     282                            g_strcasecmp(bg->group, bu->group->name) == 0) {
     283                                g_free(bg->group);
     284                                bg->group = g_strdup(group);
    294285                        }
    295286                }
    296         }
    297         else
    298                 yahoo_add_buddy( yd->y2_id, who, group ? group : BYAHOO_DEFAULT_GROUP, NULL );
    299 }
    300 
    301 static void byahoo_remove_buddy( struct im_connection *ic, char *who, char *group )
     287        } else {
     288                yahoo_add_buddy(yd->y2_id, who, group ? group : BYAHOO_DEFAULT_GROUP, NULL);
     289        }
     290}
     291
     292static void byahoo_remove_buddy(struct im_connection *ic, char *who, char *group)
    302293{
    303294        struct byahoo_data *yd = (struct byahoo_data *) ic->proto_data;
    304295        GSList *bgl;
    305        
    306         yahoo_remove_buddy( yd->y2_id, who, BYAHOO_DEFAULT_GROUP );
    307        
    308         for( bgl = yd->buddygroups; bgl; bgl = bgl->next )
    309         {
     296
     297        yahoo_remove_buddy(yd->y2_id, who, BYAHOO_DEFAULT_GROUP);
     298
     299        for (bgl = yd->buddygroups; bgl; bgl = bgl->next) {
    310300                struct byahoo_buddygroups *bg = bgl->data;
    311                
    312                 if( g_strcasecmp( bg->buddy, who ) == 0 )
    313                         yahoo_remove_buddy( yd->y2_id, who, bg->group );
    314         }
    315 }
    316 
    317 static void byahoo_chat_msg( struct groupchat *c, char *message, int flags )
     301
     302                if (g_strcasecmp(bg->buddy, who) == 0) {
     303                        yahoo_remove_buddy(yd->y2_id, who, bg->group);
     304                }
     305        }
     306}
     307
     308static void byahoo_chat_msg(struct groupchat *c, char *message, int flags)
    318309{
    319310        struct byahoo_data *yd = (struct byahoo_data *) c->ic->proto_data;
    320        
    321         yahoo_conference_message( yd->y2_id, NULL, c->data, c->title, message, 1 );
    322 }
    323 
    324 static void byahoo_chat_invite( struct groupchat *c, char *who, char *msg )
     311
     312        yahoo_conference_message(yd->y2_id, NULL, c->data, c->title, message, 1);
     313}
     314
     315static void byahoo_chat_invite(struct groupchat *c, char *who, char *msg)
    325316{
    326317        struct byahoo_data *yd = (struct byahoo_data *) c->ic->proto_data;
    327        
    328         yahoo_conference_invite( yd->y2_id, NULL, c->data, c->title, msg ? msg : "" );
    329 }
    330 
    331 static void byahoo_chat_leave( struct groupchat *c )
     318
     319        yahoo_conference_invite(yd->y2_id, NULL, c->data, c->title, msg ? msg : "");
     320}
     321
     322static void byahoo_chat_leave(struct groupchat *c)
    332323{
    333324        struct byahoo_data *yd = (struct byahoo_data *) c->ic->proto_data;
    334        
    335         yahoo_conference_logoff( yd->y2_id, NULL, c->data, c->title );
    336         imcb_chat_free( c );
    337 }
    338 
    339 static struct groupchat *byahoo_chat_with( struct im_connection *ic, char *who )
     325
     326        yahoo_conference_logoff(yd->y2_id, NULL, c->data, c->title);
     327        imcb_chat_free(c);
     328}
     329
     330static struct groupchat *byahoo_chat_with(struct im_connection *ic, char *who)
    340331{
    341332        struct byahoo_data *yd = (struct byahoo_data *) ic->proto_data;
     
    343334        char *roomname;
    344335        YList *members;
    345        
    346         roomname = g_strdup_printf( "%s-Bee-%d", ic->acc->user, byahoo_chat_id );
    347        
    348         c = imcb_chat_new( ic, roomname );
    349         imcb_chat_add_buddy( c, ic->acc->user );
    350        
     336
     337        roomname = g_strdup_printf("%s-Bee-%d", ic->acc->user, byahoo_chat_id);
     338
     339        c = imcb_chat_new(ic, roomname);
     340        imcb_chat_add_buddy(c, ic->acc->user);
     341
    351342        /* FIXME: Free this thing when the chat's destroyed. We can't *always*
    352343                  do this because it's not always created here. */
    353         c->data = members = g_new0( YList, 1 );
    354         members->data = g_strdup( who );
    355        
    356         yahoo_conference_invite( yd->y2_id, NULL, members, roomname, "Please join my groupchat..." );
    357        
    358         g_free( roomname );
    359        
     344        c->data = members = g_new0(YList, 1);
     345        members->data = g_strdup(who);
     346
     347        yahoo_conference_invite(yd->y2_id, NULL, members, roomname, "Please join my groupchat...");
     348
     349        g_free(roomname);
     350
    360351        return c;
    361352}
    362353
    363 static void byahoo_auth_allow( struct im_connection *ic, const char *who )
     354static void byahoo_auth_allow(struct im_connection *ic, const char *who)
    364355{
    365356        struct byahoo_data *yd = (struct byahoo_data *) ic->proto_data;
    366        
    367         yahoo_confirm_buddy( yd->y2_id, who, 0, "" );
    368 }
    369 
    370 static void byahoo_auth_deny( struct im_connection *ic, const char *who )
     357
     358        yahoo_confirm_buddy(yd->y2_id, who, 0, "");
     359}
     360
     361static void byahoo_auth_deny(struct im_connection *ic, const char *who)
    371362{
    372363        struct byahoo_data *yd = (struct byahoo_data *) ic->proto_data;
    373        
    374         yahoo_confirm_buddy( yd->y2_id, who, 1, "" );
    375 }
    376 
    377 void byahoo_initmodule( )
     364
     365        yahoo_confirm_buddy(yd->y2_id, who, 1, "");
     366}
     367
     368void byahoo_initmodule()
    378369{
    379370        struct prpl *ret = g_new0(struct prpl, 1);
     371
    380372        ret->name = "yahoo";
    381     ret->mms = 832;           /* this guess taken from libotr UPGRADING file */
     373        ret->mms = 832;       /* this guess taken from libotr UPGRADING file */
    382374        ret->init = byahoo_init;
    383        
     375
    384376        ret->login = byahoo_login;
    385377        ret->keepalive = byahoo_keepalive;
    386378        ret->logout = byahoo_logout;
    387        
     379
    388380        ret->buddy_msg = byahoo_buddy_msg;
    389381        ret->get_info = byahoo_get_info;
     
    393385        ret->remove_buddy = byahoo_remove_buddy;
    394386        ret->send_typing = byahoo_send_typing;
    395        
     387
    396388        ret->chat_msg = byahoo_chat_msg;
    397389        ret->chat_invite = byahoo_chat_invite;
     
    400392
    401393        ret->handle_cmp = g_strcasecmp;
    402        
     394
    403395        ret->auth_allow = byahoo_auth_allow;
    404396        ret->auth_deny = byahoo_auth_deny;
    405        
     397
    406398        register_protocol(ret);
    407399}
    408400
    409 static struct im_connection *byahoo_get_ic_by_id( int id )
     401static struct im_connection *byahoo_get_ic_by_id(int id)
    410402{
    411403        GSList *l;
    412404        struct im_connection *ic;
    413405        struct byahoo_data *yd;
    414        
    415         for( l = get_connections(); l; l = l->next )
    416         {
     406
     407        for (l = get_connections(); l; l = l->next) {
    417408                ic = l->data;
    418409                yd = ic->proto_data;
    419                
    420                 if( strcmp( ic->acc->prpl->name, "yahoo" ) == 0 && yd->y2_id == id )
    421                         return( ic );
    422         }
    423        
    424         return( NULL );
     410
     411                if (strcmp(ic->acc->prpl->name, "yahoo") == 0 && yd->y2_id == id) {
     412                        return(ic);
     413                }
     414        }
     415
     416        return(NULL);
    425417}
    426418
     
    428420/* Now it's callback time! */
    429421
    430 struct byahoo_connect_callback_data
    431 {
     422struct byahoo_connect_callback_data {
    432423        int fd;
    433424        yahoo_connect_callback callback;
     
    436427};
    437428
    438 void byahoo_connect_callback( gpointer data, gint source, b_input_condition cond )
     429void byahoo_connect_callback(gpointer data, gint source, b_input_condition cond)
    439430{
    440431        struct byahoo_connect_callback_data *d = data;
    441        
    442         if( !byahoo_get_ic_by_id( d->id ) )
    443         {
    444                 g_free( d );
     432
     433        if (!byahoo_get_ic_by_id(d->id)) {
     434                g_free(d);
    445435                return;
    446436        }
    447        
    448         d->callback( NULL + d->fd, 0, d->data );
    449         g_free( d );
    450 }
    451 
    452 struct byahoo_read_ready_data
    453 {
     437
     438        d->callback(NULL + d->fd, 0, d->data);
     439        g_free(d);
     440}
     441
     442struct byahoo_read_ready_data {
    454443        int id;
    455444        int fd;
     
    458447};
    459448
    460 gboolean byahoo_read_ready_callback( gpointer data, gint source, b_input_condition cond )
     449gboolean byahoo_read_ready_callback(gpointer data, gint source, b_input_condition cond)
    461450{
    462451        struct byahoo_read_ready_data *d = data;
    463        
    464         if( !byahoo_get_ic_by_id( d->id ) )
     452
     453        if (!byahoo_get_ic_by_id(d->id)) {
    465454                /* WTF doesn't libyahoo clean this up? */
    466455                return FALSE;
    467        
    468         yahoo_read_ready( d->id, NULL + d->fd, d->data );
    469        
     456        }
     457
     458        yahoo_read_ready(d->id, NULL + d->fd, d->data);
     459
    470460        return TRUE;
    471461}
    472462
    473 struct byahoo_write_ready_data
    474 {
     463struct byahoo_write_ready_data {
    475464        int id;
    476465        int fd;
     
    479468};
    480469
    481 gboolean byahoo_write_ready_callback( gpointer data, gint source, b_input_condition cond )
     470gboolean byahoo_write_ready_callback(gpointer data, gint source, b_input_condition cond)
    482471{
    483472        struct byahoo_write_ready_data *d = data;
    484        
    485         return yahoo_write_ready( d->id, NULL + d->fd, d->data );
    486 }
    487 
    488 void ext_yahoo_login_response( int id, int succ, const char *url )
    489 {
    490         struct im_connection *ic = byahoo_get_ic_by_id( id );
     473
     474        return yahoo_write_ready(d->id, NULL + d->fd, d->data);
     475}
     476
     477void ext_yahoo_login_response(int id, int succ, const char *url)
     478{
     479        struct im_connection *ic = byahoo_get_ic_by_id(id);
    491480        struct byahoo_data *yd = NULL;
    492        
    493         if( ic == NULL )
    494         {
     481
     482        if (ic == NULL) {
    495483                /* libyahoo2 seems to call this one twice when something
    496484                   went wrong sometimes. Don't know why. Because we clean
    497485                   up the connection on the first failure, the second
    498486                   should be ignored. */
    499                
     487
    500488                return;
    501489        }
    502        
     490
    503491        yd = (struct byahoo_data *) ic->proto_data;
    504        
    505         if( succ == YAHOO_LOGIN_OK )
    506         {
    507                 imcb_connected( ic );
    508                
     492
     493        if (succ == YAHOO_LOGIN_OK) {
     494                imcb_connected(ic);
     495
    509496                yd->logged_in = TRUE;
    510         }
    511         else
    512         {
     497        } else {
    513498                char *errstr;
    514499                int allow_reconnect = FALSE;
    515                
     500
    516501                yd->logged_in = FALSE;
    517                
    518                 if( succ == YAHOO_LOGIN_UNAME )
     502
     503                if (succ == YAHOO_LOGIN_UNAME) {
    519504                        errstr = "Incorrect Yahoo! username";
    520                 else if( succ == YAHOO_LOGIN_PASSWD )
     505                } else if (succ == YAHOO_LOGIN_PASSWD) {
    521506                        errstr = "Incorrect Yahoo! password";
    522                 else if( succ == YAHOO_LOGIN_LOCK )
     507                } else if (succ == YAHOO_LOGIN_LOCK) {
    523508                        errstr = "Yahoo! account locked";
    524                 else if( succ == 1236 )
     509                } else if (succ == 1236) {
    525510                        errstr = "Yahoo! account locked or machine temporarily banned";
    526                 else if( succ == YAHOO_LOGIN_DUPL )
     511                } else if (succ == YAHOO_LOGIN_DUPL) {
    527512                        errstr = "Logged in on a different machine or device";
    528                 else if( succ == YAHOO_LOGIN_SOCK )
    529                 {
     513                } else if (succ == YAHOO_LOGIN_SOCK) {
    530514                        errstr = "Socket problem";
    531515                        allow_reconnect = TRUE;
    532                 }
    533                 else
     516                } else {
    534517                        errstr = "Unknown error";
    535                
    536                 if( url && *url )
    537                         imcb_error( ic, "Error %d (%s). See %s for more information.", succ, errstr, url );
    538                 else
    539                         imcb_error( ic, "Error %d (%s)", succ, errstr );
    540                
    541                 imc_logout( ic, allow_reconnect );
    542         }
    543 }
    544 
    545 void ext_yahoo_got_buddies( int id, YList *buds )
    546 {
    547         struct im_connection *ic = byahoo_get_ic_by_id( id );
     518                }
     519
     520                if (url && *url) {
     521                        imcb_error(ic, "Error %d (%s). See %s for more information.", succ, errstr, url);
     522                } else {
     523                        imcb_error(ic, "Error %d (%s)", succ, errstr);
     524                }
     525
     526                imc_logout(ic, allow_reconnect);
     527        }
     528}
     529
     530void ext_yahoo_got_buddies(int id, YList *buds)
     531{
     532        struct im_connection *ic = byahoo_get_ic_by_id(id);
    548533        struct byahoo_data *yd = ic->proto_data;
    549534        YList *bl = buds;
    550        
    551         while( bl )
    552         {
     535
     536        while (bl) {
    553537                struct yahoo_buddy *b = bl->data;
    554538                struct byahoo_buddygroups *bg;
    555                
    556                 if( strcmp( b->group, BYAHOO_DEFAULT_GROUP ) != 0 )
    557                 {
    558                         bg = g_new0( struct byahoo_buddygroups, 1 );
    559                        
    560                         bg->buddy = g_strdup( b->id );
    561                         bg->group = g_strdup( b->group );
    562                         yd->buddygroups = g_slist_append( yd->buddygroups, bg );
    563                 }
    564                
    565                 imcb_add_buddy( ic, b->id, b->group );
    566                 imcb_rename_buddy( ic, b->id, b->real_name );
    567                
     539
     540                if (strcmp(b->group, BYAHOO_DEFAULT_GROUP) != 0) {
     541                        bg = g_new0(struct byahoo_buddygroups, 1);
     542
     543                        bg->buddy = g_strdup(b->id);
     544                        bg->group = g_strdup(b->group);
     545                        yd->buddygroups = g_slist_append(yd->buddygroups, bg);
     546                }
     547
     548                imcb_add_buddy(ic, b->id, b->group);
     549                imcb_rename_buddy(ic, b->id, b->real_name);
     550
    568551                bl = bl->next;
    569552        }
    570553}
    571554
    572 void ext_yahoo_got_identities( int id, YList *ids )
    573 {
    574 }
    575 
    576 void ext_yahoo_got_cookies( int id )
    577 {
    578 }
    579 
    580 void ext_yahoo_status_changed( int id, const char *who, int stat, const char *msg, int away, int idle, int mobile )
    581 {
    582         struct im_connection *ic = byahoo_get_ic_by_id( id );
     555void ext_yahoo_got_identities(int id, YList *ids)
     556{
     557}
     558
     559void ext_yahoo_got_cookies(int id)
     560{
     561}
     562
     563void ext_yahoo_status_changed(int id, const char *who, int stat, const char *msg, int away, int idle, int mobile)
     564{
     565        struct im_connection *ic = byahoo_get_ic_by_id(id);
    583566        char *state_string = NULL;
    584567        int flags = OPT_LOGGED_IN;
    585        
    586         if( away )
     568
     569        if (away) {
    587570                flags |= OPT_AWAY;
    588         if( mobile )
     571        }
     572        if (mobile) {
    589573                flags |= OPT_MOBILE;
    590        
    591         switch (stat)
    592         {
     574        }
     575
     576        switch (stat) {
    593577        case YAHOO_STATUS_BRB:
    594578                state_string = "Be Right Back";
     
    632616                break;
    633617        }
    634        
    635         imcb_buddy_status( ic, who, flags, state_string, msg );
    636        
    637         if( stat == YAHOO_STATUS_IDLE )
    638                 imcb_buddy_times( ic, who, 0, idle );
    639 }
    640 
    641 void ext_yahoo_got_buzz( int id, const char *me, const char *who, long tm )
    642 {
    643 }
    644 
    645 void ext_yahoo_got_im( int id, const char *me, const char *who, const char *msg, long tm, int stat, int utf8 )
    646 {
    647         struct im_connection *ic = byahoo_get_ic_by_id( id );
     618
     619        imcb_buddy_status(ic, who, flags, state_string, msg);
     620
     621        if (stat == YAHOO_STATUS_IDLE) {
     622                imcb_buddy_times(ic, who, 0, idle);
     623        }
     624}
     625
     626void ext_yahoo_got_buzz(int id, const char *me, const char *who, long tm)
     627{
     628}
     629
     630void ext_yahoo_got_im(int id, const char *me, const char *who, const char *msg, long tm, int stat, int utf8)
     631{
     632        struct im_connection *ic = byahoo_get_ic_by_id(id);
    648633        char *m;
    649        
    650         if( msg )
    651         {
    652                 m = byahoo_strip( msg );
    653                 imcb_buddy_msg( ic, (char*) who, (char*) m, 0, 0 );
    654                 g_free( m );
    655         }
    656 }
    657 
    658 void ext_yahoo_got_file( int id, const char *ignored, const char *who, const char *msg,
    659                          const char *fname, unsigned long fesize, char *trid )
    660 {
    661         struct im_connection *ic = byahoo_get_ic_by_id( id );
    662        
    663         imcb_log( ic, "Got a file transfer (file = %s) from %s. Ignoring for now due to lack of support.", fname, who );
    664 }
    665 
    666 void ext_yahoo_got_ft_data( int id, const unsigned char *in, int len, void *data )
    667 {
    668 }
    669 
    670 void ext_yahoo_file_transfer_done( int id, int result, void *data )
    671 {
    672 }
    673 
    674 void ext_yahoo_typing_notify( int id, const char *ignored, const char *who, int stat )
    675 {
    676         struct im_connection *ic = byahoo_get_ic_by_id( id );
    677        
    678         if( stat == 1 )
    679                 imcb_buddy_typing( ic, (char*) who, OPT_TYPING );
    680         else
    681                 imcb_buddy_typing( ic, (char*) who, 0 );
    682 }
    683 
    684 void ext_yahoo_system_message( int id, const char *me, const char *who, const char *msg )
    685 {
    686         struct im_connection *ic = byahoo_get_ic_by_id( id );
    687        
    688         imcb_log( ic, "Yahoo! system message: %s", msg );
    689 }
    690 
    691 void ext_yahoo_webcam_invite( int id, const char *ignored, const char *from )
    692 {
    693         struct im_connection *ic = byahoo_get_ic_by_id( id );
    694        
    695         imcb_log( ic, "Got a webcam invitation from %s. IRC+webcams is a no-no though...", from );
    696 }
    697 
    698 void ext_yahoo_error( int id, const char *err, int fatal, int num )
    699 {
    700         struct im_connection *ic = byahoo_get_ic_by_id( id );
    701        
    702         imcb_error( ic, "%s", err );
     634
     635        if (msg) {
     636                m = byahoo_strip(msg);
     637                imcb_buddy_msg(ic, (char *) who, (char *) m, 0, 0);
     638                g_free(m);
     639        }
     640}
     641
     642void ext_yahoo_got_file(int id, const char *ignored, const char *who, const char *msg,
     643                        const char *fname, unsigned long fesize, char *trid)
     644{
     645        struct im_connection *ic = byahoo_get_ic_by_id(id);
     646
     647        imcb_log(ic, "Got a file transfer (file = %s) from %s. Ignoring for now due to lack of support.", fname, who);
     648}
     649
     650void ext_yahoo_got_ft_data(int id, const unsigned char *in, int len, void *data)
     651{
     652}
     653
     654void ext_yahoo_file_transfer_done(int id, int result, void *data)
     655{
     656}
     657
     658void ext_yahoo_typing_notify(int id, const char *ignored, const char *who, int stat)
     659{
     660        struct im_connection *ic = byahoo_get_ic_by_id(id);
     661
     662        if (stat == 1) {
     663                imcb_buddy_typing(ic, (char *) who, OPT_TYPING);
     664        } else {
     665                imcb_buddy_typing(ic, (char *) who, 0);
     666        }
     667}
     668
     669void ext_yahoo_system_message(int id, const char *me, const char *who, const char *msg)
     670{
     671        struct im_connection *ic = byahoo_get_ic_by_id(id);
     672
     673        imcb_log(ic, "Yahoo! system message: %s", msg);
     674}
     675
     676void ext_yahoo_webcam_invite(int id, const char *ignored, const char *from)
     677{
     678        struct im_connection *ic = byahoo_get_ic_by_id(id);
     679
     680        imcb_log(ic, "Got a webcam invitation from %s. IRC+webcams is a no-no though...", from);
     681}
     682
     683void ext_yahoo_error(int id, const char *err, int fatal, int num)
     684{
     685        struct im_connection *ic = byahoo_get_ic_by_id(id);
     686
     687        imcb_error(ic, "%s", err);
    703688}
    704689
    705690/* TODO: Clear up the mess of inp and d structures */
    706 int ext_yahoo_add_handler( int id, void *fd_, yahoo_input_condition cond, void *data )
    707 {
    708         struct byahoo_input_data *inp = g_new0( struct byahoo_input_data, 1 );
     691int ext_yahoo_add_handler(int id, void *fd_, yahoo_input_condition cond, void *data)
     692{
     693        struct byahoo_input_data *inp = g_new0(struct byahoo_input_data, 1);
    709694        int fd = (long) fd_;
    710        
    711         if( cond == YAHOO_INPUT_READ )
    712         {
    713                 struct byahoo_read_ready_data *d = g_new0( struct byahoo_read_ready_data, 1 );
    714                
     695
     696        if (cond == YAHOO_INPUT_READ) {
     697                struct byahoo_read_ready_data *d = g_new0(struct byahoo_read_ready_data, 1);
     698
    715699                d->id = id;
    716700                d->fd = fd;
    717701                d->data = data;
    718                
     702
    719703                inp->d = d;
    720                 d->tag = inp->h = b_input_add( fd, B_EV_IO_READ, (b_event_handler) byahoo_read_ready_callback, (gpointer) d );
    721         }
    722         else if( cond == YAHOO_INPUT_WRITE )
    723         {
    724                 struct byahoo_write_ready_data *d = g_new0( struct byahoo_write_ready_data, 1 );
    725                
     704                d->tag = inp->h = b_input_add(fd, B_EV_IO_READ, (b_event_handler) byahoo_read_ready_callback,
     705                                              (gpointer) d);
     706        } else if (cond == YAHOO_INPUT_WRITE) {
     707                struct byahoo_write_ready_data *d = g_new0(struct byahoo_write_ready_data, 1);
     708
    726709                d->id = id;
    727710                d->fd = fd;
    728711                d->data = data;
    729                
     712
    730713                inp->d = d;
    731                 d->tag = inp->h = b_input_add( fd, B_EV_IO_WRITE, (b_event_handler) byahoo_write_ready_callback, (gpointer) d );
    732         }
    733         else
    734         {
    735                 g_free( inp );
     714                d->tag = inp->h =
     715                                 b_input_add(fd, B_EV_IO_WRITE, (b_event_handler) byahoo_write_ready_callback,
     716                                             (gpointer) d);
     717        } else {
     718                g_free(inp);
    736719                return -1;
    737720                /* Panic... */
    738721        }
    739        
    740         byahoo_inputs = g_slist_append( byahoo_inputs, inp );
     722
     723        byahoo_inputs = g_slist_append(byahoo_inputs, inp);
    741724        return inp->h;
    742725}
    743726
    744 void ext_yahoo_remove_handler( int id, int tag )
     727void ext_yahoo_remove_handler(int id, int tag)
    745728{
    746729        struct byahoo_input_data *inp;
    747730        GSList *l = byahoo_inputs;
    748        
    749         while( l )
    750         {
     731
     732        while (l) {
    751733                inp = l->data;
    752                 if( inp->h == tag )
    753                 {
    754                         g_free( inp->d );
    755                         g_free( inp );
    756                         byahoo_inputs = g_slist_remove( byahoo_inputs, inp );
     734                if (inp->h == tag) {
     735                        g_free(inp->d);
     736                        g_free(inp);
     737                        byahoo_inputs = g_slist_remove(byahoo_inputs, inp);
    757738                        break;
    758739                }
    759740                l = l->next;
    760741        }
    761        
    762         b_event_remove( tag );
    763 }
    764 
    765 int ext_yahoo_connect_async( int id, const char *host, int port, yahoo_connect_callback callback, void *data, int use_ssl )
     742
     743        b_event_remove(tag);
     744}
     745
     746int ext_yahoo_connect_async(int id, const char *host, int port, yahoo_connect_callback callback, void *data,
     747                            int use_ssl)
    766748{
    767749        struct byahoo_connect_callback_data *d;
    768750        int fd;
    769        
    770         d = g_new0( struct byahoo_connect_callback_data, 1 );
    771         if( ( fd = proxy_connect( host, port, (b_event_handler) byahoo_connect_callback, (gpointer) d ) ) < 0 )
    772         {
    773                 g_free( d );
    774                 return( fd );
     751
     752        d = g_new0(struct byahoo_connect_callback_data, 1);
     753        if ((fd = proxy_connect(host, port, (b_event_handler) byahoo_connect_callback, (gpointer) d)) < 0) {
     754                g_free(d);
     755                return(fd);
    775756        }
    776757        d->fd = fd;
     
    778759        d->data = data;
    779760        d->id = id;
    780        
     761
    781762        return fd;
    782763}
    783764
    784 char *ext_yahoo_get_ip_addr( const char *domain )
     765char *ext_yahoo_get_ip_addr(const char *domain)
    785766{
    786767        return NULL;
    787768}
    788769
    789 int ext_yahoo_write( void *fd, char *buf, int len )
    790 {
    791         return write( (long) fd, buf, len );
    792 }
    793 
    794 int ext_yahoo_read( void *fd, char *buf, int len )
    795 {
    796         return read( (long) fd, buf, len );
    797 }
    798 
    799 void ext_yahoo_close( void *fd )
    800 {
    801         close( (long) fd );
    802 }
    803 
    804 void ext_yahoo_got_buddy_change_group( int id, const char *me, const char *who,
    805                                        const char *old_group, const char *new_group )
    806 {
    807         struct im_connection *ic = byahoo_get_ic_by_id( id );
    808        
    809         imcb_add_buddy( ic, who, new_group );
    810 }
    811 
    812 static void byahoo_accept_conf( void *data )
     770int ext_yahoo_write(void *fd, char *buf, int len)
     771{
     772        return write((long) fd, buf, len);
     773}
     774
     775int ext_yahoo_read(void *fd, char *buf, int len)
     776{
     777        return read((long) fd, buf, len);
     778}
     779
     780void ext_yahoo_close(void *fd)
     781{
     782        close((long) fd);
     783}
     784
     785void ext_yahoo_got_buddy_change_group(int id, const char *me, const char *who,
     786                                      const char *old_group, const char *new_group)
     787{
     788        struct im_connection *ic = byahoo_get_ic_by_id(id);
     789
     790        imcb_add_buddy(ic, who, new_group);
     791}
     792
     793static void byahoo_accept_conf(void *data)
    813794{
    814795        struct byahoo_conf_invitation *inv = data;
    815796        struct groupchat *b = NULL;
    816797        GSList *l;
    817        
    818         for( l = inv->ic->groupchats; l; l = l->next )
    819         {
     798
     799        for (l = inv->ic->groupchats; l; l = l->next) {
    820800                b = l->data;
    821                 if( b == inv->c )
     801                if (b == inv->c) {
    822802                        break;
    823         }
    824        
    825         if( b != NULL )
    826         {
    827                 yahoo_conference_logon( inv->yid, NULL, inv->members, inv->name );
    828                 imcb_chat_add_buddy( inv->c, inv->ic->acc->user );
    829         }
    830         else
    831         {
    832                 imcb_log( inv->ic, "Duplicate/corrupted invitation to `%s'.", inv->name );
    833         }
    834        
    835         g_free( inv->name );
    836         g_free( inv );
    837 }
    838 
    839 static void byahoo_reject_conf( void *data )
     803                }
     804        }
     805
     806        if (b != NULL) {
     807                yahoo_conference_logon(inv->yid, NULL, inv->members, inv->name);
     808                imcb_chat_add_buddy(inv->c, inv->ic->acc->user);
     809        } else {
     810                imcb_log(inv->ic, "Duplicate/corrupted invitation to `%s'.", inv->name);
     811        }
     812
     813        g_free(inv->name);
     814        g_free(inv);
     815}
     816
     817static void byahoo_reject_conf(void *data)
    840818{
    841819        struct byahoo_conf_invitation *inv = data;
    842        
    843         yahoo_conference_decline( inv->yid, NULL, inv->members, inv->name, "User rejected groupchat" );
    844         imcb_chat_free( inv->c );
    845         g_free( inv->name );
    846         g_free( inv );
    847 }
    848 
    849 void ext_yahoo_got_conf_invite( int id, const char *ignored,
    850                                 const char *who, const char *room, const char *msg, YList *members )
    851 {
    852         struct im_connection *ic = byahoo_get_ic_by_id( id );
     820
     821        yahoo_conference_decline(inv->yid, NULL, inv->members, inv->name, "User rejected groupchat");
     822        imcb_chat_free(inv->c);
     823        g_free(inv->name);
     824        g_free(inv);
     825}
     826
     827void ext_yahoo_got_conf_invite(int id, const char *ignored,
     828                               const char *who, const char *room, const char *msg, YList *members)
     829{
     830        struct im_connection *ic = byahoo_get_ic_by_id(id);
    853831        struct byahoo_conf_invitation *inv;
    854832        char txt[1024];
    855833        YList *m;
    856        
    857         if( g_strcasecmp( who, ic->acc->user ) == 0 )
     834
     835        if (g_strcasecmp(who, ic->acc->user) == 0) {
    858836                /* WTF, Yahoo! seems to echo these now? */
    859837                return;
    860        
    861         inv = g_malloc( sizeof( struct byahoo_conf_invitation ) );
    862         memset( inv, 0, sizeof( struct byahoo_conf_invitation ) );
    863         inv->name = g_strdup( room );
    864         inv->c = imcb_chat_new( ic, (char*) room );
     838        }
     839
     840        inv = g_malloc(sizeof(struct byahoo_conf_invitation));
     841        memset(inv, 0, sizeof(struct byahoo_conf_invitation));
     842        inv->name = g_strdup(room);
     843        inv->c = imcb_chat_new(ic, (char *) room);
    865844        inv->c->data = members;
    866845        inv->yid = id;
    867846        inv->members = members;
    868847        inv->ic = ic;
    869        
    870         for( m = members; m; m = m->next )
    871                 if( g_strcasecmp( m->data, ic->acc->user ) != 0 )
    872                         imcb_chat_add_buddy( inv->c, m->data );
    873        
    874         g_snprintf( txt, 1024, "Got an invitation to chatroom %s from %s: %s", room, who, msg );
    875        
    876         imcb_ask( ic, txt, inv, byahoo_accept_conf, byahoo_reject_conf );
    877 }
    878 
    879 void ext_yahoo_conf_userdecline( int id, const char *ignored, const char *who, const char *room, const char *msg )
    880 {
    881         struct im_connection *ic = byahoo_get_ic_by_id( id );
    882        
    883         imcb_log( ic, "Invite to chatroom %s rejected by %s: %s", room, who, msg );
    884 }
    885 
    886 void ext_yahoo_conf_userjoin( int id, const char *ignored, const char *who, const char *room )
    887 {
    888         struct im_connection *ic = byahoo_get_ic_by_id( id );
    889         struct groupchat *c = bee_chat_by_title( ic->bee, ic, room );
    890        
    891         if( c )
    892                 imcb_chat_add_buddy( c, (char*) who );
    893 }
    894 
    895 void ext_yahoo_conf_userleave( int id, const char *ignored, const char *who, const char *room )
    896 
    897 {
    898         struct im_connection *ic = byahoo_get_ic_by_id( id );
    899         struct groupchat *c = bee_chat_by_title( ic->bee, ic, room );
    900        
    901         if( c )
    902                 imcb_chat_remove_buddy( c, (char*) who, "" );
    903 }
    904 
    905 void ext_yahoo_conf_message( int id, const char *ignored, const char *who, const char *room, const char *msg, int utf8 )
    906 {
    907         struct im_connection *ic = byahoo_get_ic_by_id( id );
    908         char *m = byahoo_strip( msg );
    909         struct groupchat *c = bee_chat_by_title( ic->bee, ic, room );
    910        
    911         if( c )
    912                 imcb_chat_msg( c, (char*) who, (char*) m, 0, 0 );
    913         g_free( m );
    914 }
    915 
    916 void ext_yahoo_chat_cat_xml( int id, const char *xml )
    917 {
    918 }
    919 
    920 void ext_yahoo_chat_join( int id, const char *who, const char *room, const char *topic, YList *members, void *fd )
    921 {
    922 }
    923 
    924 void ext_yahoo_chat_userjoin( int id, const char *me, const char *room, struct yahoo_chat_member *who )
     848
     849        for (m = members; m; m = m->next) {
     850                if (g_strcasecmp(m->data, ic->acc->user) != 0) {
     851                        imcb_chat_add_buddy(inv->c, m->data);
     852                }
     853        }
     854
     855        g_snprintf(txt, 1024, "Got an invitation to chatroom %s from %s: %s", room, who, msg);
     856
     857        imcb_ask(ic, txt, inv, byahoo_accept_conf, byahoo_reject_conf);
     858}
     859
     860void ext_yahoo_conf_userdecline(int id, const char *ignored, const char *who, const char *room, const char *msg)
     861{
     862        struct im_connection *ic = byahoo_get_ic_by_id(id);
     863
     864        imcb_log(ic, "Invite to chatroom %s rejected by %s: %s", room, who, msg);
     865}
     866
     867void ext_yahoo_conf_userjoin(int id, const char *ignored, const char *who, const char *room)
     868{
     869        struct im_connection *ic = byahoo_get_ic_by_id(id);
     870        struct groupchat *c = bee_chat_by_title(ic->bee, ic, room);
     871
     872        if (c) {
     873                imcb_chat_add_buddy(c, (char *) who);
     874        }
     875}
     876
     877void ext_yahoo_conf_userleave(int id, const char *ignored, const char *who, const char *room)
     878
     879{
     880        struct im_connection *ic = byahoo_get_ic_by_id(id);
     881        struct groupchat *c = bee_chat_by_title(ic->bee, ic, room);
     882
     883        if (c) {
     884                imcb_chat_remove_buddy(c, (char *) who, "");
     885        }
     886}
     887
     888void ext_yahoo_conf_message(int id, const char *ignored, const char *who, const char *room, const char *msg, int utf8)
     889{
     890        struct im_connection *ic = byahoo_get_ic_by_id(id);
     891        char *m = byahoo_strip(msg);
     892        struct groupchat *c = bee_chat_by_title(ic->bee, ic, room);
     893
     894        if (c) {
     895                imcb_chat_msg(c, (char *) who, (char *) m, 0, 0);
     896        }
     897        g_free(m);
     898}
     899
     900void ext_yahoo_chat_cat_xml(int id, const char *xml)
     901{
     902}
     903
     904void ext_yahoo_chat_join(int id, const char *who, const char *room, const char *topic, YList *members, void *fd)
     905{
     906}
     907
     908void ext_yahoo_chat_userjoin(int id, const char *me, const char *room, struct yahoo_chat_member *who)
    925909{
    926910        free(who->id);
    927911        free(who->alias);
    928912        free(who->location);
    929         free(who);
    930 }
    931 
    932 void ext_yahoo_chat_userleave( int id, const char *me, const char *room, const char *who )
    933 {
    934 }
    935 
    936 void ext_yahoo_chat_message( int id, const char *me, const char *who, const char *room, const char *msg, int msgtype, int utf8 )
    937 {
    938 }
    939 
    940 void ext_yahoo_chat_yahoologout( int id, const char *me )
    941 {
    942 }
    943 
    944 void ext_yahoo_chat_yahooerror( int id, const char *me )
    945 {
    946 }
    947 
    948 void ext_yahoo_contact_added( int id, const char *myid, const char *who, const char *msg )
    949 {
    950         struct im_connection *ic = byahoo_get_ic_by_id( id );
    951        
    952         imcb_ask_auth( ic, who, msg );
    953 }
    954 
    955 void ext_yahoo_rejected( int id, const char *who, const char *msg )
    956 {
    957 }
    958 
    959 void ext_yahoo_game_notify( int id, const char *me, const char *who, int stat, const char *msg )
    960 {
    961 }
    962 
    963 void ext_yahoo_mail_notify( int id, const char *from, const char *subj, int cnt )
    964 {
    965         struct im_connection *ic = byahoo_get_ic_by_id( id );
    966        
    967         if( !set_getbool( &ic->acc->set, "mail_notifications" ) )
     913        free(who);
     914}
     915
     916void ext_yahoo_chat_userleave(int id, const char *me, const char *room, const char *who)
     917{
     918}
     919
     920void ext_yahoo_chat_message(int id, const char *me, const char *who, const char *room, const char *msg, int msgtype,
     921                            int utf8)
     922{
     923}
     924
     925void ext_yahoo_chat_yahoologout(int id, const char *me)
     926{
     927}
     928
     929void ext_yahoo_chat_yahooerror(int id, const char *me)
     930{
     931}
     932
     933void ext_yahoo_contact_added(int id, const char *myid, const char *who, const char *msg)
     934{
     935        struct im_connection *ic = byahoo_get_ic_by_id(id);
     936
     937        imcb_ask_auth(ic, who, msg);
     938}
     939
     940void ext_yahoo_rejected(int id, const char *who, const char *msg)
     941{
     942}
     943
     944void ext_yahoo_game_notify(int id, const char *me, const char *who, int stat, const char *msg)
     945{
     946}
     947
     948void ext_yahoo_mail_notify(int id, const char *from, const char *subj, int cnt)
     949{
     950        struct im_connection *ic = byahoo_get_ic_by_id(id);
     951
     952        if (!set_getbool(&ic->acc->set, "mail_notifications")) {
    968953                ; /* The user doesn't care. */
    969         else if( from && subj )
    970                 imcb_log( ic, "Received e-mail message from %s with subject `%s'", from, subj );
    971         else if( cnt > 0 )
    972                 imcb_log( ic, "Received %d new e-mails", cnt );
    973 }
    974 
    975 void ext_yahoo_webcam_invite_reply( int id, const char *me, const char *from, int accept )
    976 {
    977 }
    978 
    979 void ext_yahoo_webcam_closed( int id, const char *who, int reason )
    980 {
    981 }
    982 
    983 void ext_yahoo_got_search_result( int id, int found, int start, int total, YList *contacts )
    984 {
    985 }
    986 
    987 void ext_yahoo_webcam_viewer( int id, const char *who, int connect )
    988 {
    989 }
    990 
    991 void ext_yahoo_webcam_data_request( int id, int send )
    992 {
    993 }
    994 
    995 int ext_yahoo_log( const char *fmt, ... )
    996 {
    997         return( 0 );
    998 }
    999 
    1000 void ext_yahoo_got_webcam_image( int id, const char * who, const unsigned char *image, unsigned int image_size, unsigned int real_size, unsigned int timestamp )
    1001 {
    1002 }
    1003 
    1004 void ext_yahoo_got_ping( int id, const char *msg )
    1005 {
    1006 }
    1007 
    1008 void ext_yahoo_got_buddyicon (int id, const char *me, const char *who, const char *url, int checksum) {}
    1009 void ext_yahoo_got_buddyicon_checksum (int id, const char *me,const char *who, int checksum) {}
    1010 
    1011 void ext_yahoo_got_buddyicon_request(int id, const char *me, const char *who){}
    1012 void ext_yahoo_buddyicon_uploaded(int id, const char *url){}
     954        } else if (from && subj) {
     955                imcb_log(ic, "Received e-mail message from %s with subject `%s'", from, subj);
     956        } else if (cnt > 0) {
     957                imcb_log(ic, "Received %d new e-mails", cnt);
     958        }
     959}
     960
     961void ext_yahoo_webcam_invite_reply(int id, const char *me, const char *from, int accept)
     962{
     963}
     964
     965void ext_yahoo_webcam_closed(int id, const char *who, int reason)
     966{
     967}
     968
     969void ext_yahoo_got_search_result(int id, int found, int start, int total, YList *contacts)
     970{
     971}
     972
     973void ext_yahoo_webcam_viewer(int id, const char *who, int connect)
     974{
     975}
     976
     977void ext_yahoo_webcam_data_request(int id, int send)
     978{
     979}
     980
     981int ext_yahoo_log(const char *fmt, ...)
     982{
     983        return(0);
     984}
     985
     986void ext_yahoo_got_webcam_image(int id, const char * who, const unsigned char *image, unsigned int image_size,
     987                                unsigned int real_size, unsigned int timestamp)
     988{
     989}
     990
     991void ext_yahoo_got_ping(int id, const char *msg)
     992{
     993}
     994
     995void ext_yahoo_got_buddyicon(int id, const char *me, const char *who, const char *url, int checksum)
     996{
     997}
     998void ext_yahoo_got_buddyicon_checksum(int id, const char *me, const char *who, int checksum)
     999{
     1000}
     1001
     1002void ext_yahoo_got_buddyicon_request(int id, const char *me, const char *who)
     1003{
     1004}
     1005void ext_yahoo_buddyicon_uploaded(int id, const char *url)
     1006{
     1007}
Note: See TracChangeset for help on using the changeset viewer.