chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
udev: timeout - increase timeout
[elogind.git]
/
CODING_STYLE
diff --git
a/CODING_STYLE
b/CODING_STYLE
index cb8d96c4cb98bf6816e1f5bf3cb8bb0b6510813d..05b5ecf89f32835e0ed1b6ee3463c035b5a8e4aa 100644
(file)
--- a/
CODING_STYLE
+++ b/
CODING_STYLE
@@
-1,6
+1,9
@@
-
- 8ch indent, no tabs
- 8ch indent, 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
+ then again, don't overdo it, ~140ch should be enough really.
+
- Variables and functions *must* be static, unless they have a
prototype, and are supposed to be exported.
- Variables and functions *must* be static, unless they have a
prototype, and are supposed to be exported.
@@
-23,14
+26,14
@@
more than one cause, it *really* should have "int" as return value
for the error code.
more than one cause, it *really* should have "int" as return value
for the error code.
-- Do
n'
t bother with error checking whether writing to stdout/stderr
+- Do
no
t bother with error checking whether writing to stdout/stderr
worked.
- Do not log errors from "library" code, only do so from "main
worked.
- Do not log errors from "library" code, only do so from "main
- program" code. (With one exception: it
'
s OK to log with DEBUG level
+ program" code. (With one exception: it
i
s OK to log with DEBUG level
from any code, with the exception of maybe inner loops).
from any code, with the exception of maybe inner loops).
-- Always check OOM. There
'
s no excuse. In program code, you can use
+- Always check OOM. There
i
s no excuse. In program code, you can use
"log_oom()" for then printing a short message, but not in "library" code.
- Do not issue NSS requests (that includes user name and host name
"log_oom()" for then printing a short message, but not in "library" code.
- Do not issue NSS requests (that includes user name and host name
@@
-38,14
+41,14
@@
lookups involve synchronously talking to services that we would need
to start up
lookups involve synchronously talking to services that we would need
to start up
-- Do
n'
t synchronously talk to any other service from PID 1, due to
+- Do
no
t synchronously talk to any other service from PID 1, due to
risk of deadlocks
risk of deadlocks
-- Avoid fixed
sized
string buffers, unless you really know the maximum
+- Avoid fixed
-size
string buffers, unless you really know the maximum
size and that maximum size is small. They are a source of errors,
size and that maximum size is small. They are a source of errors,
- since they possibly result in truncated strings.
Often it is
nicer
- to use dynamic memory, alloca() or VLAs. If you do allocate fixed
- s
ize strings on the stack, then it'
s probably only OK if you either
+ since they possibly result in truncated strings.
It is often
nicer
+ to use dynamic memory, alloca() or VLAs. If you do allocate fixed
-size
+ s
trings on the stack, then it i
s probably only OK if you either
use a maximum size such as LINE_MAX, or count in detail the maximum
size a string can have. (DECIMAL_STR_MAX and DECIMAL_STR_WIDTH
macros are your friends for this!)
use a maximum size such as LINE_MAX, or count in detail the maximum
size a string can have. (DECIMAL_STR_MAX and DECIMAL_STR_WIDTH
macros are your friends for this!)
@@
-54,7
+57,7
@@
doing something wrong!
- Stay uniform. For example, always use "usec_t" for time
doing something wrong!
- Stay uniform. For example, always use "usec_t" for time
- values. Do
n'
t usec mix msec, and usec and whatnot.
+ values. Do
no
t usec mix msec, and usec and whatnot.
- Make use of _cleanup_free_ and friends. It makes your code much
nicer to read!
- Make use of _cleanup_free_ and friends. It makes your code much
nicer to read!
@@
-74,9
+77,9
@@
{
}
{
}
- But it
's OK if you don'
t.
+ But it
is OK if you do no
t.
-- Do
n'
t write "foo ()", write "foo()".
+- Do
no
t write "foo ()", write "foo()".
- Please use streq() and strneq() instead of strcmp(), strncmp() where applicable.
- Please use streq() and strneq() instead of strcmp(), strncmp() where applicable.
@@
-99,10
+102,10
@@
- Unless you allocate an array, "double" is always the better choice
than "float". Processors speak "double" natively anyway, so this is
- Unless you allocate an array, "double" is always the better choice
than "float". Processors speak "double" natively anyway, so this is
- no speed benefit, and on calls like printf() "float"s get
upgrad
ed
+ no speed benefit, and on calls like printf() "float"s get
promot
ed
to "double"s anyway, so there is no point.
to "double"s anyway, so there is no point.
-- Do
n'
t invoke functions when you allocate variables on the stack. Wrong:
+- Do
no
t invoke functions when you allocate variables on the stack. Wrong:
{
int a = foobar();
{
int a = foobar();
@@
-123,9
+126,9
@@
backwards!
- Think about the types you use. If a value cannot sensibly be
backwards!
- Think about the types you use. If a value cannot sensibly be
- negative, do
n'
t use "int", but use "unsigned".
+ negative, do
no
t use "int", but use "unsigned".
-- Do
n'
t use types like "short". They *never* make sense. Use ints,
+- Do
no
t use types like "short". They *never* make sense. Use ints,
longs, long longs, all in unsigned+signed fashion, and the fixed
size types uint32_t and so on, as well as size_t, but nothing else.
longs, long longs, all in unsigned+signed fashion, and the fixed
size types uint32_t and so on, as well as size_t, but nothing else.
@@
-140,7
+143,7
@@
users then for ourselves! Note that assert() and assert_return()
really only should be used for detecting programming errors, not for
runtime errors. assert() and assert_return() by usage of _likely_()
users then for ourselves! Note that assert() and assert_return()
really only should be used for detecting programming errors, not for
runtime errors. assert() and assert_return() by usage of _likely_()
- inform the compiler that he should
n'
t expect these checks to fail,
+ inform the compiler that he should
no
t expect these checks to fail,
and they inform fellow programmers about the expected validity and
range of parameters.
and they inform fellow programmers about the expected validity and
range of parameters.
@@
-152,7
+155,7
@@
function or a "non-logging" function. "Logging" functions do logging
on their own, "non-logging" function never log on their own and
expect their callers to log. All functions in "library" code,
function or a "non-logging" function. "Logging" functions do logging
on their own, "non-logging" function never log on their own and
expect their callers to log. All functions in "library" code,
- i.e. in src/shared/ and suchlike must be "non-logging". Everytime a
+ i.e. in src/shared/ and suchlike must be "non-logging". Every
time a
"logging" function calls a "non-logging" function, it should log
about the resulting errors. If a "logging" function calls another
"logging" function, then it should not generate log messages, so
"logging" function calls a "non-logging" function, it should log
about the resulting errors. If a "logging" function calls another
"logging" function, then it should not generate log messages, so
@@
-167,3
+170,8
@@
caching for any thread that is not the main thread. Use
is_main_thread() to detect whether the calling thread is the main
thread.
caching for any thread that is not the main thread. Use
is_main_thread() to detect whether the calling thread is the main
thread.
+
+- 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.