switch to clang-format-3.8 (#2547)

https://llvm.org/bugs/show_bug.cgi?id=30353 was filed for the unintended
line break between in e.g. “TAILQ_ENTRY(foo)\nbar;”.

Until that’s fixed or a workaround is known, we’ll live with line
breaks. To make it a bit easier for readers to see what’s going on, I
added extra line breaks around each such struct member/variable
definition, so that they at least visually are a single unit.

fixes #2174
This commit is contained in:
Michael Stapelberg 2016-11-08 13:46:43 -08:00 committed by GitHub
parent 4ccac59932
commit fff3f79da9
24 changed files with 907 additions and 837 deletions

View File

@ -8,3 +8,4 @@ IndentWidth: 4
PointerBindsToType: false
ColumnLimit: 0
SpaceBeforeParens: ControlStatements
SortIncludes: false

File diff suppressed because it is too large Load Diff

View File

@ -74,10 +74,12 @@ struct status_block {
char *name;
char *instance;
TAILQ_ENTRY(status_block) blocks;
TAILQ_ENTRY(status_block)
blocks;
};
TAILQ_HEAD(statusline_head, status_block) statusline_head;
TAILQ_HEAD(statusline_head, status_block)
statusline_head;
#include "child.h"
#include "ipc.h"

View File

@ -28,18 +28,23 @@ typedef struct binding_t {
int input_code;
char *command;
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 {
int modifier;
TAILQ_HEAD(bindings_head, binding_t) bindings;
TAILQ_HEAD(bindings_head, binding_t)
bindings;
position_t position;
int verbose;
struct xcb_color_strings_t colors;
@ -50,7 +55,10 @@ 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;

View File

@ -67,5 +67,6 @@ 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 */
};

View File

@ -18,5 +18,6 @@ struct trayclient {
bool mapped; /* Whether this window is mapped */
int xe_version; /* The XEMBED version supported by the client */
TAILQ_ENTRY(trayclient) tailq; /* Pointer for the TAILQ-Macro */
TAILQ_ENTRY(trayclient)
tailq; /* Pointer for the TAILQ-Macro */
};

View File

@ -40,5 +40,6 @@ 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 */
};

View File

@ -68,7 +68,8 @@ struct Variable {
char *value;
char *next_match;
SLIST_ENTRY(Variable) variables;
SLIST_ENTRY(Variable)
variables;
};
/**
@ -82,7 +83,8 @@ struct Mode {
bool pango_markup;
struct bindings_head *bindings;
SLIST_ENTRY(Mode) modes;
SLIST_ENTRY(Mode)
modes;
};
/**
@ -253,7 +255,8 @@ 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;
@ -284,7 +287,8 @@ struct Barconfig {
M_MOD5 = 7
} 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,
@ -351,7 +355,8 @@ struct Barconfig {
char *binding_mode_text;
} colors;
TAILQ_ENTRY(Barconfig) configs;
TAILQ_ENTRY(Barconfig)
configs;
};
/**
@ -366,13 +371,15 @@ struct Barbinding {
/** The command which is to be executed for this button. */
char *command;
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;
};
/**

View File

@ -199,7 +199,8 @@ struct Workspace_Assignment {
char *name;
char *output;
TAILQ_ENTRY(Workspace_Assignment) ws_assignments;
TAILQ_ENTRY(Workspace_Assignment)
ws_assignments;
};
struct Ignore_Event {
@ -207,7 +208,8 @@ struct Ignore_Event {
int response_type;
time_t added;
SLIST_ENTRY(Ignore_Event) ignore_events;
SLIST_ENTRY(Ignore_Event)
ignore_events;
};
/**
@ -226,7 +228,8 @@ struct Startup_Sequence {
* completed) */
time_t delete_at;
TAILQ_ENTRY(Startup_Sequence) sequences;
TAILQ_ENTRY(Startup_Sequence)
sequences;
};
/**
@ -252,7 +255,9 @@ 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;
};
/******************************************************************************
@ -309,12 +314,14 @@ 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;
};
/**
@ -330,8 +337,12 @@ 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;
};
/**
@ -364,7 +375,8 @@ struct xoutput {
/** x, y, width, height */
Rect rect;
TAILQ_ENTRY(xoutput) outputs;
TAILQ_ENTRY(xoutput)
outputs;
};
/**
@ -493,7 +505,8 @@ 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
@ -537,7 +550,8 @@ struct Assignment {
char *workspace;
} dest;
TAILQ_ENTRY(Assignment) assignments;
TAILQ_ENTRY(Assignment)
assignments;
};
/** Fullscreen modes. Used by Con.fullscreen_mode. */
@ -548,7 +562,8 @@ typedef enum { CF_NONE = 0,
struct mark_t {
char *name;
TAILQ_ENTRY(mark_t) marks;
TAILQ_ENTRY(mark_t)
marks;
};
/**
@ -612,7 +627,8 @@ 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;
@ -631,12 +647,17 @@ 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(focus_head, Con) focus_head;
TAILQ_HEAD(nodes_head, Con)
nodes_head;
TAILQ_HEAD(swallow_head, Match) swallow_head;
TAILQ_HEAD(focus_head, Con)
focus_head;
TAILQ_HEAD(swallow_head, Match)
swallow_head;
fullscreen_mode_t fullscreen_mode;
@ -674,10 +695,17 @@ 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 *);

View File

@ -31,7 +31,8 @@ typedef struct ipc_client {
int num_events;
char **events;
TAILQ_ENTRY(ipc_client) clients;
TAILQ_ENTRY(ipc_client)
clients;
} ipc_client;
/*

View File

@ -446,7 +446,10 @@
}
#define CIRCLEQ_HEAD_INITIALIZER(head) \
{ CIRCLEQ_END(&head), CIRCLEQ_END(&head) }
{ \
CIRCLEQ_END(&head) \
, CIRCLEQ_END(&head) \
}
#define CIRCLEQ_ENTRY(type) \
struct { \

View File

@ -142,7 +142,9 @@ 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;

View File

@ -410,7 +410,8 @@ 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;
};
/*
@ -422,7 +423,9 @@ 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);

View File

@ -1002,7 +1002,7 @@ bool parse_file(const char *f, bool use_nagbar) {
char *next;
for (next = bufcopy;
next < (bufcopy + stbuf.st_size) &&
(next = strcasestr(next, current->key)) != NULL;
(next = strcasestr(next, current->key)) != NULL;
next += strlen(current->key)) {
*next = '_';
extra_bytes += extra;

View File

@ -22,7 +22,8 @@
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

View File

@ -34,7 +34,9 @@ static bool swallow_is_empty;
* 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 =

View File

@ -167,7 +167,7 @@ bool match_matches_window(Match *match, i3Window *window) {
/* if we find a window that is newer than this one, bail */
TAILQ_FOREACH(con, &all_cons, all_cons) {
if ((con->window != NULL) &&
_i3_timercmp(con->window->urgent, window->urgent, > )) {
_i3_timercmp(con->window->urgent, window->urgent, >)) {
return false;
}
}
@ -183,7 +183,7 @@ bool match_matches_window(Match *match, i3Window *window) {
TAILQ_FOREACH(con, &all_cons, all_cons) {
if ((con->window != NULL) &&
(con->window->urgent.tv_sec != 0) &&
_i3_timercmp(con->window->urgent, window->urgent, < )) {
_i3_timercmp(con->window->urgent, window->urgent, <)) {
return false;
}
}

View File

@ -29,7 +29,8 @@ typedef struct placeholder_state {
/** The graphics context for “pixmap”. */
xcb_gcontext_t gc;
TAILQ_ENTRY(placeholder_state) state;
TAILQ_ENTRY(placeholder_state)
state;
} placeholder_state;
static TAILQ_HEAD(state_head, placeholder_state) state_head =

20
src/x.c
View File

@ -58,18 +58,26 @@ 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);
/*

View File

@ -3,4 +3,4 @@
set -e
set -x
clang-format-3.5 -i $(find . -name "*.[ch]" | tr '\n' ' ') && git diff --exit-code || (echo 'Code was not formatted using clang-format!'; false)
clang-format-3.8 -i $(find . -name "*.[ch]" | tr '\n' ' ') && git diff --exit-code || (echo 'Code was not formatted using clang-format!'; false)

View File

@ -13,12 +13,12 @@ RUN echo 'APT::Acquire::Retries "5";' > /etc/apt/apt.conf.d/80retry
# (3608 kB/s)). Hence, lets stick with httpredir.debian.org (default) for now.
# Install mk-build-deps (for installing the i3 build dependencies),
# clang and clang-format-3.5 (for checking formatting and building with clang),
# clang and clang-format-3.8 (for checking formatting and building with clang),
# lintian (for checking spelling errors),
RUN linux32 apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
dpkg-dev devscripts git equivs \
clang clang-format-3.5 \
clang clang-format-3.8 \
lintian && \
rm -rf /var/lib/apt/lists/*

View File

@ -13,12 +13,12 @@ RUN echo 'APT::Acquire::Retries "5";' > /etc/apt/apt.conf.d/80retry
# (3608 kB/s)). Hence, lets stick with httpredir.debian.org (default) for now.
# Install mk-build-deps (for installing the i3 build dependencies),
# clang and clang-format-3.5 (for checking formatting and building with clang),
# clang and clang-format-3.8 (for checking formatting and building with clang),
# lintian (for checking spelling errors),
RUN linux32 apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
dpkg-dev devscripts git equivs \
clang clang-format-3.5 \
clang clang-format-3.8 \
lintian && \
rm -rf /var/lib/apt/lists/*

View File

@ -13,13 +13,13 @@ RUN echo 'APT::Acquire::Retries "5";' > /etc/apt/apt.conf.d/80retry
# (3608 kB/s)). Hence, lets stick with httpredir.debian.org (default) for now.
# Install mk-build-deps (for installing the i3 build dependencies),
# clang and clang-format-3.5 (for checking formatting and building with clang),
# clang and clang-format-3.8 (for checking formatting and building with clang),
# lintian (for checking spelling errors),
# test suite dependencies (for running tests)
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
dpkg-dev devscripts git equivs \
clang clang-format-3.5 \
clang clang-format-3.8 \
lintian && \
rm -rf /var/lib/apt/lists/*

View File

@ -11,13 +11,13 @@ RUN echo 'APT::Acquire::Retries "5";' > /etc/apt/apt.conf.d/80retry
# (3608 kB/s)). Hence, lets stick with httpredir.debian.org (default) for now.
# Install mk-build-deps (for installing the i3 build dependencies),
# clang and clang-format-3.5 (for checking formatting and building with clang),
# clang and clang-format-3.8 (for checking formatting and building with clang),
# lintian (for checking spelling errors),
# test suite dependencies (for running tests)
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
dpkg-dev devscripts git equivs \
clang clang-format-3.5 \
clang clang-format-3.8 \
lintian \
libanyevent-perl libanyevent-i3-perl libextutils-pkgconfig-perl xcb-proto cpanminus xvfb xserver-xephyr xauth libinline-perl libinline-c-perl libxml-simple-perl libmouse-perl libmousex-nativetraits-perl libextutils-depends-perl perl libtest-deep-perl libtest-exception-perl libxml-parser-perl libtest-simple-perl libtest-fatal-perl libdata-dump-perl libtest-differences-perl libxml-tokeparser-perl libipc-run-perl libxcb-xtest0-dev libx11-xcb-perl libanyevent-i3-perl && \
rm -rf /var/lib/apt/lists/*