--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/vte-10-pre-edit-crash-on-close.diff Sat Jun 24 00:06:26 2006 +0000
@@ -0,0 +1,33 @@
+--- vte-0.11.13/src/vte.c 2005-05-13 08:15:38.839116000 +0530
++++ vte-0.11.13-new/src/vte.c 2005-05-13 08:17:33.949458000 +0530
+@@ -854,13 +854,11 @@ vte_invalidate_cursor_once(gpointer data
+ row);
+ }
+ if (cell != NULL) {
++ int charwidth;
+ columns = cell->columns;
+- if (_vte_draw_get_char_width(terminal->pvt->draw,
+- cell->c,
+- cell->columns) >
+- terminal->char_width * columns) {
++ charwidth = terminal->pvt->draw ? _vte_draw_get_char_width(terminal->pvt->draw, cell->c, cell->columns) : 1;
++ if (charwidth > terminal->char_width * columns)
+ columns++;
+- }
+ }
+ if (preedit_width > 0) {
+ columns += preedit_width;
+@@ -13927,10 +13925,9 @@ vte_terminal_paint(GtkWidget *widget, Gd
+ item.y = row * height;
+ cursor_width = item.columns * width;
+ if (cell) {
+- cursor_width = MAX(cursor_width,
+- _vte_draw_get_char_width(terminal->pvt->draw,
+- cell->c,
+- cell->columns));
++ int charwidth;
++ charwidth = terminal->pvt->draw ? _vte_draw_get_char_width(terminal->pvt->draw, cell->c, cell->columns) : 1;
++ cursor_width = MAX(cursor_width, charwidth);
+ }
+ if (GTK_WIDGET_HAS_FOCUS(GTK_WIDGET(terminal))) {
+ selected = vte_cell_is_selected(terminal, col, drow,