The following pull request was submitted through Github.
It can be accessed and reviewed at: https://github.com/lxc/lxc/pull/2202
This e-mail was sent by the LXC bot, direct replies will not reach the author
unless they happen to be subscribed to this list.
=== Description (from pull-request) ===
Signed-off-by: Christian Brauner
From 0c9119fc1f465a53ae024d5912c5eb801c3305a9 Mon Sep 17 00:00:00 2001
From: Christian Brauner
Date: Fri, 2 Mar 2018 12:18:38 +0100
Subject: [PATCH 1/3] CODING_STYLE: remove duplicate _exit() entry
Signed-off-by: Christian Brauner
---
CODING_STYLE.md | 7 ---
1 file changed, 7 deletions(-)
diff --git a/CODING_STYLE.md b/CODING_STYLE.md
index a3bf41a4a..4a88bb898 100644
--- a/CODING_STYLE.md
+++ b/CODING_STYLE.md
@@ -433,13 +433,6 @@ rules to use them:
}
```
- Use `_exit()` in `fork()`ed Processes
-
-- This has multiple reasons but the gist is:
- - `exit()` is not thread-safe
- - `exit()` in libc runs exit handlers which might interfer with the parents
-state
-
Use `for (;;)` instead of `while (1)` or `while (true)`
- Let's be honest, it is really the only sensible way to do this.
From 3b2568fa77a39d19ef4779665fe0df689634b700 Mon Sep 17 00:00:00 2001
From: Christian Brauner
Date: Fri, 2 Mar 2018 12:29:30 +0100
Subject: [PATCH 2/3] CODING_STYLE: clang-format
Signed-off-by: Christian Brauner
---
CODING_STYLE.md | 44
1 file changed, 44 insertions(+)
diff --git a/CODING_STYLE.md b/CODING_STYLE.md
index 4a88bb898..0d14e56aa 100644
--- a/CODING_STYLE.md
+++ b/CODING_STYLE.md
@@ -16,6 +16,50 @@
style and add their Signed-off-by line to it. This is especially helpful to
make it easier for first-time contributors and to prevent having pull
requests being stuck in the merge queue because of minor details.
+- We currently do not provide automatic coding style checks but if a suitable
+ tools is found we are happy to integrate it into our test suite. It is
+ possible and recommended to use the `clang-format` binary to check your code.
+ The following options are an approximation of the coding style used here.
+ Simply create a file called `.clang-format` in your home directory with the
+ following options:
+ ```
+ cat << EOF > "${HOME}"/.clang-format
+ BreakBeforeBraces: Attach
+ AlwaysBreakBeforeMultilineStrings: false
+ BreakBeforeBinaryOperators: None
+ MaxEmptyLinesToKeep: 1
+ PenaltyBreakBeforeFirstCallParameter: 100
+ BinPackArguments: true
+ BinPackParameters: true
+ AllowAllParametersOfDeclarationOnNextLine: false
+ AlignAfterOpenBracket: true
+ SpacesInSquareBrackets: false
+ SpacesInCStyleCastParentheses: false
+ SpaceInEmptyParentheses: false
+ SpaceBeforeParens: ControlStatements
+ SpaceAfterCStyleCast: false
+ SortIncludes: true
+ PenaltyReturnTypeOnItsOwnLine: 1
+ PenaltyExcessCharacter: 10
+ Language: Cpp
+ ForEachMacros: ['lxc_list_for_each', 'lxc_list_for_each_safe']
+ AllowShortLoopsOnASingleLine: false
+ AllowShortIfStatementsOnASingleLine: false
+ AllowShortFunctionsOnASingleLine: None
+ AllowShortCaseLabelsOnASingleLine: false
+ AllowShortBlocksOnASingleLine: false
+ BasedOnStyle: LLVM
+ TabWidth: 8
+ IndentWidth: 8
+ UseTab: Always
+ BreakBeforeBraces: Linux
+ AllowShortIfStatementsOnASingleLine: false
+ IndentCaseLabels: false
+ EOF
+ ```
+ However, it will not handle all cases correctly. For example, most `struct`
+ initializations will not be correct. In such cases please refer to the coding
+ style here.
Only Use Tabs
From 099cc6ece3031786e8c998e1fcdf4e6c841f118a Mon Sep 17 00:00:00 2001
From: Christian Brauner
Date: Fri, 2 Mar 2018 12:50:55 +0100
Subject: [PATCH 3/3] CODING_STYLE: arrays of structs
Signed-off-by: Christian Brauner
---
CODING_STYLE.md | 108
1 file changed, 108 insertions(+)
diff --git a/CODING_STYLE.md b/CODING_STYLE.md
index 0d14e56aa..af8bcf939 100644
--- a/CODING_STYLE.md
+++ b/CODING_STYLE.md
@@ -24,6 +24,7 @@
following options:
```
cat << EOF > "${HOME}"/.clang-format
+ AlignEscapedNewlines: Left
BreakBeforeBraces: Attach
AlwaysBreakBeforeMultilineStrings: false
BreakBeforeBinaryOperators: None
@@ -554,3 +555,110 @@ rules to use them:
- When `fork()`ing off a child process use `_exit()` to terminate it instead of
`exit()`. The `exit()` function is not thread-safe and thus not suited for
the shared library which must ensure that it is thread-safe.
+
+ Keep Arrays of `struct`s Aligned Horizontally When Initializing
+
+- Arrays of `struct`s are:
+ ```
+ struct foo_struct {
+int n;
+int m;
+int p;
+ };
+
+ struct foo_struct new_instance[] = {
+ { 1, 2, 3 },