| 246 g_free(gc->proto_data); |
246 g_free(gc->proto_data); |
| 247 } |
247 } |
| 248 |
248 |
| 249 static void toc_build_config(GaimAccount *account, char *s, int len, gboolean show) |
249 static void toc_build_config(GaimAccount *account, char *s, int len, gboolean show) |
| 250 { |
250 { |
| 251 GaimBlistNode *gnode,*bnode; |
251 GaimBlistNode *gnode, *cnode, *bnode; |
| 252 struct group *g; |
252 GaimGroup *g; |
| 253 struct buddy *b; |
253 GaimBuddy *b; |
| 254 GSList *plist = account->permit; |
254 GSList *plist = account->permit; |
| 255 GSList *dlist = account->deny; |
255 GSList *dlist = account->deny; |
| 256 |
256 |
| 257 int pos = 0; |
257 int pos = 0; |
| 258 |
258 |
| 259 if (!account->perm_deny) |
259 if (!account->perm_deny) |
| 260 account->perm_deny = 1; |
260 account->perm_deny = 1; |
| 261 |
261 |
| 262 pos += g_snprintf(&s[pos], len - pos, "m %d\n", account->perm_deny); |
262 pos += g_snprintf(&s[pos], len - pos, "m %d\n", account->perm_deny); |
| 263 for(gnode = gaim_get_blist()->root; gnode && len > pos; gnode = gnode->next) { |
263 for(gnode = gaim_get_blist()->root; gnode && len > pos; gnode = gnode->next) { |
| 264 g = (struct group *)gnode; |
264 g = (GaimGroup *)gnode; |
| 265 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
265 if(!GAIM_BLIST_NODE_IS_GROUP(gnode)) |
| 266 continue; |
266 continue; |
| 267 if(gaim_group_on_account(g, account)) { |
267 if(gaim_group_on_account(g, account)) { |
| 268 pos += g_snprintf(&s[pos], len - pos, "g %s\n", g->name); |
268 pos += g_snprintf(&s[pos], len - pos, "g %s\n", g->name); |
| 269 for(bnode = gnode->child; bnode && len > pos; bnode = bnode->next) { |
269 for(cnode = gnode->child; cnode; cnode = cnode->next) { |
| 270 b = (struct buddy *)bnode; |
270 if(!GAIM_BLIST_NODE_IS_CONTACT(cnode)) |
| 271 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) |
|
| 272 continue; |
271 continue; |
| 273 if(b->account == account) { |
272 for(bnode = gnode->child; bnode && len > pos; bnode = bnode->next) { |
| 274 pos += g_snprintf(&s[pos], len - pos, "b %s%s%s\n", b->name, |
273 b = (GaimBuddy *)bnode; |
| 275 (show && b->alias) ? ":" : "", |
274 if(!GAIM_BLIST_NODE_IS_BUDDY(bnode)) |
| 276 (show && b->alias) ? b->alias : ""); |
275 continue; |
| |
276 if(b->account == account) { |
| |
277 pos += g_snprintf(&s[pos], len - pos, "b %s%s%s\n", |
| |
278 b->name, |
| |
279 (show && b->alias) ? ":" : "", |
| |
280 (show && b->alias) ? b->alias : ""); |
| |
281 } |
| 277 } |
282 } |
| 278 } |
283 } |
| 279 } |
284 } |
| 280 } |
285 } |
| 281 |
286 |
| 1330 static void toc_keepalive(GaimConnection *gc) |
1335 static void toc_keepalive(GaimConnection *gc) |
| 1331 { |
1336 { |
| 1332 sflap_send(gc, "", 0, TYPE_KEEPALIVE); |
1337 sflap_send(gc, "", 0, TYPE_KEEPALIVE); |
| 1333 } |
1338 } |
| 1334 |
1339 |
| 1335 static const char *toc_list_icon(GaimAccount *a, struct buddy *b) |
1340 static const char *toc_list_icon(GaimAccount *a, GaimBuddy *b) |
| 1336 { |
1341 { |
| 1337 if (!b || (b && b->name && b->name[0] == '+')) { |
1342 if (!b || (b && b->name && b->name[0] == '+')) { |
| 1338 if (a != NULL && isdigit(*gaim_account_get_username(a))) |
1343 if (a != NULL && isdigit(*gaim_account_get_username(a))) |
| 1339 return "icq"; |
1344 return "icq"; |
| 1340 else |
1345 else |
| 1341 return "aim"; |
1346 return "aim"; |
| 1342 } |
1347 } |
| 1343 |
1348 |
| 1344 if (b && b->name && isdigit(b->name[0])) |
1349 if (b && b->name && isdigit(b->name[0])) |
| 1345 return "icq"; |
1350 return "icq"; |
| 1346 return "aim"; |
1351 return "aim"; |
| 1347 } |
1352 } |
| 1348 |
1353 |
| 1349 static void toc_list_emblems(struct buddy *b, char **se, char **sw, char **nw, char **ne) |
1354 static void toc_list_emblems(GaimBuddy *b, char **se, char **sw, char **nw, char **ne) |
| 1350 { |
1355 { |
| 1351 char *emblems[4] = {NULL,NULL,NULL,NULL}; |
1356 char *emblems[4] = {NULL,NULL,NULL,NULL}; |
| 1352 int i = 0; |
1357 int i = 0; |
| 1353 |
1358 |
| 1354 if (!GAIM_BUDDY_IS_ONLINE(b)) { |
1359 if (!GAIM_BUDDY_IS_ONLINE(b)) { |