Mercurial > pidgin
comparison plugins/log_reader.c @ 11702:994f1c7bee8b
[gaim-migrate @ 13993]
Fix a crash when trying to view logs on an unconnected MSN account. While I tried to debug that, I fixed a couple little things. Apparently I also reworked some of the name heuristics before and didn't commit it. NOTE: This plugin's code still sucks and it should be avoided. :)
committer: Tailor Script <tailor@pidgin.im>
| author | Richard Laager <rlaager@wiktel.com> |
|---|---|
| date | Thu, 20 Oct 2005 16:50:00 +0000 |
| parents | cd0c8830d881 |
| children | ae51c59bf819 |
comparison
equal
deleted
inserted
replaced
| 11701:5d7da4056644 | 11702:994f1c7bee8b |
|---|---|
| 837 } | 837 } |
| 838 | 838 |
| 839 their_name = from_name; | 839 their_name = from_name; |
| 840 if (from_name && gaim_prefs_get_bool("/plugins/core/log_reader/use_name_heuristics")) { | 840 if (from_name && gaim_prefs_get_bool("/plugins/core/log_reader/use_name_heuristics")) { |
| 841 const char *friendly_name = gaim_connection_get_display_name(log->account->gc); | 841 const char *friendly_name = gaim_connection_get_display_name(log->account->gc); |
| 842 int friendly_name_length = strlen(friendly_name); | 842 |
| 843 int alias_length = strlen(log->account->alias); | 843 if (friendly_name != NULL) { |
| 844 GaimBuddy *buddy = gaim_find_buddy(log->account, log->name); | 844 int friendly_name_length = strlen(friendly_name); |
| 845 gboolean from_name_matches; | 845 int alias_length = strlen(log->account->alias); |
| 846 gboolean to_name_matches; | 846 GaimBuddy *buddy = gaim_find_buddy(log->account, log->name); |
| 847 | 847 gboolean from_name_matches; |
| 848 if (buddy->alias) | 848 gboolean to_name_matches; |
| 849 their_name = buddy->alias; | 849 |
| 850 | 850 if (buddy && buddy->alias) |
| 851 /* Try to guess which user is me. | 851 their_name = buddy->alias; |
| 852 * The first step is to determine if either of the names matches either my | 852 |
| 853 * friendly name or alias. For this test, "match" is defined as: | 853 /* Try to guess which user is me. |
| 854 * ^(friendly_name|alias)([^a-zA-Z0-9].*)?$ | 854 * The first step is to determine if either of the names matches either my |
| 855 */ | 855 * friendly name or alias. For this test, "match" is defined as: |
| 856 from_name_matches = ((g_str_has_prefix( | 856 * ^(friendly_name|alias)([^a-zA-Z0-9].*)?$ |
| 857 from_name, friendly_name) && | 857 */ |
| 858 !isalnum(*(from_name + friendly_name_length))) || | 858 from_name_matches = ((g_str_has_prefix( |
| 859 (g_str_has_prefix(from_name, log->account->alias) && | 859 from_name, friendly_name) && |
| 860 !isalnum(*(from_name + alias_length)))); | 860 !isalnum(*(from_name + friendly_name_length))) || |
| 861 | 861 (g_str_has_prefix(from_name, log->account->alias) && |
| 862 to_name_matches = ((g_str_has_prefix( | 862 !isalnum(*(from_name + alias_length)))); |
| 863 to_name, friendly_name) && | 863 |
| 864 !isalnum(*(to_name + friendly_name_length))) || | 864 to_name_matches = ((g_str_has_prefix( |
| 865 (g_str_has_prefix(to_name, log->account->alias) && | 865 to_name, friendly_name) && |
| 866 !isalnum(*(to_name + alias_length)))); | 866 !isalnum(*(to_name + friendly_name_length))) || |
| 867 | 867 (g_str_has_prefix(to_name, log->account->alias) && |
| 868 if (from_name_matches) { | 868 !isalnum(*(to_name + alias_length)))); |
| 869 if (!to_name_matches) { | 869 |
| 870 name_guessed = NAME_GUESS_ME; | 870 if (from_name_matches) { |
| 871 } | 871 if (!to_name_matches) { |
| 872 } else if (to_name_matches) { | 872 name_guessed = NAME_GUESS_ME; |
| 873 name_guessed = NAME_GUESS_THEM; | 873 } |
| 874 } else { | 874 } else if (to_name_matches) { |
| 875 if (buddy) { | 875 name_guessed = NAME_GUESS_THEM; |
| 876 if (buddy->alias) { | 876 } else { |
| 877 if (buddy && buddy->alias) { | |
| 877 char *alias = g_strdup(buddy->alias); | 878 char *alias = g_strdup(buddy->alias); |
| 878 | 879 |
| 879 /* "Truncate" the string at the first non-alphanumeric | 880 /* "Truncate" the string at the first non-alphanumeric |
| 880 * character. The idea is to relax the comparison. | 881 * character. The idea is to relax the comparison. |
| 881 */ | 882 */ |
