i3/libi3
aszlig 9058fc44e6 Allow to validate the config file without X.
We're going to call parse_configuration() very early if -C is given on
the command line. Instead of the previous "only_check_config", which has
been a global variable, we now simply pass use_nagbar as false if we're
just validating.

This causes the whole parsing to run without X and of course without
starting nagbar and displaying the errors to standard out/error instead.

The return code of parse_configuration() is now a boolean which
represents whether an error occured during parsing and the programs exit
code is returned accordingly.

Although the config parser still has a lot of side-effects, we now can
parse without the need to have an XCB connection. A nicer implementation
would be to just set the new font and load it just after we're done
parsing, but to ensure we don't break functionality we just load a dummy
FONT_TYPE_NONE if XCB isn't available. The main reason for going this
route is that it's a bit difficult to test fonts in a distribution
agnostic way without bundling fonts with i3 (or Xdummy to be more
exact).

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-08-25 19:34:26 +02:00
..
dpi.c Treat everything up to 120 dpi as 96 dpi (Thanks jefvel) 2014-08-23 16:02:30 +02:00
fake_configure_notify.c format **/*.c with clang-format-3.5 2014-06-15 19:07:02 +02:00
font.c Allow to validate the config file without X. 2014-08-25 19:34:26 +02: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_exe_path.c format **/*.c with clang-format-3.5 2014-06-15 19:07:02 +02:00
get_mod_mask.c format **/*.c with clang-format-3.5 2014-06-15 19:07:02 +02:00
get_process_filename.c Improve error message when $XDG_RUNTIME_DIR is not writable 2013-09-25 19:33:28 +02:00
get_visualtype.c libi3: Introduce get_visualtype 2012-08-13 11:37:34 +02:00
ipc_connect.c format **/*.c with clang-format-3.5 2014-06-15 19:07:02 +02:00
ipc_recv_message.c Don't ELOG ipc EOF 2014-06-08 13:54:55 +02:00
ipc_send_message.c format **/*.c with clang-format-3.5 2014-06-15 19:07:02 +02: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 format **/*.c with clang-format-3.5 2014-06-15 19:07:02 +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 format **/*.c with clang-format-3.5 2014-06-15 19:07:02 +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.