+
+ for (j = 0; j < SWM_S_COLOR_MAX; ++j) {
+ free(screens[i].c[j].name);
+ }
+
+ for (j = 0; j < SWM_WS_MAX; ++j) {
+ struct ws_win *win;
+
+ free(screens[i].ws[j].name);
+
+ while ((win = TAILQ_FIRST(&screens[i].ws[j].winlist)) != NULL) {
+ TAILQ_REMOVE(&screens[i].ws[j].winlist, win, entry);
+ free(win);
+ }
+ }
+
+ while ((r = TAILQ_FIRST(&screens[i].rl)) != NULL) {
+ TAILQ_REMOVE(&screens[i].rl, r, entry);
+ free(r->bar);
+ free(r);
+ }
+
+ while ((r = TAILQ_FIRST(&screens[i].orl)) != NULL) {
+ TAILQ_REMOVE(&screens[i].rl, r, entry);
+ free(r->bar);
+ free(r);
+ }