-static int list_length(void **list)
-{
- int n;
-
- if (!list)
- return 0;
-
- n = 0;
- while (*list) {
- n++;
- list++;
- }
-
- return n;
-}
-
-static void **list_add(void **list, void *item)
-{
- int n;
- void **result;
-
- n = list_length(list);
-
- result = malloc((n + 1 + 1) * sizeof(void *));
-
- if (list)
- memcpy(result, list, n * sizeof(void *));
-
- result[n] = item;
- result[n + 1] = NULL;
-
- return result;
-}
-
-struct headline **
-headlines_add(struct headline **list, struct headline *h)
-{
- return (struct headline **)list_add((void **)list, (void *)h);
-}
-
-struct headline *feed_get_headline(struct feed *feed, int id)
-{
- struct headline **headlines;
-
- headlines = feed->headlines;
- if (headlines)
- while (*headlines) {
- if ((*headlines)->id == id)
- return *headlines;
- headlines++;
- }
-
- return NULL;
-}