This is the mail archive of the
cygwin-xfree
mailing list for the Cygwin XFree86 project.
Broken Font Loading
- From: Robert Martin <rsmartin at ucsd dot edu>
- To: cygwin-xfree at cygwin dot com
- Date: Thu, 29 Jan 2009 12:49:04 -0800
- Subject: Broken Font Loading
- Reply-to: cygwin-xfree at cygwin dot com
I recently accidentally upgraded my Cygwin/X to Version 1.5.3.
One of the applications I use, amrvis, from Berkeley lab now crashes
when I try to get a line plot when it still works with a previous
version of Cygwin/X on another machine (the about dialog just says the
dialog is from 2004/3/25, but I think it's actually newer than that...
man for 'X' says version 6.8.2.0).
Here's what I could track down that seemed relevant.
-----------------------------------------
Program received signal SIGSEGV, Segmentation fault.
0x0000000000470360 in XYPlotWin (this=0x7b7f90, title=<value optimized out>,
app=<value optimized out>, w=<value optimized out>,
parent=<value optimized out>, type=<value optimized out>, curr_frame=0)
at XYPlotWin.cpp:397
397 gcvals.font = labeltextFont->fid;
(gdb) p labeltextFont->fid
Cannot access memory at address 0x9
XYPlotWin.cpp:392: labeltextFont = PM_FONT("LabelFont");
XYPlotWin.cpp:102:#define PM_FONT(name)
((parameters->Get_Parameter(name, ¶m_temp)) ? \
XYPlotWin.cpp-103- param_temp.fontv.value : (BL_ASSERT(0),
(XFontStruct *) 0))
XYPlotParam.cpp:170: DEF("LabelFont", FONT, DEF_LABEL_FONT);
XYPlotDefaults.H:52:#define DEF_LABEL_FONT "helvetica-10"
XYPlot.Defaults:12:LabelFont FONT helvetica-10
XYPlotParam.cpp:
268 switch (type) {
...
287 case FONT:
288 if( ! do_font(form, &result->fontv.value)) {
289 fprintf(stderr, paramstr, name, form, "font", DEF_FONT);
290 do_font(DEF_FONT, &result->fontv.value);
291 }
292 break;
370 int XYPlotParameters::do_font(char *name, XFontStruct **font_info) {
371 char name_copy[DEF_MAX_FONT], query_spec[DEF_MAX_FONT];
372 char *font_family, *font_size, **font_list;
373 int font_size_value, font_count, i;
374
375 // First attempt to interpret as font family/size
376 strcpy(name_copy, name);
377 if((font_size = strchr(name_copy, '-'))) {
378 *font_size = '\0';
379 font_family = name_copy;
380 ++font_size;
381 font_size_value = atoi(font_size);
382 if(font_size_value > 0) {
383 // Still a little iffy -- what about weight and roman vs.
other
384 sprintf(query_spec, ISO_FONT, font_family, font_size_value
* 10);
385 font_list = XListFonts(gaPtr->PDisplay(), query_spec,
386 DEF_MAX_NAMES, &font_count);
387
388 // Load first one that you can
389 for(i = 0; i < font_count; ++i) {
390 if((*font_info = XLoadQueryFont(gaPtr->PDisplay(),
font_list[i]))) {
391 break;
392 }
393 }
394 if(*font_info) {
395 return 1;
396 }
397 }
398 }
399 // Assume normal font name
400 *font_info = XLoadQueryFont(gaPtr->PDisplay(), name);
401 if((*font_info = XLoadQueryFont(gaPtr->PDisplay(), name)) !=
NULL) {
402 return 1;
403 }
404 return 0;
405 }
--------------------------
Any ideas? Is this even the right place to send questions?
-Rob Martin
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://x.cygwin.com/docs/
FAQ: http://x.cygwin.com/docs/faq/