Archived
14
0
Fork 0
This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
asterisk/doc/CODING-GUIDELINES
markster 18d5476e23 Update coding guidelines
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3000 f38db490-d61c-443f-a65b-d21fe96a405b
2004-05-18 05:52:52 +00:00

74 lines
1.5 KiB
Text
Executable file

Asterisk Patch/Coding Guidelines
To be accepted into the codebase, all non-trivial changes must be
disclaimed to Digium or placed in the public domain. For more information
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.
Don't make unnecessary whitespace changes throughout the code.
Don't use C++ type (//) comments.
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.
Function calls and arguments should be spaced in a consistent way across
the codebase.
GOOD: foo(arg1, arg2);
GOOD: foo(arg1,arg2); /* Acceptable but not preferred */
BAD: foo (arg1, arg2);
BAD: foo( arg1, arg2 );
BAD: foo(arg1, arg2,arg3);
Following are examples of how code should be formatted.
Functions:
int foo(int a, char *s)
{
return 0;
}
If statements:
if (foo) {
bar();
} else {
blah();
}
Case statements:
switch (foo) {
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();
}
}