- getFontElement(nfontname, weight, FONT_ELEMENT_SIZE,
- "-medium-", "-bold-", "-demibold-", "-regular-", NULL);
- getFontElement(nfontname, slant, FONT_ELEMENT_SIZE,
- "-r-", "-i-", "-o-", "-ri-", "-ro-", NULL);
- getFontSize(nfontname, &pixel_size);
-
- if (! strcmp(weight, "*"))
- strncpy(weight, "medium", FONT_ELEMENT_SIZE);
- if (! strcmp(slant, "*"))
- strncpy(slant, "r", FONT_ELEMENT_SIZE);
- if (pixel_size < 3)
- pixel_size = 3;
- else if (pixel_size > 97)
- pixel_size = 97;
-
- buf_size = strlen(nfontname) + (FONT_ELEMENT_SIZE * 2) + 64;
- char *pattern2 = new char[buf_size];
- sprintf(pattern2,
- "%s,"
- "-*-*-%s-%s-*-*-%d-*-*-*-*-*-*-*,"
- "-*-*-*-*-*-*-%d-*-*-*-*-*-*-*,*",
- nfontname, weight, slant, pixel_size, pixel_size);
- nfontname = pattern2;
-
- if (nmissing)
- XFreeStringList(missing);
- if (fs)
- XFreeFontSet(blackbox->getXDisplay(), fs);
-
- fs = XCreateFontSet(blackbox->getXDisplay(), nfontname, &missing,
- &nmissing, &def);
-
- delete [] pattern2;
-
- return fs;