Mercurial > pidgin
comparison src/buddy.c @ 1713:14caa7df478c
[gaim-migrate @ 1723]
fun stuff
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Fri, 13 Apr 2001 23:18:02 +0000 |
parents | 9b86520e04ac |
children | 8987160e446b |
comparison
equal
deleted
inserted
replaced
1712:560b3117aedf | 1713:14caa7df478c |
---|---|
1039 char *text[1]; | 1039 char *text[1]; |
1040 char buf[256]; | 1040 char buf[256]; |
1041 struct buddy *b; | 1041 struct buddy *b; |
1042 struct group *g; | 1042 struct group *g; |
1043 struct group_show *gs = find_group_show(group); | 1043 struct group_show *gs = find_group_show(group); |
1044 char *good; | |
1044 | 1045 |
1045 if ((b = find_buddy(gc, buddy)) != NULL) | 1046 if ((b = find_buddy(gc, buddy)) != NULL) |
1046 return b; | 1047 return b; |
1047 | 1048 |
1048 g = find_group(gc, group); | 1049 g = find_group(gc, group); |
1057 | 1058 |
1058 b->edittype = EDIT_BUDDY; | 1059 b->edittype = EDIT_BUDDY; |
1059 b->gc = gc; | 1060 b->gc = gc; |
1060 b->present = 0; | 1061 b->present = 0; |
1061 | 1062 |
1062 g_snprintf(b->name, sizeof(b->name), "%s", buddy); | 1063 if (gc->prpl->normalize) |
1063 g_snprintf(b->show, sizeof(b->show), "%s", show ? (show[0] ? show : buddy) : buddy); | 1064 good = (*gc->prpl->normalize)(buddy); |
1065 else | |
1066 good = buddy; | |
1067 | |
1068 g_snprintf(b->name, sizeof(b->name), "%s", good); | |
1069 g_snprintf(b->show, sizeof(b->show), "%s", show ? (show[0] ? show : good) : good); | |
1064 | 1070 |
1065 g->members = g_slist_append(g->members, b); | 1071 g->members = g_slist_append(g->members, b); |
1066 | 1072 |
1067 b->idle = 0; | 1073 b->idle = 0; |
1068 b->caps = 0; | 1074 b->caps = 0; |
1346 { | 1352 { |
1347 struct group *g; | 1353 struct group *g; |
1348 struct buddy *b; | 1354 struct buddy *b; |
1349 GSList *grp; | 1355 GSList *grp; |
1350 GSList *mem; | 1356 GSList *mem; |
1351 char *whoname = g_malloc(strlen(who) + 1); | 1357 char *whoname; |
1352 | 1358 char *(*norm)(const char *); |
1353 strcpy(whoname, normalize(who)); | 1359 |
1354 | |
1355 if (gc) { | 1360 if (gc) { |
1361 if (gc->prpl->normalize) | |
1362 norm = gc->prpl->normalize; | |
1363 else | |
1364 norm = normalize; | |
1365 whoname = g_strdup((*norm)(who)); | |
1356 grp = gc->groups; | 1366 grp = gc->groups; |
1357 while(grp) { | 1367 while(grp) { |
1358 g = (struct group *)grp->data; | 1368 g = (struct group *)grp->data; |
1359 | 1369 |
1360 mem = g->members; | 1370 mem = g->members; |
1361 while(mem) { | 1371 while(mem) { |
1362 b = (struct buddy *)mem->data; | 1372 b = (struct buddy *)mem->data; |
1363 if (!strcasecmp(normalize(b->name), whoname)) { | 1373 if (!strcmp((*norm)(b->name), whoname)) { |
1364 g_free(whoname); | 1374 g_free(whoname); |
1365 return g; | 1375 return g; |
1366 } | 1376 } |
1367 mem = mem->next; | 1377 mem = mem->next; |
1368 } | 1378 } |
1373 } else { | 1383 } else { |
1374 GSList *c = connections; | 1384 GSList *c = connections; |
1375 struct gaim_connection *z; | 1385 struct gaim_connection *z; |
1376 while (c) { | 1386 while (c) { |
1377 z = (struct gaim_connection *)c->data; | 1387 z = (struct gaim_connection *)c->data; |
1388 if (z->prpl->normalize) | |
1389 norm = z->prpl->normalize; | |
1390 else | |
1391 norm = normalize; | |
1392 whoname = g_strdup((*norm)(who)); | |
1378 grp = z->groups; | 1393 grp = z->groups; |
1379 while(grp) { | 1394 while(grp) { |
1380 g = (struct group *)grp->data; | 1395 g = (struct group *)grp->data; |
1381 | 1396 |
1382 mem = g->members; | 1397 mem = g->members; |
1383 while(mem) { | 1398 while(mem) { |
1384 b = (struct buddy *)mem->data; | 1399 b = (struct buddy *)mem->data; |
1385 if (!strcasecmp(normalize(b->name), whoname)) { | 1400 if (!strcmp((*norm)(b->name), whoname)) { |
1386 g_free(whoname); | 1401 g_free(whoname); |
1387 return g; | 1402 return g; |
1388 } | 1403 } |
1389 mem = mem->next; | 1404 mem = mem->next; |
1390 } | 1405 } |
1391 grp = g_slist_next(grp); | 1406 grp = g_slist_next(grp); |
1392 } | 1407 } |
1393 c = c->next; | 1408 c = c->next; |
1394 } | 1409 g_free(whoname); |
1395 g_free(whoname); | 1410 } |
1396 return NULL; | 1411 return NULL; |
1397 } | 1412 } |
1398 } | 1413 } |
1399 | 1414 |
1400 | 1415 |
1404 struct buddy *b; | 1419 struct buddy *b; |
1405 GSList *grp; | 1420 GSList *grp; |
1406 GSList *c; | 1421 GSList *c; |
1407 struct gaim_connection *z; | 1422 struct gaim_connection *z; |
1408 GSList *mem; | 1423 GSList *mem; |
1409 char *whoname = g_malloc(strlen(who) + 1); | 1424 char *whoname; |
1410 | 1425 char *(*norm)(const char *); |
1411 strcpy(whoname, normalize(who)); | 1426 |
1412 if (gc) { | 1427 if (gc) { |
1428 if (gc->prpl->normalize) | |
1429 norm = gc->prpl->normalize; | |
1430 else | |
1431 norm = normalize; | |
1432 whoname = g_strdup((*norm)(who)); | |
1413 grp = gc->groups; | 1433 grp = gc->groups; |
1414 while(grp) { | 1434 while(grp) { |
1415 g = (struct group *)grp->data; | 1435 g = (struct group *)grp->data; |
1416 | 1436 |
1417 mem = g->members; | 1437 mem = g->members; |
1418 while(mem) { | 1438 while(mem) { |
1419 b = (struct buddy *)mem->data; | 1439 b = (struct buddy *)mem->data; |
1420 if (!strcasecmp(normalize(b->name), whoname)) { | 1440 if (!strcmp((*norm)(b->name), whoname)) { |
1421 g_free(whoname); | 1441 g_free(whoname); |
1422 return b; | 1442 return b; |
1423 } | 1443 } |
1424 mem = mem->next; | 1444 mem = mem->next; |
1425 } | 1445 } |
1429 return NULL; | 1449 return NULL; |
1430 } else { | 1450 } else { |
1431 c = connections; | 1451 c = connections; |
1432 while (c) { | 1452 while (c) { |
1433 z = (struct gaim_connection *)c->data; | 1453 z = (struct gaim_connection *)c->data; |
1454 if (z->prpl->normalize) | |
1455 norm = z->prpl->normalize; | |
1456 else | |
1457 norm = normalize; | |
1458 whoname = g_strdup((*norm)(who)); | |
1434 grp = z->groups; | 1459 grp = z->groups; |
1435 while(grp) { | 1460 while(grp) { |
1436 g = (struct group *)grp->data; | 1461 g = (struct group *)grp->data; |
1437 | 1462 |
1438 mem = g->members; | 1463 mem = g->members; |
1439 while(mem) { | 1464 while(mem) { |
1440 b = (struct buddy *)mem->data; | 1465 b = (struct buddy *)mem->data; |
1441 if (!strcasecmp(normalize(b->name), whoname)) { | 1466 if (!strcmp((*norm)(b->name), whoname)) { |
1442 g_free(whoname); | 1467 g_free(whoname); |
1443 return b; | 1468 return b; |
1444 } | 1469 } |
1445 mem = mem->next; | 1470 mem = mem->next; |
1446 } | 1471 } |
1447 grp = g_slist_next(grp); | 1472 grp = g_slist_next(grp); |
1448 } | 1473 } |
1449 c = c->next; | 1474 c = c->next; |
1450 } | 1475 g_free(whoname); |
1451 g_free(whoname); | 1476 } |
1452 return NULL; | 1477 return NULL; |
1453 } | 1478 } |
1454 } | 1479 } |
1455 | 1480 |
1456 | 1481 |