Mercurial > pidgin.yaz
comparison src/toc.c @ 657:4bbc103a3294
[gaim-migrate @ 667]
merge buddy lists instead of overwrite them
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Thu, 10 Aug 2000 08:14:00 +0000 |
parents | eaddaa0dbbcb |
children | 9c49d2456773 |
comparison
equal
deleted
inserted
replaced
656:732ee4f6f541 | 657:4bbc103a3294 |
---|---|
870 char *name; | 870 char *name; |
871 GList *bud; | 871 GList *bud; |
872 int how_many = 0; | 872 int how_many = 0; |
873 | 873 |
874 /* Clean out the permit/deny list!*/ | 874 /* Clean out the permit/deny list!*/ |
875 /* why? if we're going to merge things, then these should stay | |
875 g_list_free(permit); | 876 g_list_free(permit); |
876 g_list_free(deny); | 877 g_list_free(deny); |
877 permit = NULL; | 878 permit = NULL; |
878 deny = NULL; | 879 deny = NULL; |
880 */ | |
879 bud = NULL; | 881 bud = NULL; |
880 | 882 |
881 /* skip "CONFIG:" (if it exists)*/ | 883 /* skip "CONFIG:" (if it exists)*/ |
882 | 884 |
883 if (config != NULL) { | 885 if (config != NULL) { |
895 } else if (*c == 'b' && !find_buddy(c+2)) { | 897 } else if (*c == 'b' && !find_buddy(c+2)) { |
896 add_buddy(current, c+2); | 898 add_buddy(current, c+2); |
897 how_many++; | 899 how_many++; |
898 bud = g_list_append(bud, c+2); | 900 bud = g_list_append(bud, c+2); |
899 } else if (*c == 'p') { | 901 } else if (*c == 'p') { |
902 GList *d = deny; | |
900 name = g_malloc(strlen(c+2) + 2); | 903 name = g_malloc(strlen(c+2) + 2); |
901 g_snprintf(name, strlen(c+2) + 1, "%s", c+2); | 904 g_snprintf(name, strlen(c+2) + 1, "%s", c+2); |
902 permit = g_list_append(permit, name); | 905 while (d) { |
906 char *n = g_strdup(normalize(name)); | |
907 if (!strcmp(n, normalize(d->data))) | |
908 break; | |
909 d = d->next; | |
910 g_free(n); | |
911 } | |
912 if (!d) | |
913 permit = g_list_append(permit, name); | |
903 } else if (*c == 'd') { | 914 } else if (*c == 'd') { |
915 GList *d = permit; | |
904 name = g_malloc(strlen(c+2) + 2); | 916 name = g_malloc(strlen(c+2) + 2); |
905 g_snprintf(name, strlen(c+2) + 1, "%s", c+2); | 917 g_snprintf(name, strlen(c+2) + 1, "%s", c+2); |
906 deny = g_list_append(deny, name); | 918 while (d) { |
919 char *n = g_strdup(normalize(name)); | |
920 if (!strcmp(n, normalize(d->data))) | |
921 break; | |
922 d = d->next; | |
923 g_free(n); | |
924 } | |
925 if (!d) | |
926 deny = g_list_append(deny, name); | |
907 } else if (*c == 'm') { | 927 } else if (*c == 'm') { |
908 sscanf(c + strlen(c) - 1, "%d", &permdeny); | 928 sscanf(c + strlen(c) - 1, "%d", &permdeny); |
909 if (permdeny == 0) | 929 if (permdeny == 0) |
910 permdeny = 1; | 930 permdeny = 1; |
911 } | 931 } |