avoid 'reload' to show local fs
[prss.git] / src / main.c
index d9182d3..b9e6860 100644 (file)
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
 
+#include <config.h>
 #include "http.h"
-#include "log.h"
+#include <plog.h>
+#include <pstr.h>
 #include "ttrss.h"
 #include "ttrss_ws.h"
 #include "webbrowser.h"
@@ -281,12 +283,25 @@ static struct headline *get_selected_headline(GtkTreeIter *iter)
        return NULL;
 }
 
+static char *headline_to_markup(struct headline *h)
+{
+       return strrepg(h->title, "&", "&amp;");
+}
+
 static char *headline_get_formated_headline(struct headline *h)
 {
+       char *tmp, *res;
+
+       tmp = headline_to_markup(h);
+
        if (h->unread)
-               return g_strdup_printf("<b>%s</b>", h->title);
+               res = g_strdup_printf("<b>%s</b>", tmp);
        else
-               return strdup(h->title);
+               res = strdup(tmp);
+
+       free(tmp);
+
+       return res;
 }
 
 static char *headline_get_date(struct headline *h)
@@ -366,7 +381,7 @@ int headline_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
        GtkTreeIter iter;
        GtkTreeModel *model;
        struct headline *headline;
-       char *str, *date;
+       char *str, *date, *title;
 
        log_debug("headline_cursor_changed_cbk()");
 
@@ -376,7 +391,9 @@ int headline_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
        headline = get_selected_headline(&iter);
 
        if (headline) {
-               gtk_label_set_text(w_headline_title, headline->title);
+               title = headline_to_markup(headline);
+               gtk_label_set_markup(w_headline_title, title);
+
                gtk_label_set_text(w_headline_date, ctime(&headline->date));
 
                str = ttrss_get_headline_content(headline);
@@ -397,11 +414,12 @@ int headline_cursor_changed_cbk(GtkTreeView *treeview, gpointer data)
                date = headline_get_date(headline);
                gtk_list_store_set(GTK_LIST_STORE(model),
                                   &iter,
-                                  COL_HEADLINE_TITLE, headline->title,
+                                  COL_HEADLINE_TITLE, title,
                                   COL_HEADLINE_DATE, date,
                                   COL_HEADLINE_EPOCH_TIME, headline->date,
                                   -1);
                free(date);
+               free(title);
        } else {
                log_debug("headline not found");
        }
@@ -604,8 +622,8 @@ int main(int argc, char **argv)
 
        panh = GTK_WIDGET(gtk_builder_get_object(builder, "webkit_window"));
 
-       webbrowser_init(GTK_LABEL(gtk_builder_get_object(builder,
-                                                        "browser_status")));
+       webbrowser_init(GTK_STATUSBAR(gtk_builder_get_object
+                                     (builder, "statusbar")));
 
        gtk_container_add(GTK_CONTAINER(panh), web_get_widget());