From: Zbigniew Jędrzejewski-Szmek Date: Mon, 19 Nov 2018 12:24:34 +0000 (+0100) Subject: CODING_STYLE: fix rules for STRLEN and recommend strjoina more strongly X-Git-Tag: v240~266^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a98dc693e417bc1a813d5fe1eac663dbbf5ee91c;p=thirdparty%2Fsystemd.git CODING_STYLE: fix rules for STRLEN and recommend strjoina more strongly Again, this mostly matches what is happening in the codebase already. --- diff --git a/docs/CODING_STYLE.md b/docs/CODING_STYLE.md index abcdaab4aca..e70c56b766b 100644 --- a/docs/CODING_STYLE.md +++ b/docs/CODING_STYLE.md @@ -373,12 +373,16 @@ something some time", or so is a lazy excuse. Always wait for the proper event, instead of doing time-based poll loops. -- To determine the length of a constant string `"foo"`, don't bother - with `sizeof("foo")-1`, please use `STRLEN()` instead. - -- If you want to concatenate two or more strings, consider using - `strjoin()` rather than `asprintf()`, as the latter is a lot - slower. This matters particularly in inner loops. +- To determine the length of a constant string `"foo"`, don't bother with + `sizeof("foo")-1`, please use `strlen()` instead (both gcc and clang optimize + the call away for fixed strings). The only exception is when declaring an + array. In that case use STRLEN, which evalutates to a static constant and + doesn't force the compiler to create a VLA. + +- If you want to concatenate two or more strings, consider using `strjoina()` + or `strjoin()` rather than `asprintf()`, as the latter is a lot slower. This + matters particularly in inner loops (but note that `strjoina()` cannot be + used there). - Please avoid using global variables as much as you can. And if you do use them make sure they are static at least, instead of