i3/libi3
Michael Stapelberg fa1b436fca Bugfix: mark IPC fd CLOEXEC (Thanks Layus)
Without this fix, children of i3bar would inherit the file descriptor of
the IPC connection to i3. Therefore, even if i3bar exits with SIGSEGV,
the connection to i3 stays open. Because nobody actually reads any
messages by i3, the buffer will fill up and i3 can’t deliver any more
messages, and thus busy-loops at that point.

fixes #995
2013-04-14 10:12:21 +02:00
..
fake_configure_notify.c normalize file headers across **/*.{h,c} 2011-10-25 21:19:38 +01:00
font.c Make i3-nagbar use the same font as configured for i3 2013-01-26 09:55:38 +01:00
get_colorpixel.c Implement support for chosing a 32 bit visual (necessary for pseudo-transparency) (Thanks darkraven) 2012-02-15 18:56:07 +00:00
get_mod_mask.c normalize file headers across **/*.{h,c} 2011-10-25 21:19:38 +01:00
get_process_filename.c fix formatting in get_process_filename.c 2012-12-24 16:57:30 +01:00
get_visualtype.c libi3: Introduce get_visualtype 2012-08-13 11:37:34 +02:00
ipc_connect.c Bugfix: mark IPC fd CLOEXEC (Thanks Layus) 2013-04-14 10:12:21 +02:00
ipc_recv_message.c ipc_recv_message: store message_type, don’t compare. add distinct EOF retval 2013-01-23 18:51:39 +01:00
ipc_send_message.c ipc_send_message: use stack frame with fixed size 2013-01-11 19:09:41 +01:00
is_debug_build.c Move is_debug_build() to libi3/ 2012-05-09 19:12:20 +02:00
libi3.mk Repect AR environment variable 2012-12-17 10:24:42 +01:00
Makefile Add stub Makefiles to allow subdir make calls 2012-07-22 19:57:48 +02:00
README Introduce libi3, an *internal* library to eliminate code duplication 2011-10-02 16:11:30 +01:00
root_atom_contents.c root_atom_contents: handle CARDINAL atoms such as I3_PID 2012-08-12 14:30:24 +02:00
safewrappers.c normalize file headers across **/*.{h,c} 2011-10-25 21:19:38 +01:00
string.c libi3: Implement i3String 2012-08-13 11:29:18 +02:00
strndup.c normalize file headers across **/*.{h,c} 2011-10-25 21:19:38 +01:00
ucs2_conversion.c Don't multiply by sizeof(char) twice. 2012-03-26 16:47:44 +02:00

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.