Provide "ident" command line (at least the start of one)
[asterisk/asterisk.git] / doc / CODING-GUIDELINES
index 7d621b4..643e544 100755 (executable)
@@ -6,6 +6,11 @@ see http://bugs.digium.com
 
 Patches should be in the form of a unified (-u) diff.
 
+All code, filenames, function names and comments must be in ENGLISH.
+
+Do not declare variables mid-function (e.g. like GNU lets you) since it is
+harder to read and not portable to GCC 2.95 and others.
+
 Don't annotate your changes with comments like "/* JMG 4/20/04 */";
 Comments should explain what the code does, not when something was changed
 or who changed it.
@@ -19,6 +24,11 @@ Try to match the existing formatting of the file you are working on.
 Functions and variables that are not intended to be global must be
 declared static.
 
+Roughly, Asterisk coding guidelines are generally equivalent to the 
+following:
+
+# indent -i4 -ts4 -br -brs -cdw -cli0 -ce -nbfda -npcs -npsl foo.c
+
 Function calls and arguments should be spaced in a consistent way across
 the codebase.
 GOOD: foo(arg1, arg2);
@@ -44,10 +54,25 @@ if (foo) {
 
 Case statements:
 switch (foo) {
-       case BAR:
-               blah();
-               break;
-       case OTHER:
-               other();
-               break;
+case BAR:
+       blah();
+       break;
+case OTHER:
+       other();
+       break;
+}
+
+No nested statements without braces, e.g. no:
+
+for (x=0;x<5;x++)
+       if (foo) 
+               if (bar)
+                       baz();
+
+instead do:
+for (x=0;x<5;x++) {
+       if (foo) {
+               if (bar)
+                       baz();
+       }
 }