Commit Diff


commit - aecd382fde51be4e9bb3c68de70bf800a38590f0
commit + 17a2e58047a50a92b60ba544673b4ecc365a9420
blob - 8dff25b7b1f26fbacab1d270d3da339313b4c2df
blob + a8ac4c300b6585e272616dd2216d13522ceaa0f7
--- src/common/defs.h
+++ src/common/defs.h
@@ -102,9 +102,6 @@
 #define VSPACING_NARROW_2		2
 #define VBOX_BORDER			8
 #define DEFAULT_ENTRY_WIDTH		80
-/* labels bigger than this causes crash with the X Window System error:
-   'BadAlloc (insufficient resources for operation)' */
-#define MAX_MENU_LABEL_LENGTH		5453
 
 #define DEFAULT_PIXMAP_THEME	"INTERNAL_DEFAULT"
 
blob - 63db7fa1574c75519d4bf2d526203a364a0e8115
blob + 674c52b26190b88a800244bbc0d2e5ceb58c1f9f
--- src/gtk/menu.c
+++ src/gtk/menu.c
@@ -111,25 +111,6 @@ gchar *cm_menu_item_get_shortcut(GtkUIManager *gui_man
 
 }
 
-GtkWidget *cm_menu_item_new_label_from_url(gchar *url)
-{
-	gint len = strlen(url);
-	if (len > MAX_MENU_LABEL_LENGTH) {
-		g_message("Refusing a %d bytes string as menu label\n", len);
-		url[64] = '\0', url[63] = url[62] = url[61] = '.', url[60] = ' ';
-		GtkWidget *newlabel = gtk_menu_item_new_with_label(url);
-		gtk_widget_set_tooltip_markup(GTK_WIDGET(newlabel),
-			g_strconcat("<span><b>", _("Warning:"), "</b>",
-			_("This URL was too long for displaying and\n"
-			"has been truncated for safety. This message could be\n"
-			"corrupted, malformed or part of some DoS attempt."),
-			"</span>", NULL));
-		return newlabel;
-	}
-
-	return gtk_menu_item_new_with_label(url);
-}
-
 void cm_toggle_menu_set_active_full(GtkUIManager *gui_manager, gchar *menu, gboolean active)
 {
 	GtkWidget *widget;
blob - 78c7fe44f14f8a7fe2a49cf8ac4fbff41d264f43
blob + bc53322fc1bd53782e6caf8d37dbde258fda5b82
--- src/gtk/menu.h
+++ src/gtk/menu.h
@@ -14,7 +14,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * 
+ *
  */
 
 #ifndef __MENU_H__
@@ -91,7 +91,6 @@ void cm_toggle_menu_set_active(gchar *menu, gboolean a
 void cm_menu_set_sensitive_full(GtkUIManager *gui_manager, const gchar *menu, gboolean sensitive);
 void cm_toggle_menu_set_active_full(GtkUIManager *gui_manager, gchar *menu, gboolean active);
 gchar *cm_menu_item_get_shortcut(GtkUIManager *gui_manager, gchar *menu);
-GtkWidget *cm_menu_item_new_label_from_url(gchar *label);
 
 void menu_set_sensitive_all(GtkMenuShell *menu_shell, gboolean sensitive);
 
blob - 5f56a0496b38d7a369d2d6f60104d27b9a68b995
blob + 2131f6d77fe733a7c11ecc4cc0c33fc2d008260b
--- src/mainwindow.c
+++ src/mainwindow.c
@@ -75,6 +75,12 @@
 #include "socket.h"
 #include "send_message.h"
 
+/*
+ * longer labels crash the X Window System with error:
+ * 'BadAlloc (insufficient resources for operation)'
+ */
+#define MAX_MENU_LABEL_LENGTH		5453
+
 /* list of all instantiated MainWindow */
 static GList *mainwin_list = NULL;
 
@@ -2571,7 +2577,7 @@ static gint mailing_list_populate_submenu (GtkWidget *
 {
 	GtkWidget *item, *menu;
 	const gchar *url_pt ;
-	gchar url_decoded[BUFFSIZE];
+	gchar url_decoded[MAX_MENU_LABEL_LENGTH];
 	GList *children, *amenu;
 	gint menu_nb = 0;
 
@@ -2590,7 +2596,7 @@ static gint mailing_list_populate_submenu (GtkWidget *
 			get_url_part (&url_pt, url_decoded);
 			item = NULL;
 			if (!g_ascii_strncasecmp(url_decoded, "mailto:", 7)) {
- 				item = cm_menu_item_new_label_from_url ((url_decoded));
+ 				item = gtk_menu_item_new_with_label(url_decoded);
 				g_signal_connect(G_OBJECT(item), "activate",
 						 G_CALLBACK(mailing_list_compose),
 						 NULL);
@@ -2598,7 +2604,7 @@ static gint mailing_list_populate_submenu (GtkWidget *
  			else if (!g_ascii_strncasecmp(url_decoded, "http:", 5) ||
 				 !g_ascii_strncasecmp(url_decoded, "https:",6)) {
 
-				item = cm_menu_item_new_label_from_url ((url_decoded));
+				item = gtk_menu_item_new_with_label(url_decoded);
 				g_signal_connect(G_OBJECT(item), "activate",
 						 G_CALLBACK(mailing_list_open_uri),
 						 NULL);