X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=CODING_STYLE;h=30d24e56a6e1fa4ec9e40896f47096451b629f7b;hb=2a7e23fbba3a42265c49e62404ab3f9ed25bc9b7;hp=598d241b2baa048c1bc18644ade20ea9dcfb3d49;hpb=61f33134fc9231e07e1b9519b140d68139e9fad0;p=elogind.git diff --git a/CODING_STYLE b/CODING_STYLE index 598d241b2..30d24e56a 100644 --- a/CODING_STYLE +++ b/CODING_STYLE @@ -1,4 +1,5 @@ -- 8ch indent, no tabs +- 8ch indent, no tabs, except for files in man/ which are 2ch indent, + and still no tabs - Don't break code lines too eagerly. We do *not* force line breaks at 80ch, all of today's screens should be much larger than that. But @@ -182,7 +183,16 @@ is_main_thread() to detect whether the calling thread is the main thread. -- Option parsing: +- Command line option parsing: - Do not print full help() on error, be specific about the error. - Do not print messages to stdout on error. - Do not POSIX_ME_HARDER unless necessary, i.e. avoid "+" in option string. + +- Do not write functions that clobber call-by-reference variables on + failure. Use temporary variables for these cases and change the + passed in variables only on success. + +- When you allocate a file descriptor, it should be made O_CLOEXEC + right from the beginning, as none of our files should leak to forked + binaries by default. Hence, whenever you open a file, O_CLOEXEC must + be specified, right from the beginning.