- DNPRINTF(SWM_D_BAR, "bar_setup: loading bar_fonts: %s\n", bar_fonts);
-
- bar_fs = XCreateFontSet(display, bar_fonts, &missing_charsets,
- &num_missing_charsets, &default_string);
-
- if (num_missing_charsets > 0) {
- warnx("Unable to load charset(s):");
-
- for (i = 0; i < num_missing_charsets; ++i)
- warnx("%s", missing_charsets[i]);
-
- XFreeStringList(missing_charsets);
-
- if (strcmp(default_string, ""))
- warnx("Glyphs from those sets will be replaced "
- "by '%s'.", default_string);
- else
- warnx("Glyphs from those sets won't be drawn.");
+ while ((bar_font = strsep(&bar_fonts, " ,")) != NULL) {
+ if (*bar_font == '\0')
+ continue;
+
+ DNPRINTF(SWM_D_INIT, "bar_setup: try font %s\n", bar_font);
+ bar_fs = XftFontOpenName(display, DefaultScreen(display),
+ bar_font);
+ if (!bar_fs) {
+ warnx("unable to load font %s", bar_font);
+ continue;
+ } else {
+ DNPRINTF(SWM_D_INIT, "successfully opened font %s\n",
+ bar_font);
+ break;
+ }