Mercurial > pidgin.yaz
comparison pidgin/gtkstatusbox.c @ 28818:2c1677e123dc
there's no reason for message_changed to use g_utf8_collate, and also
no reason why it can't be replaced by purple_strequal
author | Ka-Hing Cheung <khc@hxbc.us> |
---|---|
date | Sun, 25 Oct 2009 23:04:19 +0000 |
parents | e35043e96a1a |
children | 986aa7474fd4 |
comparison
equal
deleted
inserted
replaced
28817:e35043e96a1a | 28818:2c1677e123dc |
---|---|
2322 if (!typing_stock_ids[++status_box->typing_index]) | 2322 if (!typing_stock_ids[++status_box->typing_index]) |
2323 status_box->typing_index = 0; | 2323 status_box->typing_index = 0; |
2324 pidgin_status_box_refresh(status_box); | 2324 pidgin_status_box_refresh(status_box); |
2325 } | 2325 } |
2326 | 2326 |
2327 static gboolean | |
2328 message_changed(const char *one, const char *two) | |
2329 { | |
2330 if (one == NULL && two == NULL) | |
2331 return FALSE; | |
2332 | |
2333 if (one == NULL || two == NULL) | |
2334 return TRUE; | |
2335 | |
2336 return (g_utf8_collate(one, two) != 0); | |
2337 } | |
2338 | |
2339 static void | 2327 static void |
2340 activate_currently_selected_status(PidginStatusBox *status_box) | 2328 activate_currently_selected_status(PidginStatusBox *status_box) |
2341 { | 2329 { |
2342 PidginStatusBoxItemType type; | 2330 PidginStatusBoxItemType type; |
2343 gpointer data; | 2331 gpointer data; |
2406 id = purple_status_type_get_id(acct_status_type); | 2394 id = purple_status_type_get_id(acct_status_type); |
2407 | 2395 |
2408 if (strncmp(id, purple_status_get_id(status), strlen(id)) == 0) | 2396 if (strncmp(id, purple_status_get_id(status), strlen(id)) == 0) |
2409 { | 2397 { |
2410 /* Selected status and previous status is the same */ | 2398 /* Selected status and previous status is the same */ |
2411 if (!message_changed(message, purple_status_get_attr_string(status, "message"))) | 2399 if (purple_strequal(message, purple_status_get_attr_string(status, "message"))) |
2412 { | 2400 { |
2413 PurpleSavedStatus *ss = purple_savedstatus_get_current(); | 2401 PurpleSavedStatus *ss = purple_savedstatus_get_current(); |
2414 /* Make sure that statusbox displays the correct thing. | 2402 /* Make sure that statusbox displays the correct thing. |
2415 * It can get messed up if the previous selection was a | 2403 * It can get messed up if the previous selection was a |
2416 * saved status that wasn't supported by this account */ | 2404 * saved status that wasn't supported by this account */ |
2423 } else { | 2411 } else { |
2424 saved_status = purple_savedstatus_get_current(); | 2412 saved_status = purple_savedstatus_get_current(); |
2425 if (purple_savedstatus_get_type(saved_status) == primitive && | 2413 if (purple_savedstatus_get_type(saved_status) == primitive && |
2426 !purple_savedstatus_has_substatuses(saved_status)) | 2414 !purple_savedstatus_has_substatuses(saved_status)) |
2427 { | 2415 { |
2428 if (!message_changed(purple_savedstatus_get_message(saved_status), message)) | 2416 if (purple_strequal(purple_savedstatus_get_message(saved_status), message)) |
2429 changed = FALSE; | 2417 changed = FALSE; |
2430 } | 2418 } |
2431 } | 2419 } |
2432 | 2420 |
2433 if (changed) | 2421 if (changed) |
2440 for (; iter != NULL; iter = iter->next) { | 2428 for (; iter != NULL; iter = iter->next) { |
2441 PurpleSavedStatus *ss = iter->data; | 2429 PurpleSavedStatus *ss = iter->data; |
2442 const char *ss_msg = purple_savedstatus_get_message(ss); | 2430 const char *ss_msg = purple_savedstatus_get_message(ss); |
2443 if ((purple_savedstatus_get_type(ss) == primitive) && purple_savedstatus_is_transient(ss) && | 2431 if ((purple_savedstatus_get_type(ss) == primitive) && purple_savedstatus_is_transient(ss) && |
2444 purple_savedstatus_has_substatuses(ss) && /* Must have substatuses */ | 2432 purple_savedstatus_has_substatuses(ss) && /* Must have substatuses */ |
2445 !message_changed(ss_msg, message)) | 2433 purple_strequal(ss_msg, message)) |
2446 { | 2434 { |
2447 gboolean found = FALSE; | 2435 gboolean found = FALSE; |
2448 /* The currently enabled accounts must have substatuses for all the active accts */ | 2436 /* The currently enabled accounts must have substatuses for all the active accts */ |
2449 for(tmp = active_accts; tmp != NULL; tmp = tmp->next) { | 2437 for(tmp = active_accts; tmp != NULL; tmp = tmp->next) { |
2450 PurpleAccount *acct = tmp->data; | 2438 PurpleAccount *acct = tmp->data; |
2507 id = purple_status_type_get_id(status_type); | 2495 id = purple_status_type_get_id(status_type); |
2508 | 2496 |
2509 if (strncmp(id, purple_status_get_id(status), strlen(id)) == 0) | 2497 if (strncmp(id, purple_status_get_id(status), strlen(id)) == 0) |
2510 { | 2498 { |
2511 /* Selected status and previous status is the same */ | 2499 /* Selected status and previous status is the same */ |
2512 if (!message_changed(message, purple_status_get_attr_string(status, "message"))) | 2500 if (purple_strequal(message, purple_status_get_attr_string(status, "message"))) |
2513 changed = FALSE; | 2501 changed = FALSE; |
2514 } | 2502 } |
2515 | 2503 |
2516 if (changed) | 2504 if (changed) |
2517 { | 2505 { |