X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Flp.c;h=bd9ba5d95fd1aa11162e51e2e975ba8eeb4145f0;hb=a9435991d03d0bd9e81d6cb6003013bec4b2e6e9;hp=e927b2e4ef2561b5f5be8e32fa8299c82b92590f;hpb=f2b0384f6231324f53e78aa458b9a46b0e659c43;p=ppastats.git diff --git a/src/lp.c b/src/lp.c index e927b2e..bd9ba5d 100644 --- a/src/lp.c +++ b/src/lp.c @@ -1,26 +1,27 @@ /* - Copyright (C) 2011 jeanfi@gmail.com - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA -*/ - + * Copyright (C) 2011-2012 jeanfi@gmail.com + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + * 02110-1301 USA + */ #include +#include #include +#include "list.h" #include "lp.h" struct distro_series *distro_series_new(const char *name, @@ -47,46 +48,50 @@ void distro_series_free(struct distro_series *d) free(d->version); free(d->title); free(d->displayname); + + free(d); } } -void -binary_package_publishing_history_free(struct binary_package_publishing_history *b) +void bpph_free(struct bpph *b) { if (b) { free(b->binary_package_name); free(b->binary_package_version); free(b->distro_arch_series_link); free(b->self_link); + free(b->status); free(b); } } -struct binary_package_publishing_history * -binary_package_publishing_history_new(const char *binary_package_name, - const char *binary_package_version, - const char *distro_arch_series_link, - const char *self_link) +struct bpph *bpph_new(const char *binary_package_name, + const char *binary_package_version, + const char *distro_arch_series_link, + const char *self_link, + int architecture_specific) { - struct binary_package_publishing_history *b; + struct bpph *h; - b = malloc(sizeof(struct binary_package_publishing_history)); + h = malloc(sizeof(struct bpph)); - b->binary_package_name = strdup(binary_package_name); - b->binary_package_version = strdup(binary_package_version); - b->distro_arch_series_link = strdup(distro_arch_series_link); - b->self_link = strdup(self_link); + h->binary_package_name = strdup(binary_package_name); + h->binary_package_version = strdup(binary_package_version); + h->distro_arch_series_link = strdup(distro_arch_series_link); + h->self_link = strdup(self_link); + h->architecture_specific = architecture_specific; + h->status = NULL; + h->date_created.tm_isdst = -1; - return b; + return h; } -void -binary_package_publishing_history_list_free(struct binary_package_publishing_history **list) +void bpph_list_free(struct bpph **list) { - struct binary_package_publishing_history **l_cur = list; + struct bpph **l_cur = list; while (*l_cur) { - binary_package_publishing_history_free(*l_cur); + bpph_free(*l_cur); l_cur++; } @@ -165,16 +170,30 @@ void daily_download_total_list_free(struct daily_download_total **list) } } -int list_length(void **list) +struct bpph **bpph_list_add(struct bpph **list, struct bpph *new) { - int n; + struct bpph **cur, *bpph; - n = 0; - while (*list) { - list++; - n++; - } + if (list) + for (cur = list; *cur; cur++) { + bpph = *cur; - return n; + if (!strcmp(bpph->self_link, new->self_link)) + return list; + } + + return (struct bpph **)list_add((void **)list, new); } +struct bpph **bpph_list_append_list(struct bpph **list1, struct bpph **list2) +{ + struct bpph **cur; + + if (!list2) + return list1; + + for (cur = list2; *cur; cur++) + list1 = bpph_list_add(list1, *cur); + + return list1; +}