JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
Fix incorrect action name: stack_del should be stack_dec
[spectrwm.git] / scrotwm.c
index d15a6e6..fa384f9 100644 (file)
--- a/scrotwm.c
+++ b/scrotwm.c
@@ -1147,7 +1147,7 @@ setscreencolor(char *val, int i, int c)
 void
 fancy_stacker(struct workspace *ws)
 {
-       strcpy(ws->stacker, "[   ]");
+       strlcpy(ws->stacker, "[   ]", sizeof ws->stacker);
        if (ws->cur_layout->l_stack == vertical_stack)
                snprintf(ws->stacker, sizeof ws->stacker, "[%d|%d]",
                    ws->l_state.vertical_mwin, ws->l_state.vertical_stacks);
@@ -1159,11 +1159,11 @@ fancy_stacker(struct workspace *ws)
 void
 plain_stacker(struct workspace *ws)
 {
-       strcpy(ws->stacker, "[ ]");
+       strlcpy(ws->stacker, "[ ]", sizeof ws->stacker);
        if (ws->cur_layout->l_stack == vertical_stack)
-               strcpy(ws->stacker, "[|]");
+               strlcpy(ws->stacker, "[|]", sizeof ws->stacker);
        if (ws->cur_layout->l_stack == horizontal_stack)
-               strcpy(ws->stacker, "[-]");
+               strlcpy(ws->stacker, "[-]", sizeof ws->stacker);
 }
 
 void
@@ -1327,7 +1327,7 @@ bar_update(void)
        char                    s[SWM_BAR_MAX];
        char                    cn[SWM_BAR_MAX];
        char                    loc[SWM_BAR_MAX];
-       char                    *b;
+       char                    *b, *stack = "";
 
        if (bar_enabled == 0)
                return;
@@ -1364,10 +1364,11 @@ bar_update(void)
                                bar_class_name(cn, sizeof cn, r->ws->focus);
                                bar_window_name(cn, sizeof cn, r->ws->focus);
                        }
+                       if (stack_enabled)
+                               stack = r->ws->stacker;
 
                        snprintf(loc, sizeof loc, "%d:%d %s   %s%s    %s    %s",
-                           x++, r->ws->idx + 1, r->ws->stacker, s, cn, bar_ext,
-                           bar_vertext);
+                           x++, r->ws->idx + 1, stack, s, cn, bar_ext, bar_vertext);
                        bar_print(r, loc);
                }
        }
@@ -3217,7 +3218,7 @@ search_do_resp(void)
 
        if ((resp = calloc(1, MAX_RESP_LEN + 1)) == NULL) {
                fprintf(stderr, "search: calloc\n");
-               return;
+               goto done;
        }
 
        rbytes = read(select_resp_pipe[0], resp, MAX_RESP_LEN);
@@ -3249,6 +3250,7 @@ search_do_resp(void)
                free(s);
        }
 done:
+       close(select_resp_pipe[0]);
        free(resp);
 }
 
@@ -4665,7 +4667,8 @@ enum      { SWM_S_BAR_DELAY, SWM_S_BAR_ENABLED, SWM_S_BAR_BORDER_WIDTH,
 int
 setconfvalue(char *selector, char *value, int flags)
 {
-       int i;
+       int     i;
+
        switch (flags) {
        case SWM_S_BAR_DELAY:
                bar_delay = atoi(value);