Help with special characters

I’ve been using X Fonts to write text in my OpenGL app for a while now, but when I tried to enable multi-language support, I found that special characters are messing up. I searched these forums and found a few ideas, but haven’t been able to get it to work. Can someone please point out where I’m going wrong here? Special characters are simply not being printed correctly – sometimes I get two random characters in place of the one I want, sometimes I get a different font altogether! I’ve checked that the font I’m using can display all the characters I need:

Here’s the font initialization function.
The fontName string contains “--helvetica-bold-r-normal--12-------*”
The fontBase variable is of type GLuint.

int fontInit(char* fontName)
{
        fontBase = glGenLists(256);
        if (!glIsList(fontBase))
        {
                fprintf(stderr, "font_init: Out of display lists. 
");
                return -1;
        }

        Display* display = XOpenDisplay(NULL);
        if (display == 0)
        {
                fprintf(stderr, "XOpenDisplay() failed. 
");
                return -1;
        }

        XFontStruct* font_info = XLoadQueryFont(display, f);
        if (!font_info)
        {
                fprintf(stderr, "XLoadQueryFont() failed.
");
                return -1;
        }

        int first = font_info->min_char_or_byte2;
        int last  = font_info->max_char_or_byte2;
        glXUseXFont(font_info->fid, first, last-first+1, base+first);

        return 0;
}

 
 

And here’s how I actually display text:

void printString(char* s)
{
        if (s && strlen(s))
        {
             glPushAttrib(GL_LIST_BIT);
             glListBase(fontBase);
             glCallLists(strlen(s), GL_BYTE, (GLubyte *)s);
             glPopAttrib();
        }
}


 

I’m tearing my hair out on this one, any help would be greatly appreciated.

-Malancha