Mercurial > pidgin
comparison libpurple/protocols/zephyr/zephyr.c @ 26994:1fcd09c34fee
Use purple_find_buddies() instead of iterating the buddy list.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Mon, 01 Jun 2009 04:02:10 +0000 |
parents | 5ff1d66e6aef |
children | 01f1929d0936 |
comparison
equal
deleted
inserted
replaced
26993:5ff1d66e6aef | 26994:1fcd09c34fee |
---|---|
1924 fclose(fd); | 1924 fclose(fd); |
1925 } | 1925 } |
1926 | 1926 |
1927 static void write_anyone(PurpleConnection *gc) | 1927 static void write_anyone(PurpleConnection *gc) |
1928 { | 1928 { |
1929 PurpleBlistNode *gnode, *cnode, *bnode; | 1929 GSList *buddies; |
1930 PurpleBuddy *b; | |
1931 char *fname; | 1930 char *fname; |
1932 FILE *fd; | 1931 FILE *fd; |
1933 PurpleAccount *account; | 1932 PurpleAccount *account; |
1934 zephyr_account* zephyr = gc->proto_data; | 1933 zephyr_account* zephyr = gc->proto_data; |
1935 fname = g_strdup_printf("%s/.anyone", purple_home_dir()); | 1934 fname = g_strdup_printf("%s/.anyone", purple_home_dir()); |
1938 g_free(fname); | 1937 g_free(fname); |
1939 return; | 1938 return; |
1940 } | 1939 } |
1941 | 1940 |
1942 account = purple_connection_get_account(gc); | 1941 account = purple_connection_get_account(gc); |
1943 for (gnode = purple_blist_get_root(); | 1942 for (buddies = purple_find_buddies(account, NULL); buddies; |
1944 gnode; | 1943 buddies = g_slist_delete_link(buddies, buddies)) { |
1945 gnode = purple_blist_node_get_sibling_next(gnode)) { | 1944 PurpleBuddy *b = buddies->data; |
1946 if (!PURPLE_BLIST_NODE_IS_GROUP(gnode)) | 1945 gchar *stripped_user = zephyr_strip_local_realm(zephyr, purple_buddy_get_name(b)); |
1947 continue; | 1946 fprintf(fd, "%s\n", stripped_user); |
1948 for (cnode = purple_blist_node_get_first_child(gnode); | 1947 g_free(stripped_user); |
1949 cnode; | |
1950 cnode = purple_blist_node_get_sibling_next(cnode)) { | |
1951 if (!PURPLE_BLIST_NODE_IS_CONTACT(cnode)) | |
1952 continue; | |
1953 for (bnode = purple_blist_node_get_first_child(cnode); | |
1954 bnode; | |
1955 bnode = purple_blist_node_get_sibling_next(bnode)) { | |
1956 if (!PURPLE_BLIST_NODE_IS_BUDDY(bnode)) | |
1957 continue; | |
1958 b = (PurpleBuddy *) bnode; | |
1959 if (purple_buddy_get_account(b) == account) { | |
1960 gchar *stripped_user = zephyr_strip_local_realm(zephyr, purple_buddy_get_name(b)); | |
1961 fprintf(fd, "%s\n", stripped_user); | |
1962 g_free(stripped_user); | |
1963 } | |
1964 } | |
1965 } | |
1966 } | 1948 } |
1967 | 1949 |
1968 fclose(fd); | 1950 fclose(fd); |
1969 g_free(fname); | 1951 g_free(fname); |
1970 } | 1952 } |