Example in
https://github.com/i3/i3/actions/runs/18260895234/job/51988635887?pr=6502
`i3-log-for-124-move.t`:
```
../libi3/font.c:332:9: runtime error: signed integer overflow: 2147483641 + 11 cannot be represented in type 'int'
#0 0x5611ce962d65 in draw_text_xcb ../libi3/font.c:332
#1 0x5611ce962d65 in draw_text ../libi3/font.c:376
#2 0x5611ce95de20 in draw_util_text ../libi3/draw_util.c:219
#3 0x5611ce947e7a in x_draw_decoration ../src/x.c:751
#4 0x5611ce94f93a in x_push_node ../src/x.c:1097
#5 0x5611ce94e9d8 in x_push_node ../src/x.c:1204
#6 0x5611ce94e9d8 in x_push_node ../src/x.c:1204
#7 0x5611ce94e9d8 in x_push_node ../src/x.c:1204
#8 0x5611ce952e9b in x_push_changes ../src/x.c:1373
#9 0x5611ce922d1f in tree_render ../src/tree.c:468
#10 0x5611ce8d1bbb in handle_run_command ../src/ipc.c:220
#11 0x5611ce8c87fe in ipc_receive_message ../src/ipc.c:1481
#12 0x7effc262b64a in ev_invoke_pending (/lib/x86_64-linux-gnu/libev.so.4+0x564a) (BuildId: cfcffb10ff16734dcc7d31d002a90940abff0323)
#13 0x7effc262f22e in ev_run (/lib/x86_64-linux-gnu/libev.so.4+0x922e) (BuildId: cfcffb10ff16734dcc7d31d002a90940abff0323)
#14 0x5611ce809d48 in ev_loop /usr/include/ev.h:841
#15 0x5611ce809d48 in main ../src/main.c:1229
#16 0x7effc1e41ca7 (/lib/x86_64-linux-gnu/libc.so.6+0x29ca7) (BuildId: def5460e3cee00bfee25b429c97bcc4853e5b3a8)
#17 0x7effc1e41d64 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29d64) (BuildId: def5460e3cee00bfee25b429c97bcc4853e5b3a8)
#18 0x5611ce80e770 in _start (/usr/src/i3/build/i3+0x230770) (BuildId: 181abde9a3dd28a8a4be68b90b9b710c8e280633)
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../libi3/font.c:332:9
```
Unrelated but I fixed the build fails in `next` because of a
false-positive:
```
In file included from ../include/all.h:40,
from ../src/commands.c:10:
../src/commands.c: In function ‘cmd_floating’:
../include/log.h:30:33: error: ‘%s’ directive argument is null [-Werror=format-overflow=]
30 | #define DLOG(fmt, ...) debuglog("%s:%s:%d - " fmt, __FILE__, __FUNCTION__, __LINE__, ##__VA_ARGS__)
| ^~~~~~~~~~~~~
../src/commands.c:1193:13: note: in expansion of macro ‘DLOG’
1193 | DLOG("should switch mode to %s\n", floating_mode);
| ^~~~
cc1: all warnings being treated as errors
ninja: build stopped: subcommand failed.
```
Benefits:
- Faster feedback in case of error
- More checks run in parallel
- Removes stuff from Dockerfiles
- Uses newest available clang-format (in ubuntu repos)
Ubuntu’s apt started refusing to load package files from unauthenticated
repositories, but the package for which we did that (xcb-xrm) is available in
newer versions of Ubuntu, so I just removed that part altogether.
Apparently this has been broken since April, and nobody noticed :-/
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 patch introduces a new 'set_from_resource' config directive which
allows defining a variable by retrieving its value from the X resource
database. This avoids having to configure a color scheme in multiple
files. The directive takes an additional fallback value which is used
in case the resource cannot be found or during config validation where
no X connection is available.
Furthermore, this patch includes the following changes:
- If the same variable is defined twice, we now properly overwrite the
value of the assignment rather than inserting two variable definitions
with the same key.
- We now depend on xcb-util-xrm to query the resource.
- Increase the buffer size for variable / resource assignments.
fixes#2130
The resulting packages are pushed to Debian repositories hosted on
bintray.com.
This is the first step to move away from our custom buildbot setup (see
https://i3wm.org/docs/buildbot.html for details on that) towards
infrastructure which is more standard (travis) and in the open.