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 }