From 9831e3f72ada87ff708149b232ee72995dba2115 Mon Sep 17 00:00:00 2001 From: Doug Torrance Date: Mon, 13 Mar 2023 10:49:36 -0400 Subject: [PATCH] Move declarations to beginning of switch statements MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Several variable declarations were recently added immediately after labels, but this causes compile errors in GCC versions prior to 11, e.g., wsmap.c: In function ‘handle_event’: wsmap.c:534:4: error: a label can only be part of a statement and a declaration is not a statement 534 | WMScreen *wmscr = wsmap->scr->wmscreen; | ^~~~~~~~ We move these declarations to the top of the corresponding switch statements so that Window Maker can compile on these older versions of GCC. --- src/screen.c | 8 ++++---- src/wsmap.c | 7 +++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/screen.c b/src/screen.c index 271614a4..835b3272 100644 --- a/src/screen.c +++ b/src/screen.c @@ -1304,8 +1304,11 @@ void ScreenCapture(WScreen *scr, int mode) } switch (mode) { + WWindow *wwin; + XImage *pimg; + case PRINT_WINDOW: - WWindow *wwin = scr->focused_window; + wwin = scr->focused_window; if (wwin && !wwin->flags.shaded) { /* * check if hint WM_TAKE_FOCUS is set, if it's the case @@ -1316,7 +1319,6 @@ void ScreenCapture(WScreen *scr, int mode) } else { /* we will only capture the visible window part */ - XImage *pimg; int x_crop = 0; int y_crop = 0; int w_crop = wwin->client.width; @@ -1345,8 +1347,6 @@ void ScreenCapture(WScreen *scr, int mode) } break; case PRINT_PARTIAL: - XImage *pimg; - pimg = imageCaptureArea(scr); if (pimg) { img = RCreateImageFromXImage(scr->rcontext, pimg, None); diff --git a/src/wsmap.c b/src/wsmap.c index 064f8df9..6f30e36a 100644 --- a/src/wsmap.c +++ b/src/wsmap.c @@ -492,6 +492,9 @@ static void handle_event(WWorkspaceMap *wsmap, W_WorkspaceMap *wsmap_array) modifiers = ev.xkey.state & w_global.shortcut.modifiers_mask; switch (ev.type) { + WMScreen *wmscr; + WMColor *black; + case KeyPress: if (ev.xkey.keycode == escKey || (wKeyBindings[WKBD_WORKSPACEMAP].keycode != 0 && wKeyBindings[WKBD_WORKSPACEMAP].keycode == ev.xkey.keycode && @@ -531,8 +534,8 @@ static void handle_event(WWorkspaceMap *wsmap, W_WorkspaceMap *wsmap_array) break; case FocusIn: - WMScreen *wmscr = wsmap->scr->wmscreen; - WMColor *black = WMBlackColor(wmscr); + wmscr = wsmap->scr->wmscreen; + black = WMBlackColor(wmscr); const char *text = "?"; WMFont *bold = WMBoldSystemFontOfSize(wmscr, wsmap->mini_workspace_width / 3); int x = (wsmap->mini_workspace_width / 2) - (WMWidthOfString(bold, text, strlen(text)) / 2); -- 2.11.4.GIT