Fri, 13 Jul 2007 09:02:45 +0000
- Add purple_certificate_copy_list
| libpurple/certificate.c | file | annotate | diff | comparison | revisions | |
| libpurple/certificate.h | file | annotate | diff | comparison | revisions |
--- a/libpurple/certificate.c Fri Jul 13 08:42:59 2007 +0000 +++ b/libpurple/certificate.c Fri Jul 13 09:02:45 2007 +0000 @@ -108,6 +108,22 @@ return (crt->scheme->copy_certificate)(crt); } +GList * +purple_certificate_copy_list(GList *crt_list) +{ + GList *new, *l; + + /* First, make a shallow copy of the list */ + new = g_list_copy(crt_list); + + /* Now go through and actually duplicate each certificate */ + for (l = new; l; l = l->next) { + l->data = purple_certificate_copy(l->data); + } + + return new; +} + void purple_certificate_destroy (PurpleCertificate *crt) {
--- a/libpurple/certificate.h Fri Jul 13 08:42:59 2007 +0000 +++ b/libpurple/certificate.h Fri Jul 13 09:02:45 2007 +0000 @@ -379,6 +379,15 @@ purple_certificate_copy(PurpleCertificate *crt); /** + * Duplicates an entire list of certificates + * + * @param crt_list List to duplicate + * @return New list copy + */ +GList * +purple_certificate_copy_list(GList *crt_list); + +/** * Destroys and free()'s a Certificate * * @param crt Instance to destroy. May be NULL.