+ return cache_dir;
+}
+
+static void file_set_content(const char *path, const char *content)
+{
+ FILE *fp;
+
+ fp = fopen(path, "w");
+ if (fp) {
+ fwrite(content, 1, strlen(content), fp);
+ fclose(fp);
+ }
+}
+
+const char *ttrss_get_headline_content(struct headline *h)
+{
+ const char *cache_dir;
+ char *path, *content;
+
+ cache_dir = get_cache_dir();
+ if (cache_dir) {
+ path = g_strdup_printf("%s/%d", cache_dir, h->id);
+
+ content = file_get_content(path);
+
+ if (content)
+ file_set_content(path, content);
+ else
+ content = ws_get_article_content(h->id);
+
+ g_free(path);
+
+ return content;
+ }
+
+ return NULL;