| 818 |
818 |
| 819 gtk_tree_model_get(GTK_TREE_MODEL(status_box->dropdown_store), &iter, |
819 gtk_tree_model_get(GTK_TREE_MODEL(status_box->dropdown_store), &iter, |
| 820 TEXT_COLUMN, &name, -1); |
820 TEXT_COLUMN, &name, -1); |
| 821 |
821 |
| 822 if (!purple_savedstatus_has_substatuses(saved_status) |
822 if (!purple_savedstatus_has_substatuses(saved_status) |
| 823 || !strcmp(name, acct_status_name)) |
823 || purple_strequal(name, acct_status_name)) |
| 824 { |
824 { |
| 825 /* Found! */ |
825 /* Found! */ |
| 826 path = gtk_tree_model_get_path(GTK_TREE_MODEL(status_box->dropdown_store), &iter); |
826 path = gtk_tree_model_get_path(GTK_TREE_MODEL(status_box->dropdown_store), &iter); |
| 827 g_free(name); |
827 g_free(name); |
| 828 break; |
828 break; |
| 954 /* start at the second account */ |
954 /* start at the second account */ |
| 955 for (iter = active_accts->next; iter; iter = iter->next) { |
955 for (iter = active_accts->next; iter; iter = iter->next) { |
| 956 PurpleAccount *acct2 = iter->data; |
956 PurpleAccount *acct2 = iter->data; |
| 957 GList *s1, *s2; |
957 GList *s1, *s2; |
| 958 |
958 |
| 959 if (!g_str_equal(proto1, purple_account_get_protocol_id(acct2))) { |
959 if (!purple_strequal(proto1, purple_account_get_protocol_id(acct2))) { |
| 960 acct1 = NULL; |
960 acct1 = NULL; |
| 961 break; |
961 break; |
| 962 } |
962 } |
| 963 |
963 |
| 964 for (s1 = purple_account_get_status_types(acct1), |
964 for (s1 = purple_account_get_status_types(acct1), |
| 965 s2 = purple_account_get_status_types(acct2); s1 && s2; |
965 s2 = purple_account_get_status_types(acct2); s1 && s2; |
| 966 s1 = s1->next, s2 = s2->next) { |
966 s1 = s1->next, s2 = s2->next) { |
| 967 PurpleStatusType *st1 = s1->data, *st2 = s2->data; |
967 PurpleStatusType *st1 = s1->data, *st2 = s2->data; |
| 968 /* TODO: Are these enough to consider the statuses identical? */ |
968 /* TODO: Are these enough to consider the statuses identical? */ |
| 969 if (purple_status_type_get_primitive(st1) != purple_status_type_get_primitive(st2) |
969 if (purple_status_type_get_primitive(st1) != purple_status_type_get_primitive(st2) |
| 970 || strcmp(purple_status_type_get_id(st1), purple_status_type_get_id(st2)) |
970 || !purple_strequal(purple_status_type_get_id(st1), purple_status_type_get_id(st2)) |
| 971 || strcmp(purple_status_type_get_name(st1), purple_status_type_get_name(st2))) { |
971 || !purple_strequal(purple_status_type_get_name(st1), purple_status_type_get_name(st2))) { |
| 972 acct1 = NULL; |
972 acct1 = NULL; |
| 973 break; |
973 break; |
| 974 } |
974 } |
| 975 } |
975 } |
| 976 |
976 |
| 2339 status = purple_account_get_active_status(status_box->token_status_account); |
2339 status = purple_account_get_active_status(status_box->token_status_account); |
| 2340 |
2340 |
| 2341 acct_status_type = find_status_type_by_index(status_box->token_status_account, active); |
2341 acct_status_type = find_status_type_by_index(status_box->token_status_account, active); |
| 2342 id = purple_status_type_get_id(acct_status_type); |
2342 id = purple_status_type_get_id(acct_status_type); |
| 2343 |
2343 |
| 2344 if (g_str_equal(id, purple_status_get_id(status)) && |
2344 if (purple_strequal(id, purple_status_get_id(status)) && |
| 2345 purple_strequal(message, purple_status_get_attr_string(status, "message"))) |
2345 purple_strequal(message, purple_status_get_attr_string(status, "message"))) |
| 2346 { |
2346 { |
| 2347 /* Selected status and previous status is the same */ |
2347 /* Selected status and previous status is the same */ |
| 2348 PurpleSavedStatus *ss = purple_savedstatus_get_current(); |
2348 PurpleSavedStatus *ss = purple_savedstatus_get_current(); |
| 2349 /* Make sure that statusbox displays the correct thing. |
2349 /* Make sure that statusbox displays the correct thing. |
| 2440 active = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(status_box), "active")); |
2440 active = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(status_box), "active")); |
| 2441 |
2441 |
| 2442 status_type = find_status_type_by_index(status_box->account, active); |
2442 status_type = find_status_type_by_index(status_box->account, active); |
| 2443 id = purple_status_type_get_id(status_type); |
2443 id = purple_status_type_get_id(status_type); |
| 2444 |
2444 |
| 2445 if (g_str_equal(id, purple_status_get_id(status)) && |
2445 if (purple_strequal(id, purple_status_get_id(status)) && |
| 2446 purple_strequal(message, purple_status_get_attr_string(status, "message"))) |
2446 purple_strequal(message, purple_status_get_attr_string(status, "message"))) |
| 2447 { |
2447 { |
| 2448 /* Selected status and previous status is the same */ |
2448 /* Selected status and previous status is the same */ |
| 2449 changed = FALSE; |
2449 changed = FALSE; |
| 2450 } |
2450 } |