Guidelines for Contributing: 1) Platform-specific functionality (for example, location of binaries that NetworkManager calls, or functionality used only on some platforms or distribution, like resolvconf) should be configurable at build time, with the normal autoconf mechanisms for putting a #define in config.h (AC_DEFINE), then with #ifdef MY_DEFINE / #endif in the code. 2) Coding standards are generally GNOME coding standards, with these exceptions: a) 4 space tabs (_not_ 8-space tabs) b) REAL tabs (_not_ a mix of tabs and spaces in the initial indent) c) spaces used to align continuation lines past the indent point of the first statement line, like so: if (some_really_really_long_variable_name && another_really_really_long_variable_name) { ... }