X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Flp.c;h=fe4c019403c43de03c4c035fe12ccf2b6ca1af66;hb=99b65b5be32158ebc793df4ab2b825633e32a100;hp=9ba2eec7c50f401c440228afb9b995646c3d398f;hpb=48adae7cac47f09a5ac0ce7c3b53359b340a1110;p=ppastats.git diff --git a/src/lp.c b/src/lp.c index 9ba2eec..fe4c019 100644 --- a/src/lp.c +++ b/src/lp.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011-2012 jeanfi@gmail.com + * Copyright (C) 2011-2014 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 @@ -21,8 +21,30 @@ #include #include +#include "list.h" #include "lp.h" +char *time_to_str(time_t t) +{ + char *str; + struct tm *tm; + size_t ret; + + tm = localtime(&t); + + if (!tm) + return NULL; + + str = malloc(strlen("YYYY-MM-DDThh:mm:ss") + 1); + ret = strftime(str, strlen("YYYY-MM-DDThh:mm:ss") + 1, "%FT%T", tm); + + if (ret) + return str; + + free(str); + return NULL; +} + struct distro_series *distro_series_new(const char *name, const char *version, const char *title, @@ -68,7 +90,9 @@ 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) + const char *status, + int architecture_specific, + time_t date_created) { struct bpph *h; @@ -79,8 +103,8 @@ struct bpph *bpph_new(const char *binary_package_name, 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; + h->status = strdup(status); + h->date_created = date_created; return h; } @@ -169,3 +193,30 @@ void daily_download_total_list_free(struct daily_download_total **list) } } +struct bpph **bpph_list_add(struct bpph **list, struct bpph *new) +{ + struct bpph **cur, *bpph; + + if (list) + for (cur = list; *cur; cur++) { + bpph = *cur; + + 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; +}