0aa636b207
Using 'default:' cases can hide logical errors which would lead to i3 crashes for users. With this change the compiler will print a warning when a case is not handled. For example, if I add a new value in the Font.type enum: ../../i3/libi3/font.c: In function ‘draw_text’: ../../i3/libi3/font.c:378:5: warning: enumeration value ‘NEWFONT’ not handled in switch [-Wswitch] switch (savedFont->type) { ^~~~~~ |
||
---|---|---|
.. | ||
README | ||
dpi.c | ||
draw_util.c | ||
fake_configure_notify.c | ||
font.c | ||
format_placeholders.c | ||
get_colorpixel.c | ||
get_config_path.c | ||
get_exe_path.c | ||
get_mod_mask.c | ||
get_process_filename.c | ||
get_visualtype.c | ||
ipc_connect.c | ||
ipc_recv_message.c | ||
ipc_send_message.c | ||
is_debug_build.c | ||
mkdirp.c | ||
resolve_tilde.c | ||
root_atom_contents.c | ||
safewrappers.c | ||
string.c | ||
strndup.c | ||
ucs2_conversion.c |
README
Introduction ============ libi3 is an *INTERNAL* library which contains functions that i3 and related tools (i3-msg, i3-input, i3-nagbar, i3-config-wizard, i3bar) use. It is NOT to be used by other programs. Structure ========= Every function gets its own .c file, which in turn gets compiled into an .o object file. Afterwards, all .o files are archived into one static library (libi3.a). This library will be linked into all i3 binaries. The linker is able to eliminate unused .o files when linking, so only the functions which you actually use will be included in the corresponding binary.