]> code.delx.au - spectrwm/blobdiff - spectrwm.c
Fix user bar_font not being applied to dmenu.
[spectrwm] / spectrwm.c
index 14716c78e5750389558d563b964045d7dec325a4..8e94b163a7cd0d553f6bea8c4917f2399abd4a60 100644 (file)
@@ -1848,7 +1848,7 @@ bar_refresh(void)
 void
 bar_setup(struct swm_region *r)
 {
-       char                    *font, *fontpos;
+       char                    *font, *fontpos, *dup, *search;
        int                     count;
        xcb_screen_t            *screen = get_screen(r->s->idx);
        uint32_t                wa[3];
@@ -1861,7 +1861,10 @@ bar_setup(struct swm_region *r)
                err(1, "bar_setup: calloc: failed to allocate memory.");
 
        if (bar_font == NULL) {
-               while ((font = strsep(&bar_fonts, ",")) != NULL) {
+               if ((dup = strdup(bar_fonts)) == NULL)
+                       errx(1, "insufficient memory.");
+               search = dup;
+               while ((font = strsep(&search, ",")) != NULL) {
                        if (*font == '\0')
                                continue;
 
@@ -1889,6 +1892,7 @@ bar_setup(struct swm_region *r)
                                break;
                        }
                }
+               free(dup);
        }
 
        if (bar_font == NULL)