To: vim-dev@vim.org Subject: Patch 6.1b.016 Fcc: outbox From: Bram Moolenaar MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 6.1b.016 Problem: GTK: loading a fontset that works partly, Vim might hang or crash. Solution: Avoid that char_width becomes zero. (Yasuhiro Matsumoto) Files: src/gui_gtk_x11.c *** ../vim61b.015/src/gui_gtk_x11.c Fri Mar 8 20:01:49 2002 --- src/gui_gtk_x11.c Wed Mar 13 21:19:58 2002 *************** *** 2686,2692 **** { gui.norm_font = NOFONT; gui.fontset = (GuiFontset)font; ! gui.char_width = gdk_string_width(font, " "); } else #endif --- 2686,2694 ---- { gui.norm_font = NOFONT; gui.fontset = (GuiFontset)font; ! /* Use two bytes, this works around the problem that the result would ! * be zero if no 8-bit font was found. */ ! gui.char_width = gdk_string_width(font, "xW") / 2; } else #endif *************** *** 2698,2703 **** --- 2700,2709 ---- gui.char_width = ((XFontStruct *) GDK_FONT_XFONT(font))->max_bounds.width; } + + /* A zero width may cause a crash. Happens for semi-invalid fontsets. */ + if (gui.char_width <= 0) + gui.char_width = 8; gui.char_height = font->ascent + font->descent + p_linespace; gui.char_ascent = font->ascent + p_linespace / 2; *** ../vim61b.015/src/version.c Fri Mar 15 21:59:22 2002 --- src/version.c Fri Mar 15 22:20:18 2002 *************** *** 608,609 **** --- 608,611 ---- { /* Add new patch number below this line */ + /**/ + 16, /**/ -- ARTHUR: Bloody peasant! DENNIS: Oh, what a give away. Did you here that, did you here that, eh? That's what I'm on about -- did you see him repressing me, you saw it didn't you? The Quest for the Holy Grail (Monty Python) /// Bram Moolenaar -- Bram@moolenaar.net -- http://www.moolenaar.net \\\ /// Creator of Vim -- http://vim.sf.net -- ftp://ftp.vim.org/pub/vim \\\ \\\ Project leader for A-A-P -- http://www.a-a-p.org /// \\\ Help me helping AIDS orphans in Uganda - http://iccf-holland.org ///