summaryrefslogtreecommitdiff
path: root/CODING_STYLE
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2015-06-02 09:53:00 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2015-06-02 09:53:00 +1000
commitcd33b3611b5c71fb2ea69a7e5bdf164f9064c95a (patch)
treebd7a9267f63df305cf0556ca7fb3679da6f5ade3 /CODING_STYLE
parent289e4675c81d2fe32650295ce2b6a66a1ebb9f24 (diff)
Add a CODING_STYLE document
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'CODING_STYLE')
-rw-r--r--CODING_STYLE79
1 files changed, 79 insertions, 0 deletions
diff --git a/CODING_STYLE b/CODING_STYLE
new file mode 100644
index 00000000..1a64ffe6
--- /dev/null
+++ b/CODING_STYLE
@@ -0,0 +1,79 @@
+- Indentation in tabs, 8 characters wide, spaces after the tabs where
+ vertical alignment is required (see below)
+
+- Max line width 80ch, do not break up printed strings though
+
+- Break up long lines at logical groupings, one line for each logical group
+
+ int a = somelongname() +
+ someotherlongname();
+
+ if (a < 0 &&
+ (b > 20 & d < 10) &&
+ d != 0.0)
+
+
+ somelongfunctioncall(arg1,
+ arg2,
+ arg3);
+
+- Function declarations: return type on separate line, {} on separate line,
+ arguments broken up as above.
+
+ static inline int
+ foobar(int a, int b)
+ {
+
+ }
+
+ void
+ somenamethatiswaytoolong(int a,
+ int b,
+ int c)
+ {
+ }
+
+- /* comments only */, no // comments
+
+- variable_name, not VariableName or variableName. same for functions.
+
+- no typedefs of structs, enums, unions
+
+- if it generates a compiler warning, it needs to be fixed
+- if it generates a static checker warning, it needs to be fixed or
+ commented
+
+- declare variables at the top, try to keep them as local as possible.
+ Exception: if the same variable is re-used in multiple blocks, declare it
+ at the top.
+
+ int a;
+ int c;
+
+ if (foo) {
+ int b;
+
+ c = get_value();
+ usevalue(c);
+ }
+
+ if (bar) {
+ c = get_value();
+ useit(c);
+ }
+
+- public functions MUST be doxygen-commented, use doxygen's @foo rather than
+ \foo notation
+
+- include "config.h" comes first, followed by system headers, followed by
+ external library headers, followed by internal headers.
+ sort alphabetically where it makes sense (specifically system headers)
+
+ #include "config.h"
+
+ #include <stdio.h>
+ #include <string.h>
+
+ #include <libevdev/libevdev.h>
+
+ #include "libinput-private.h"