diff src/gui_gtk_x11.c @ 26:404aac550f35 v7.0017

updated for version 7.0017
author vimboss
date Thu, 07 Oct 2004 21:02:47 +0000
parents cc049b00ee70
children 7f788cd27415
line wrap: on
line diff
--- a/src/gui_gtk_x11.c
+++ b/src/gui_gtk_x11.c
@@ -5239,6 +5239,14 @@ not_ascii:
 	int		last_glyph_rbearing;
 	int		cells = 0;  /* cells occupied by current cluster */
 
+	/* Safety check: pango crashes when invoked with invalid utf-8
+	 * characters. */
+	if (!utf_valid_string(s, s + len))
+	{
+	    column_offset = len;
+	    goto skipitall;
+	}
+
 	/* original width of the current cluster */
 	cluster_width = PANGO_SCALE * gui.char_width;
 
@@ -5372,6 +5380,7 @@ not_ascii:
 	pango_attr_list_unref(attr_list);
     }
 
+skipitall:
     if (flags & DRAW_UNDERL)
 	gdk_draw_line(gui.drawarea->window,
 		      gui.text_gc,