diff --git a/.clang-format b/.clang-format index 6b542c189..4a15e88e3 100644 --- a/.clang-format +++ b/.clang-format @@ -10,3 +10,4 @@ ColumnLimit: 0 SpaceBeforeParens: ControlStatements SortIncludes: false ForEachMacros: [ TAILQ_FOREACH, TAILQ_FOREACH_REVERSE, SLIST_FOREACH, CIRCLEQ_FOREACH, CIRCLEQ_FOREACH_REVERSE, NODES_FOREACH, NODES_FOREACH_REVERSE, FOREACH_NONINTERNAL] +TypenameMacros: [ SLIST_HEAD, SLIST_ENTRY, LIST_HEAD, LIST_ENTRY, SIMPLEQ_HEAD, SIMPLEQ_ENTRY, TAILQ_HEAD, TAILQ_ENTRY, CIRCLEQ_HEAD, CIRCLEQ_ENTRY ] diff --git a/I3_VERSION b/I3_VERSION index 45c729928..784debda5 100644 --- a/I3_VERSION +++ b/I3_VERSION @@ -1 +1 @@ -4.18.2-non-git +4.18.3-non-git diff --git a/Makefile.am b/Makefile.am index 5b9555b60..ce2870985 100644 --- a/Makefile.am +++ b/Makefile.am @@ -126,7 +126,7 @@ EXTRA_DIST = \ I3_VERSION \ LICENSE \ PACKAGE-MAINTAINER \ - RELEASE-NOTES-4.18.2 \ + RELEASE-NOTES-4.18.3 \ generate-command-parser.pl \ parser-specs/commands.spec \ parser-specs/config.spec \ diff --git a/RELEASE-NOTES-4.18.2 b/RELEASE-NOTES-4.18.3 similarity index 68% rename from RELEASE-NOTES-4.18.2 rename to RELEASE-NOTES-4.18.3 index 66a5bee12..5c14a3983 100644 --- a/RELEASE-NOTES-4.18.2 +++ b/RELEASE-NOTES-4.18.3 @@ -1,9 +1,9 @@ ┌──────────────────────────────┐ - │ Release notes for i3 v4.18.2 │ + │ Release notes for i3 v4.18.3 │ └──────────────────────────────┘ -This is i3 v4.18.2. This version is considered stable. All users of i3 are +This is i3 v4.18.3. This version is considered stable. All users of i3 are strongly encouraged to upgrade. This is a bugfix release for v4.18. @@ -12,10 +12,7 @@ This is a bugfix release for v4.18. │ Bugfixes │ └────────────────────────────┘ - • floating_maybe_reassign_ws: only re-focus if previously focused - (fixes a focus issue with KDE notifications) - • get_output_by_name: guard output->primary with require_active - • i3bar: fix Xorg memory leak + • Bugfix: kick tray clients before destroying the bar ┌────────────────────────────┐ │ Thanks! │ @@ -23,6 +20,6 @@ This is a bugfix release for v4.18. Thanks for testing, bugfixes, discussions and everything I forgot go out to: - Orestis Floros + Mark Guptill, Orestis Floros --- Michael Stapelberg, 2020-07-26 +-- Michael Stapelberg, 2020-10-19 diff --git a/RELEASE-NOTES-next b/RELEASE-NOTES-next index 2da813728..39b8d836a 100644 --- a/RELEASE-NOTES-next +++ b/RELEASE-NOTES-next @@ -26,6 +26,7 @@ working. Please reach out to us in that case! to their definition order in the config file • update i3bar config when necessary (reduces redraws on bar mode changes) • mention rofi in default config file + • i3-input: add different exit codes for when i3-input fails ┌────────────────────────────┐ │ Bugfixes │ diff --git a/configure.ac b/configure.ac index 79f7d9cac..36e17cefd 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Run autoreconf -fi to generate a configure script from this file. AC_PREREQ([2.69]) -AC_INIT([i3], [4.18.2], [https://github.com/i3/i3/issues]) +AC_INIT([i3], [4.18.3], [https://github.com/i3/i3/issues]) # For AX_EXTEND_SRCDIR AX_ENABLE_BUILDDIR AM_INIT_AUTOMAKE([foreign -Wall no-dist-gzip dist-bzip2]) diff --git a/debian/changelog b/debian/changelog index 570ff0a57..09184ea9d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,14 @@ +i3-wm (4.19-1) unstable; urgency=medium + + * New upstream release. + + -- Michael Stapelberg Mon, 19 Oct 2020 22:48:30 +0200 + i3-wm (4.18.3-1) unstable; urgency=medium * New upstream release. - -- Michael Stapelberg Sun, 26 Jul 2020 10:24:46 +0200 + -- Michael Stapelberg Mon, 19 Oct 2020 22:48:30 +0200 i3-wm (4.18.2-1) unstable; urgency=medium diff --git a/i3-input/main.c b/i3-input/main.c index 18dbcc1e3..ef9e0701f 100644 --- a/i3-input/main.c +++ b/i3-input/main.c @@ -32,6 +32,14 @@ xcb_visualtype_t *visual_type = NULL; #define BORDER logical_px(2) #define PADDING logical_px(2) +/* Exit codes for i3-input: + * 0 if i3-input exited successfully and the command was run + * 1 if the user canceled input + * 2 if i3-input fails for any other reason */ +const int EXIT_OK = 0; +const int EXIT_CANCEL = 1; +const int EXIT_ERROR = 2; + /* IPC format string. %s will be replaced with what the user entered, then * the command will be sent to i3 */ static char *format; @@ -186,11 +194,11 @@ static void finish_input(void) { /* prefix the command if a prefix was specified on commandline */ printf("command = %s\n", full); - ipc_send_message(sockfd, strlen(full), 0, (uint8_t *)full); + int ret = ipc_send_message(sockfd, strlen(full), 0, (uint8_t *)full); free(full); - exit(0); + exit(ret == 0 ? EXIT_OK : EXIT_ERROR); } /* @@ -239,7 +247,7 @@ static int handle_key_press(void *ignored, xcb_connection_t *conn, xcb_key_press return 1; } if (sym == XK_Escape) { - exit(0); + exit(EXIT_CANCEL); } /* TODO: handle all of these? */ @@ -297,7 +305,7 @@ static xcb_rectangle_t get_window_position(void) { xcb_intern_atom_reply_t *nswc_reply = xcb_intern_atom_reply(conn, nswc_cookie, NULL); if (nswc_reply == NULL) { ELOG("Could not intern atom _NET_SUPPORTING_WM_CHECK\n"); - exit(-1); + exit(EXIT_ERROR); } A__NET_SUPPORTING_WM_CHECK = nswc_reply->atom; free(nswc_reply); @@ -392,7 +400,7 @@ int main(int argc, char *argv[]) { break; case 'v': printf("i3-input " I3_VERSION); - return 0; + return EXIT_OK; case 'p': /* This option is deprecated, but will still work in i3 v4.1, 4.2 and 4.3 */ fprintf(stderr, "i3-input: WARNING: the -p option is DEPRECATED in favor of the -F (format) option\n"); @@ -420,7 +428,7 @@ int main(int argc, char *argv[]) { printf("\n"); printf("Example:\n"); printf(" i3-input -F 'workspace \"%%s\"' -P 'Switch to workspace: '\n"); - return 0; + return EXIT_OK; } } if (!format) { @@ -491,7 +499,7 @@ int main(int argc, char *argv[]) { if (reply->status != XCB_GRAB_STATUS_SUCCESS) { fprintf(stderr, "Could not grab keyboard, status = %d\n", reply->status); - exit(-1); + exit(EXIT_ERROR); } xcb_flush(conn); @@ -527,5 +535,5 @@ int main(int argc, char *argv[]) { } draw_util_surface_free(conn, &surface); - return 0; + return EXIT_OK; } diff --git a/i3bar/include/common.h b/i3bar/include/common.h index 2d763133b..52f77b0e6 100644 --- a/i3bar/include/common.h +++ b/i3bar/include/common.h @@ -77,12 +77,10 @@ struct status_block { char *name; char *instance; - TAILQ_ENTRY(status_block) - blocks; + TAILQ_ENTRY(status_block) blocks; }; -extern TAILQ_HEAD(statusline_head, status_block) - statusline_head; +extern TAILQ_HEAD(statusline_head, status_block) statusline_head; #include "child.h" #include "ipc.h" diff --git a/i3bar/include/configuration.h b/i3bar/include/configuration.h index f1fb9a508..589c63967 100644 --- a/i3bar/include/configuration.h +++ b/i3bar/include/configuration.h @@ -29,23 +29,18 @@ typedef struct binding_t { char *command; bool release; - TAILQ_ENTRY(binding_t) - bindings; + TAILQ_ENTRY(binding_t) bindings; } binding_t; typedef struct tray_output_t { char *output; - TAILQ_ENTRY(tray_output_t) - tray_outputs; + TAILQ_ENTRY(tray_output_t) tray_outputs; } tray_output_t; typedef struct config_t { uint32_t modifier; - - TAILQ_HEAD(bindings_head, binding_t) - bindings; - + TAILQ_HEAD(bindings_head, binding_t) bindings; position_t position; bool verbose; uint32_t bar_height; @@ -60,10 +55,7 @@ typedef struct config_t { char *command; char *fontname; i3String *separator_symbol; - - TAILQ_HEAD(tray_outputs_head, tray_output_t) - tray_outputs; - + TAILQ_HEAD(tray_outputs_head, tray_output_t) tray_outputs; int tray_padding; int num_outputs; char **outputs; diff --git a/i3bar/include/outputs.h b/i3bar/include/outputs.h index 5bb19c401..4685e51e9 100644 --- a/i3bar/include/outputs.h +++ b/i3bar/include/outputs.h @@ -73,6 +73,5 @@ struct i3_output { struct ws_head* workspaces; /* The workspaces on this output */ struct tc_head* trayclients; /* The tray clients on this output */ - SLIST_ENTRY(i3_output) - slist; /* Pointer for the SLIST-Macro */ + SLIST_ENTRY(i3_output) slist; /* Pointer for the SLIST-Macro */ }; diff --git a/i3bar/include/trayclients.h b/i3bar/include/trayclients.h index 3f215ce46..bcf559598 100644 --- a/i3bar/include/trayclients.h +++ b/i3bar/include/trayclients.h @@ -21,6 +21,5 @@ struct trayclient { char *class_class; char *class_instance; - TAILQ_ENTRY(trayclient) - tailq; /* Pointer for the TAILQ-Macro */ + TAILQ_ENTRY(trayclient) tailq; /* Pointer for the TAILQ-Macro */ }; diff --git a/i3bar/include/workspaces.h b/i3bar/include/workspaces.h index 0ef5c0a92..ff61450c8 100644 --- a/i3bar/include/workspaces.h +++ b/i3bar/include/workspaces.h @@ -41,6 +41,5 @@ struct i3_ws { rect rect; /* The rect of the ws (not used (yet)) */ struct i3_output *output; /* The current output of the ws */ - TAILQ_ENTRY(i3_ws) - tailq; /* Pointer for the TAILQ-Macro */ + TAILQ_ENTRY(i3_ws) tailq; /* Pointer for the TAILQ-Macro */ }; diff --git a/include/configuration.h b/include/configuration.h index c09791f14..eff28e6bc 100644 --- a/include/configuration.h +++ b/include/configuration.h @@ -66,8 +66,7 @@ struct Variable { char *value; char *next_match; - SLIST_ENTRY(Variable) - variables; + SLIST_ENTRY(Variable) variables; }; /** @@ -81,8 +80,7 @@ struct Mode { bool pango_markup; struct bindings_head *bindings; - SLIST_ENTRY(Mode) - modes; + SLIST_ENTRY(Mode) modes; }; /** @@ -281,8 +279,7 @@ struct Barconfig { /* List of outputs on which the tray is allowed to be shown, in order. * The special value "none" disables it (per default, it will be shown) and * the special value "primary" enabled it on the primary output. */ - TAILQ_HEAD(tray_outputs_head, tray_output_t) - tray_outputs; + TAILQ_HEAD(tray_outputs_head, tray_output_t) tray_outputs; /* Padding around the tray icons. */ int tray_padding; @@ -304,8 +301,7 @@ struct Barconfig { /** Bar modifier (to show bar when in hide mode). */ uint32_t modifier; - TAILQ_HEAD(bar_bindings_head, Barbinding) - bar_bindings; + TAILQ_HEAD(bar_bindings_head, Barbinding) bar_bindings; /** Bar position (bottom by default). */ enum { P_BOTTOM = 0, @@ -382,8 +378,7 @@ struct Barconfig { char *binding_mode_text; } colors; - TAILQ_ENTRY(Barconfig) - configs; + TAILQ_ENTRY(Barconfig) configs; }; /** @@ -401,15 +396,13 @@ struct Barbinding { /** If true, the command will be executed after the button is released. */ bool release; - TAILQ_ENTRY(Barbinding) - bindings; + TAILQ_ENTRY(Barbinding) bindings; }; struct tray_output_t { char *output; - TAILQ_ENTRY(tray_output_t) - tray_outputs; + TAILQ_ENTRY(tray_output_t) tray_outputs; }; typedef enum { diff --git a/include/data.h b/include/data.h index 18490f4b7..9c77d7ad6 100644 --- a/include/data.h +++ b/include/data.h @@ -225,8 +225,7 @@ struct Workspace_Assignment { char *output; gaps_t gaps; - TAILQ_ENTRY(Workspace_Assignment) - ws_assignments; + TAILQ_ENTRY(Workspace_Assignment) ws_assignments; }; struct Ignore_Event { @@ -234,8 +233,7 @@ struct Ignore_Event { int response_type; time_t added; - SLIST_ENTRY(Ignore_Event) - ignore_events; + SLIST_ENTRY(Ignore_Event) ignore_events; }; /** @@ -254,8 +252,7 @@ struct Startup_Sequence { * completed) */ time_t delete_at; - TAILQ_ENTRY(Startup_Sequence) - sequences; + TAILQ_ENTRY(Startup_Sequence) sequences; }; /** @@ -281,9 +278,7 @@ struct regex { struct Binding_Keycode { xcb_keycode_t keycode; i3_event_state_mask_t modifiers; - - TAILQ_ENTRY(Binding_Keycode) - keycodes; + TAILQ_ENTRY(Binding_Keycode) keycodes; }; /****************************************************************************** @@ -344,14 +339,12 @@ struct Binding { /** Only in use if symbol != NULL. Contains keycodes which generate the * specified symbol. Useful for unbinding and checking which binding was * used when a key press event comes in. */ - TAILQ_HEAD(keycodes_head, Binding_Keycode) - keycodes_head; + TAILQ_HEAD(keycodes_head, Binding_Keycode) keycodes_head; /** Command, like in command mode */ char *command; - TAILQ_ENTRY(Binding) - bindings; + TAILQ_ENTRY(Binding) bindings; }; /** @@ -367,19 +360,13 @@ struct Autostart { /** no_startup_id flag for start_application(). Determines whether a * startup notification context/ID should be created. */ bool no_startup_id; - - TAILQ_ENTRY(Autostart) - autostarts; - - TAILQ_ENTRY(Autostart) - autostarts_always; + TAILQ_ENTRY(Autostart) autostarts; + TAILQ_ENTRY(Autostart) autostarts_always; }; struct output_name { char *name; - - SLIST_ENTRY(output_name) - names; + SLIST_ENTRY(output_name) names; }; /** @@ -406,8 +393,7 @@ struct xoutput { /** List of names for the output. * An output always has at least one name; the first name is * considered the primary one. */ - SLIST_HEAD(names_head, output_name) - names_head; + SLIST_HEAD(names_head, output_name) names_head; /** Pointer to the Con which represents this output */ Con *con; @@ -415,8 +401,7 @@ struct xoutput { /** x, y, width, height */ Rect rect; - TAILQ_ENTRY(xoutput) - outputs; + TAILQ_ENTRY(xoutput) outputs; }; /** @@ -567,8 +552,7 @@ struct Match { M_ASSIGN_WS, M_BELOW } insert_where; - TAILQ_ENTRY(Match) - matches; + TAILQ_ENTRY(Match) matches; /* Whether this match was generated when restarting i3 inplace. * Leads to not setting focus when managing a new window, because the old @@ -615,8 +599,7 @@ struct Assignment { char *output; } dest; - TAILQ_ENTRY(Assignment) - assignments; + TAILQ_ENTRY(Assignment) assignments; }; /** Fullscreen modes. Used by Con.fullscreen_mode. */ @@ -627,8 +610,7 @@ typedef enum { CF_NONE = 0, struct mark_t { char *name; - TAILQ_ENTRY(mark_t) - marks; + TAILQ_ENTRY(mark_t) marks; }; /** @@ -695,8 +677,7 @@ struct Con { char *sticky_group; /* user-definable marks to jump to this container later */ - TAILQ_HEAD(marks_head, mark_t) - marks_head; + TAILQ_HEAD(marks_head, mark_t) marks_head; /* cached to decide whether a redraw is needed */ bool mark_changed; @@ -715,17 +696,12 @@ struct Con { struct deco_render_params *deco_render_params; /* Only workspace-containers can have floating clients */ - TAILQ_HEAD(floating_head, Con) - floating_head; + TAILQ_HEAD(floating_head, Con) floating_head; - TAILQ_HEAD(nodes_head, Con) - nodes_head; + TAILQ_HEAD(nodes_head, Con) nodes_head; + TAILQ_HEAD(focus_head, Con) focus_head; - TAILQ_HEAD(focus_head, Con) - focus_head; - - TAILQ_HEAD(swallow_head, Match) - swallow_head; + TAILQ_HEAD(swallow_head, Match) swallow_head; fullscreen_mode_t fullscreen_mode; @@ -763,17 +739,10 @@ struct Con { FLOATING_USER_ON = 3 } floating; - TAILQ_ENTRY(Con) - nodes; - - TAILQ_ENTRY(Con) - focused; - - TAILQ_ENTRY(Con) - all_cons; - - TAILQ_ENTRY(Con) - floating_windows; + TAILQ_ENTRY(Con) nodes; + TAILQ_ENTRY(Con) focused; + TAILQ_ENTRY(Con) all_cons; + TAILQ_ENTRY(Con) floating_windows; /** callbacks */ void (*on_remove_child)(Con *); diff --git a/include/i3.h b/include/i3.h index 158c032d6..2c550fa9c 100644 --- a/include/i3.h +++ b/include/i3.h @@ -57,7 +57,7 @@ extern xcb_key_symbols_t *keysyms; extern char **start_argv; extern Display *xlibdpy, *xkbdpy; extern int xkb_current_group; -extern TAILQ_HEAD(bindings_head, Binding) * bindings; +extern TAILQ_HEAD(bindings_head, Binding) *bindings; extern const char *current_binding_mode; extern TAILQ_HEAD(autostarts_head, Autostart) autostarts; extern TAILQ_HEAD(autostarts_always_head, Autostart) autostarts_always; diff --git a/include/ipc.h b/include/ipc.h index bc5929ecf..0d19daf4d 100644 --- a/include/ipc.h +++ b/include/ipc.h @@ -40,8 +40,7 @@ typedef struct ipc_client { uint8_t *buffer; size_t buffer_size; - TAILQ_ENTRY(ipc_client) - clients; + TAILQ_ENTRY(ipc_client) clients; } ipc_client; /* diff --git a/libi3/get_colorpixel.c b/libi3/get_colorpixel.c index efc86fac1..45e47725f 100644 --- a/libi3/get_colorpixel.c +++ b/libi3/get_colorpixel.c @@ -15,12 +15,10 @@ struct Colorpixel { char hex[8]; uint32_t pixel; - SLIST_ENTRY(Colorpixel) - colorpixels; + SLIST_ENTRY(Colorpixel) colorpixels; }; -SLIST_HEAD(colorpixel_head, Colorpixel) -colorpixels; +SLIST_HEAD(colorpixel_head, Colorpixel) colorpixels; /* * Returns the colorpixel to use for the given hex color (think of HTML). diff --git a/meson.build b/meson.build index f52949360..0c3f14c9c 100644 --- a/meson.build +++ b/meson.build @@ -598,18 +598,22 @@ install_headers( # because configure_file strips the backslash in e.g. \@display, # resulting in @display, breaking our Perl code: # https://github.com/mesonbuild/meson/issues/7165 -sed = find_program('sed') +bash = find_program('bash') replace_dirs = [ - sed, - '-e', - 's,@abs_top_builddir@,'+meson.current_build_dir()+',g;s,@abs_top_srcdir@,'+meson.current_source_dir()+',g', - '@INPUT@', + bash, '-c', # Use bash to capture output and mark as executable + 'sed -e \'s,@abs_top_builddir@,' + + meson.current_build_dir() + + ',g;s,@abs_top_srcdir@,' + + meson.current_source_dir()+',g\'' + # Only mark files ending in .pl as executables + + ' "$0" > "$1" && { [[ "${1##*.}" == pl ]] && chmod +x "$1" || true; }', + '@INPUT0@', # $0 + '@OUTPUT0@', # $1 ] complete_run = custom_target( 'complete-run', input: ['testcases/complete-run.pl.in'], output: ['complete-run.pl'], - capture: true, command: replace_dirs, # build this target when running e.g. ninja or ninja test. # This is required for older meson versions (< 0.46.0). @@ -619,7 +623,6 @@ i3test_pm = custom_target( 'i3test-pm', input: ['testcases/lib/i3test.pm.in'], output: ['i3test.pm'], - capture: true, command: replace_dirs, # build this target when running e.g. ninja or ninja test. # This is required for older meson versions (< 0.46.0). diff --git a/src/commands.c b/src/commands.c index 322393637..7d435d17e 100644 --- a/src/commands.c +++ b/src/commands.c @@ -129,9 +129,7 @@ static Con *maybe_auto_back_and_forth_workspace(Con *workspace) { */ typedef struct owindow { Con *con; - - TAILQ_ENTRY(owindow) - owindows; + TAILQ_ENTRY(owindow) owindows; } owindow; typedef TAILQ_HEAD(owindows_head, owindow) owindows_head; diff --git a/src/con.c b/src/con.c index 18b6b111f..22f87c158 100644 --- a/src/con.c +++ b/src/con.c @@ -514,8 +514,7 @@ Con *con_parent_with_orientation(Con *con, orientation_t orientation) { struct bfs_entry { Con *con; - TAILQ_ENTRY(bfs_entry) - entries; + TAILQ_ENTRY(bfs_entry) entries; }; /* @@ -527,9 +526,7 @@ Con *con_get_fullscreen_con(Con *con, fullscreen_mode_t fullscreen_mode) { /* TODO: is breadth-first-search really appropriate? (check as soon as * fullscreen levels and fullscreen for containers is implemented) */ - TAILQ_HEAD(bfs_head, bfs_entry) - bfs_head = TAILQ_HEAD_INITIALIZER(bfs_head); - + TAILQ_HEAD(bfs_head, bfs_entry) bfs_head = TAILQ_HEAD_INITIALIZER(bfs_head); struct bfs_entry *entry = smalloc(sizeof(struct bfs_entry)); entry->con = con; TAILQ_INSERT_TAIL(&bfs_head, entry, entries); diff --git a/src/ipc.c b/src/ipc.c index c8886649c..eac4d9b38 100644 --- a/src/ipc.c +++ b/src/ipc.c @@ -25,8 +25,7 @@ char *current_socketpath = NULL; -TAILQ_HEAD(ipc_client_head, ipc_client) -all_clients = TAILQ_HEAD_INITIALIZER(all_clients); +TAILQ_HEAD(ipc_client_head, ipc_client) all_clients = TAILQ_HEAD_INITIALIZER(all_clients); /* * Puts the given socket file descriptor into non-blocking mode or dies if diff --git a/src/load_layout.c b/src/load_layout.c index a9c9678f9..c117f9c6a 100644 --- a/src/load_layout.c +++ b/src/load_layout.c @@ -45,9 +45,7 @@ struct pending_marks { * array. */ struct focus_mapping { int old_id; - - TAILQ_ENTRY(focus_mapping) - focus_mappings; + TAILQ_ENTRY(focus_mapping) focus_mappings; }; static TAILQ_HEAD(focus_mappings_head, focus_mapping) focus_mappings = diff --git a/src/restore_layout.c b/src/restore_layout.c index 25f631b7a..c51bfcbe3 100644 --- a/src/restore_layout.c +++ b/src/restore_layout.c @@ -29,8 +29,7 @@ typedef struct placeholder_state { /** The drawable surface */ surface_t surface; - TAILQ_ENTRY(placeholder_state) - state; + TAILQ_ENTRY(placeholder_state) state; } placeholder_state; static TAILQ_HEAD(state_head, placeholder_state) state_head = diff --git a/src/sighandler.c b/src/sighandler.c index c1e6094f2..2be69c312 100644 --- a/src/sighandler.c +++ b/src/sighandler.c @@ -16,9 +16,7 @@ typedef struct dialog_t { xcb_colormap_t colormap; Rect dims; surface_t surface; - - TAILQ_ENTRY(dialog_t) - dialogs; + TAILQ_ENTRY(dialog_t) dialogs; } dialog_t; static TAILQ_HEAD(dialogs_head, dialog_t) dialogs = TAILQ_HEAD_INITIALIZER(dialogs); diff --git a/src/x.c b/src/x.c index def79ef23..48af5f374 100644 --- a/src/x.c +++ b/src/x.c @@ -63,26 +63,18 @@ typedef struct con_state { char *name; - CIRCLEQ_ENTRY(con_state) - state; - - CIRCLEQ_ENTRY(con_state) - old_state; - - TAILQ_ENTRY(con_state) - initial_mapping_order; + CIRCLEQ_ENTRY(con_state) state; + CIRCLEQ_ENTRY(con_state) old_state; + TAILQ_ENTRY(con_state) initial_mapping_order; } con_state; -CIRCLEQ_HEAD(state_head, con_state) -state_head = +CIRCLEQ_HEAD(state_head, con_state) state_head = CIRCLEQ_HEAD_INITIALIZER(state_head); -CIRCLEQ_HEAD(old_state_head, con_state) -old_state_head = +CIRCLEQ_HEAD(old_state_head, con_state) old_state_head = CIRCLEQ_HEAD_INITIALIZER(old_state_head); -TAILQ_HEAD(initial_mapping_head, con_state) -initial_mapping_head = +TAILQ_HEAD(initial_mapping_head, con_state) initial_mapping_head = TAILQ_HEAD_INITIALIZER(initial_mapping_head); /*