(no commit message)
[prss.git] / src / ttrss_model.c
index c67ad65..a1cdcef 100644 (file)
@@ -18,6 +18,7 @@
  */
 
 #include <stdlib.h>
+#include <stdio.h>
 #include <string.h>
 
 #include "ttrss_model.h"
@@ -81,8 +82,59 @@ struct headline *feed_get_headline(struct feed *feed, int id)
        return NULL;
 }
 
+void headline_free(struct headline *headline)
+{
+       if (headline) {
+               free(headline->url);
+               free(headline->title);
+               free(headline->excerpt);
+               free(headline->content);
+               free(headline);
+       }
+}
+
+struct headline *headline_new(int id, const char *url, const char *title)
+{
+       struct headline *h;
+
+       h = malloc(sizeof(struct headline));
+       h->id = id;
+       h->url = strdup(url);
+       h->title = strdup(title);
+       h->unread = -1;
+       h->excerpt = NULL;
+       h->content = NULL;
+       
+       return h;
+}
+
 void headlines_free(struct headline **headlines)
 {
+       struct headline **cur;
+
+       if (headlines) {
+               cur = headlines;
+               while (*cur) {
+                       headline_free(*cur);
+                       cur++;
+               }
+               free(headlines);
+       }
+}
+
+struct feed *feed_new(int id, const char *url, const char *title)
+{
+       struct feed *f;
+
+       f = malloc(sizeof(struct feed));
+
+       f->id = id;
+       f->url = strdup(url);
+       f->title = strdup(title);
+       f->unread = -1;
+       f->headlines = NULL;
+
+       return f;
 }
 
 void feed_free(struct feed *feed)
@@ -110,3 +162,19 @@ void feeds_free(struct feed **feeds)
                free(feeds);
        }
 }
+
+struct feed *feeds_get_feed(struct feed **feeds, int id)
+{
+       struct feed **cur;
+
+       printf("%p\n", feeds);
+
+       if (feeds)
+               for (cur = feeds; *cur; cur++)
+                       if ((*cur)->id == id) {
+                               printf("match!\n");
+                               return *cur;
+                       }
+
+       return NULL;
+}