Ignore:
Timestamp:
2013-02-28T07:15:49Z (11 years ago)
Author:
Miklos Vajna <vmiklos@…>
Branches:
master
Children:
b2b7f52
Parents:
c440320
Message:

skype: add support for fetching full names of buddies

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/skype/skype.c

    rc440320 r36f6ab3  
    118118         * created. */
    119119        char *pending_user;
     120        /* If the info command was used, to determine what to do with FULLNAME result. */
     121        int is_info;
    120122};
    121123
     
    320322
    321323        nicks = g_strsplit(line + 6, ", ", 0);
    322         for (i = nicks; *i; i++)
     324        for (i = nicks; *i; i++) {
    323325                skype_printf(ic, "GET USER %s ONLINESTATUS\n", *i);
     326                skype_printf(ic, "GET USER %s FULLNAME\n", *i);
     327        }
    324328        g_strfreev(nicks);
    325329}
     
    375379                if (set_getbool(&ic->acc->set, "show_moods"))
    376380                        imcb_log(ic, "User `%s' changed mood text to `%s'", user, buf);
    377         } else if (!strncmp(ptr, "FULLNAME ", 9))
    378                 sd->info_fullname = g_strdup(ptr + 9);
    379         else if (!strncmp(ptr, "PHONE_HOME ", 11))
     381        } else if (!strncmp(ptr, "FULLNAME ", 9)) {
     382                char *name = ptr + 9;
     383                if (sd->is_info) {
     384                        sd->is_info = FALSE;
     385                        sd->info_fullname = g_strdup(name);
     386                } else {
     387                        char *buf = g_strdup_printf("%s@skype.com", user);
     388                        imcb_rename_buddy(ic, buf, name);
     389                        g_free(buf);
     390                }
     391        } else if (!strncmp(ptr, "PHONE_HOME ", 11))
    380392                sd->info_phonehome = g_strdup(ptr + 11);
    381393        else if (!strncmp(ptr, "PHONE_OFFICE ", 13))
     
    15031515static void skype_get_info(struct im_connection *ic, char *who)
    15041516{
     1517        struct skype_data *sd = ic->proto_data;
    15051518        char *ptr, *nick;
    15061519        nick = g_strdup(who);
     
    15081521        if (ptr)
    15091522                *ptr = '\0';
     1523        sd->is_info = TRUE;
    15101524        skype_printf(ic, "GET USER %s FULLNAME\n", nick);
    15111525        skype_printf(ic, "GET USER %s PHONE_HOME\n", nick);
Note: See TracChangeset for help on using the changeset viewer.