aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@frugalware.org>2008-01-10 17:10:10 +0100
committerMiklos Vajna <vmiklos@frugalware.org>2008-01-10 17:10:10 +0100
commit93dffeafa371bc2384dd13229d15fc31fab62d00 (patch)
treecc0965b882757df7b975b023fc24623022607974
parent61728715f9701af2a516f24fee50a379aca0eb6f (diff)
new skype_set_display_name() function
- this adds support for setting display_name - also add support for the deprecated nick command in skype_set_my_name()
-rw-r--r--skype/skype.c44
1 files changed, 33 insertions, 11 deletions
diff --git a/skype/skype.c b/skype/skype.c
index 804803d0..4e7c13ba 100644
--- a/skype/skype.c
+++ b/skype/skype.c
@@ -132,17 +132,6 @@ const struct skype_away_state skype_away_state_list[] =
* Functions
*/
-static void skype_init( account_t *acc )
-{
- set_t *s;
-
- s = set_add( &acc->set, "server", SKYPE_DEFAULT_SERVER, set_eval_account, acc );
- s->flags |= ACC_SET_OFFLINE_ONLY;
-
- s = set_add( &acc->set, "port", SKYPE_DEFAULT_PORT, set_eval_int, acc );
- s->flags |= ACC_SET_OFFLINE_ONLY;
-}
-
int skype_write( struct im_connection *ic, char *buf, int len )
{
struct skype_data *sd = ic->proto_data;
@@ -859,6 +848,19 @@ static GList *skype_away_states( struct im_connection *ic )
return l;
}
+static char *skype_set_display_name( set_t *set, char *value )
+{
+ account_t *acc = set->data;
+ struct im_connection *ic = acc->ic;
+ //struct skype_data *sd = ic->proto_data;
+ char *buf;
+
+ buf = g_strdup_printf("SET PROFILE MOOD_TEXT %s", value);
+ skype_write( ic, buf, strlen( buf ) );
+ g_free(buf);
+ return(value);
+}
+
static void skype_add_buddy( struct im_connection *ic, char *who, char *group )
{
char *buf, *nick, *ptr;
@@ -1001,6 +1003,25 @@ static void skype_get_info(struct im_connection *ic, char *who)
g_free(buf);
}
+static void skype_set_my_name( struct im_connection *ic, char *info )
+{
+ skype_set_display_name( set_find( &ic->acc->set, "display_name" ), info );
+}
+
+static void skype_init( account_t *acc )
+{
+ set_t *s;
+
+ s = set_add( &acc->set, "server", SKYPE_DEFAULT_SERVER, set_eval_account, acc );
+ s->flags |= ACC_SET_OFFLINE_ONLY;
+
+ s = set_add( &acc->set, "port", SKYPE_DEFAULT_PORT, set_eval_int, acc );
+ s->flags |= ACC_SET_OFFLINE_ONLY;
+
+ s = set_add( &acc->set, "display_name", NULL, skype_set_display_name, acc );
+ s->flags |= ACC_SET_NOSAVE | ACC_SET_ONLINE_ONLY;
+}
+
void init_plugin(void)
{
struct prpl *ret = g_new0( struct prpl, 1 );
@@ -1011,6 +1032,7 @@ void init_plugin(void)
ret->logout = skype_logout;
ret->buddy_msg = skype_buddy_msg;
ret->get_info = skype_get_info;
+ ret->set_my_name = skype_set_my_name;
ret->away_states = skype_away_states;
ret->set_away = skype_set_away;
ret->add_buddy = skype_add_buddy;