bug-xboard
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-XBoard] [bug #33241] xboard quits with "Unable to create font s


From: h.g. muller
Subject: Re: [Bug-XBoard] [bug #33241] xboard quits with "Unable to create font set."
Date: Tue, 17 May 2011 09:28:18 +0200

is there some way I can get more debug information from xboard?

To change the fonts in XBoard you wold need the options -font, -clockFont
and -coordFont, and give them that very long string as value argument.
That is a bit inconvenient on the command line (and presumably you will keep
getting the error unless you set all three of them to a valid value), so it
might be better to edit the ~/.xboardrc settings file. This will save (for each board
size you ever used separately) the font spec that actually matched the line
you originally gave (or was default) for the -font arguments.

The only way to get debug information from XBoard is run it with the option "-debug".
This puts the info on a file called xboard.debug. You can make it appear real-time
in the console by adding the option "-debugFile stderr".

I don't think there would be any extra info relevant for this problem, though.
The relevant code (from xboard.c) seems to be this:

    char **fonts, *p, *best, *scalable, *scalableTail;
    int i, j, nfonts, minerr, err, pxlSize;

#ifdef ENABLE_NLS
    char **missing_list;
    int missing_count;
    char *def_string, *base_fnt_lst, strInt[3];
    XFontSet fntSet;
    XFontStruct **fnt_list;
    base_fnt_lst = calloc(1, strlen(pattern) + 3);
    snprintf(strInt, sizeof(strInt)/sizeof(strInt[0]), "%d", targetPxlSize);
    p = strstr(pattern, "--");
    strncpy(base_fnt_lst, pattern, p - pattern + 2);
    strcat(base_fnt_lst, strInt);
    strcat(base_fnt_lst, strchr(p + 2, '-'));

    if ((fntSet = XCreateFontSet(xDisplay,
                                 base_fnt_lst,
                                 &missing_list,
                                 &missing_count,
                                 &def_string)) == NULL) {

       fprintf(stderr, _("Unable to create font set.\n"));
       exit (2);
    }

    nfonts = XFontsOfFontSet(fntSet, &fnt_list, &fonts);
#else
    fonts = XListFonts(xDisplay, pattern, 999999, &nfonts);
    if (nfonts < 1) {
        fprintf(stderr, _("%s: no fonts match pattern %s\n"),
                programName, pattern);
        exit(2);
    }
#endif

Some printfs could be added here to get more info on what was actully passed
to the failing call XtCreateFontSet, and what it returned for missing_list etc.

I can add that so far I have not even succeded to get as far as running into this
error message; my attempts to run a foreign language lways end in the message
that the C library did not supports it, and then it runs fine (but in English).
reply via email to

[Prev in Thread] Current Thread [Next in Thread]