mirror of
				https://github.com/asterisk/asterisk.git
				synced 2025-11-03 20:38:59 +00:00 
			
		
		
		
	git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3000 65c4cc65-6c06-0410-ace0-fbb531ad65f3
		
			
				
	
	
		
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
		
			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();
 | 
						|
	}
 | 
						|
}
 |