gri3-wm/libi3
Orestis Floros 0aa636b207
Prefer compiler warnings to assertions for unhandled switch cases
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) {
     ^~~~~~
2018-04-04 19:20:55 +03:00
..
README
dpi.c Fixes #3072, Xft.dpi can be floating point 2017-12-09 15:12:25 +01:00
draw_util.c libi3: Add basic validation to hex color conversion 2017-07-12 17:53:15 -04:00
fake_configure_notify.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
font.c Prefer compiler warnings to assertions for unhandled switch cases 2018-04-04 19:20:55 +03:00
format_placeholders.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
get_colorpixel.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
get_config_path.c Respect SYSCONFDIR when looking for defaut 'xdg' directory 2016-11-09 22:34:39 +01:00
get_exe_path.c Replace http:// with https:// where applicable 2017-09-24 10:19:07 +02:00
get_mod_mask.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
get_process_filename.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
get_visualtype.c Update copyright notices and get rid of ranges 2015-04-20 17:50:21 -04:00
ipc_connect.c no-op refactoring: make ipc_connect find socket path 2017-11-26 16:41:59 +01:00
ipc_recv_message.c Bugfix: avert endless loop on unexpected EOF at ipc messages (#3021) 2017-11-09 11:18:23 -08:00
ipc_send_message.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
is_debug_build.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
mkdirp.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
resolve_tilde.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
root_atom_contents.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
safewrappers.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
string.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
strndup.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00
ucs2_conversion.c Ensure all *.[ch] files include config.h 2016-10-23 21:09:24 +02:00

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.