Comment 2 for bug 151516

Revision history for this message
ksterker (kai-sterker) wrote :

This problem does not exist in the upstream version. It is introduced by a debian patch to the file win_ttf.cc

+Index: adonthell-0.3.4.cvs.20050813/src/win_ttf.cc
+===================================================================
+--- adonthell-0.3.4.cvs.20050813.orig/src/win_ttf.cc 2006-08-10 20:50:05.000000000 +0200
++++ adonthell-0.3.4.cvs.20050813/src/win_ttf.cc 2006-08-10 20:50:18.000000000 +0200
+@@ -137,7 +137,7 @@
+ if (s == NULL) return *(glyphs[' ']);
+
+ image tmp (s, bg);
+- image shadow (TTF_RenderUNICODE_Solid (ttf, unichar, bg), white);
++ image shadow (TTF_RenderUNICODE_Shaded (ttf, unichar, bg, bg), white);
+ image *glph = new image (tmp.length(), height_, false);
+ glph->fillrect (0, 0, tmp.length()+1, height_+1, screen::trans_col(), NULL);
+ shadow.draw (1, 1+height_-shadow.height(), 0, 0, shadow.length(), shadow.height(), NULL, glph);
--- adonthell-0.3.4.cvs.20050813.orig/debian/control
+++ adonthell-0.3.4.cvs.20050813/debian/control

It is supposed to fix a segfault that since is also fixed in upstream CVS. The proper patch __to the original version from CVS__ that corrects the segfault and does not exhibit the black boxes around the dialog text would be

--- win_ttf.cc 2004/12/13 08:56:58 1.2
+++ win_ttf.cc 2006/09/03 20:48:08 1.3
@@ -1,5 +1,5 @@
 /*
- $Id: win_ttf.cc,v 1.2 2004/12/13 08:56:58 ksterker Exp $
+ $Id: win_ttf.cc,v 1.3 2006/09/03 20:48:08 ksterker Exp $

    (C) Copyright 2004 Kai Sterker
    Part of the Adonthell Project http://adonthell.linuxgames.com
@@ -137,10 +137,20 @@
     if (s == NULL) return *(glyphs[' ']);

     image tmp (s, bg);
- image shadow (TTF_RenderUNICODE_Solid (ttf, unichar, bg), white);
     image *glph = new image (tmp.length(), height_, false);
     glph->fillrect (0, 0, tmp.length()+1, height_+1, screen::trans_col(), NULL);
- shadow.draw (1, 1+height_-shadow.height(), 0, 0, shadow.length(), shadow.height(), NULL, glph);
+
+ s = TTF_RenderUNICODE_Solid (ttf, unichar, bg);
+ if (s != NULL)
+ {
+ image shadow (s, white);
+ shadow.draw (1, 1+height_-shadow.height(), 0, 0, shadow.length(), shadow.height(), NULL, glph);
+ }
+ else
+ {
+ fprintf (stderr, "%s\n", TTF_GetError ());
+ }
+
     tmp.draw (0, height_-tmp.height(), 0, 0, tmp.length(), tmp.height(), NULL, glph);
     glyphs[glyph] = glph;

Kai