Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/EionRobb/skype4pidgin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEion Robb <eion@robbmob.com>2017-03-25 10:04:34 +0300
committerEion Robb <eion@robbmob.com>2017-03-25 10:04:34 +0300
commite54231fa83048d81af3a7c92de73ac8637bc0f01 (patch)
tree2f178fdd6121705b6d85e0cb99e4922493c23eab /skypeweb/skypeweb_contacts.c
parenteaec528710db44983c09a195269d9782707d3100 (diff)
Fix for crash when using 'Get Info' and server sends a numeric 'gender'
Diffstat (limited to 'skypeweb/skypeweb_contacts.c')
-rw-r--r--skypeweb/skypeweb_contacts.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/skypeweb/skypeweb_contacts.c b/skypeweb/skypeweb_contacts.c
index 2f2ff69..688e31c 100644
--- a/skypeweb/skypeweb_contacts.c
+++ b/skypeweb/skypeweb_contacts.c
@@ -1156,15 +1156,25 @@ skypeweb_got_info(SkypeWebAccount *sa, JsonNode *node, gpointer user_data)
_SKYPE_USER_INFO("birthday", "Birthday");
//_SKYPE_USER_INFO("gender", "Gender");
if (json_object_has_member(userobj, "gender") && !json_object_get_null_member(userobj, "gender")) {
- const gchar *gender = json_object_get_string_member(userobj, "gender");
- const gchar *gender_output;
- if (*gender == '1') {
- gender_output = _("Male");
- } else if (*gender == '2') {
- gender_output = _("Female");
+ const gchar *gender_output = _("Unknown");
+
+ // Can be presented as either a string of a number or as a number argh
+ if (json_node_get_value_type(json_object_get_member(userobj, "gender")) == G_TYPE_STRING) {
+ const gchar *gender = json_object_get_string_member(userobj, "gender");
+ if (*gender == '1') {
+ gender_output = _("Male");
+ } else if (*gender == '2') {
+ gender_output = _("Female");
+ }
} else {
- gender_output = _("Unknown");
+ gint64 gender = json_object_get_int_member(userobj, "gender");
+ if (gender == 1) {
+ gender_output = _("Male");
+ } else if (gender == 2) {
+ gender_output = _("Female");
+ }
}
+
purple_notify_user_info_add_pair_html(user_info, _("Gender"), gender_output);
}
_SKYPE_USER_INFO("language", "Language");