49 lines
1.7 KiB
Plaintext
49 lines
1.7 KiB
Plaintext
$OpenBSD: patch-src_rss-config-factory_c,v 1.7 2013/04/13 12:36:26 ajacoutot Exp $
|
|
|
|
From 88979b7c9f609299443f87882a8d7f2e29b9d5e9 Mon Sep 17 00:00:00 2001
|
|
From: Lucian Langa <lucilanga@gnome.org>
|
|
Date: Tue, 22 Jan 2013 08:00:44 +0000
|
|
Subject: avoid crash in editing feeds in list
|
|
|
|
--- src/rss-config-factory.c.orig Tue Jan 8 16:44:05 2013
|
|
+++ src/rss-config-factory.c Sat Apr 13 14:25:33 2013
|
|
@@ -1849,6 +1849,7 @@ feeds_dialog_edit(GtkDialog *d, gpointer data)
|
|
GtkTreeModel *model;
|
|
GtkTreeIter iter;
|
|
gchar *name, *feed_name;
|
|
+ gchar *tmp_feed_name;
|
|
gpointer key;
|
|
add_feed *feed = NULL;
|
|
|
|
@@ -1860,13 +1861,23 @@ feeds_dialog_edit(GtkDialog *d, gpointer data)
|
|
&iter,
|
|
3, &feed_name,
|
|
-1);
|
|
- key = lookup_key(feed_name);
|
|
- name = g_hash_table_lookup(rf->hr, key);
|
|
- if (name) {
|
|
- feed = create_dialog_add(name, feed_name);
|
|
- if (feed->dialog)
|
|
- gtk_widget_destroy(feed->dialog);
|
|
- process_dialog_edit(feed, name, feed_name);
|
|
+ /* seems we get the data from gtk_tree with html entities already translated
|
|
+ * so instead of adding versioned defs we fallback to decoding html entities
|
|
+ * in case key is not found, and in case that fails too we exit gracefully
|
|
+ */
|
|
+ if (!(key = lookup_key(feed_name))) {
|
|
+ tmp_feed_name = feed_name;
|
|
+ feed_name = decode_entities(feed_name);
|
|
+ g_free(tmp_feed_name);
|
|
+ key = lookup_key(feed_name);
|
|
+ }
|
|
+ if (key) {
|
|
+ if (name = g_hash_table_lookup(rf->hr, key)) {
|
|
+ feed = create_dialog_add(name, feed_name);
|
|
+ if (feed->dialog)
|
|
+ gtk_widget_destroy(feed->dialog);
|
|
+ process_dialog_edit(feed, name, feed_name);
|
|
+ }
|
|
}
|
|
if (feed && feed->feed_url)
|
|
store_redraw(GTK_TREE_VIEW(rf->treeview));
|