65 lines
3.1 KiB
Plaintext
Executable File
65 lines
3.1 KiB
Plaintext
Executable File
The discussion about coding style on the net-snmp-coders mailing list
|
|
can be found at the following web address:
|
|
http://www.geocrawler.com/mail/thread.php3?subject=design+proposal+-+coding+style&list=6845
|
|
|
|
----------------------------------------------------------------------
|
|
Indentation:
|
|
|
|
We've adopted the following indent style:
|
|
|
|
indent -orig -nbc -bap -nut -nfca -T netsnmp_mib_handler -T netsnmp_handler_registration -T netsnmp_delegated_cache -T netsnmp_mib_handler_methods -T netsnmp_old_api_info -T netsnmp_old_api_cache -T netsnmp_set_info -T netsnmp_request_info -T netsnmp_set_info -T netsnmp_tree_cache -T netsnmp_agent_request_info -T netsnmp_cachemap -T netsnmp_agent_session -T netsnmp_array_group_item -T netsnmp_array_group -T netsnmp_table_array_callbacks -T netsnmp_table_row -T netsnmp_table_data -T netsnmp_table_data_set_storage -T netsnmp_table_data_set -T netsnmp_column_info -T netsnmp_table_registration_info -T netsnmp_table_request_info -T netsnmp_iterator_info -T netsnmp_data_list -T netsnmp_oid_array_header -T netsnmp_oid_array_header_wrapper -T netsnmp_oid_stash_node -T netsnmp_pdu -T netsnmp_request_list -T netsnmp_callback_pass -T netsnmp_callback_info -T netsnmp_transport -T netsnmp_transport_list -T netsnmp_tdomain
|
|
|
|
[wow, what an annoying list! The above -T list can be (re)generated by
|
|
running:
|
|
perl -n -e 'print "-T $1 " if (/}\s*(netsnmp_\w+)\s*;/);' */*.h
|
|
in the include/net-snmp directory]
|
|
|
|
If possible, please run all new code submitted to the project through
|
|
the above command. However, if sending a patch, please do *not* send
|
|
a patch that reformats the entire file. Just the new sections of code
|
|
should be in the above style to make it easier for us to dissect what
|
|
you did in your patch.
|
|
|
|
Briefly, here's a description of the style:
|
|
|
|
Blank lines:
|
|
after procedures
|
|
not (forced) after blocks of declarations or block comments
|
|
multiple declarations not split onto separate lines
|
|
|
|
Comments:
|
|
Block comments indented 4 spaces from surrounding code
|
|
Start/End on separate lines
|
|
Solid '*' on the left of block comments
|
|
"One-line" comments start in column 33
|
|
|
|
Bracing/Indent/etc:
|
|
K&R-style bracing (including "cuddle-else")
|
|
'case' statements in line with 'switch'
|
|
No space between procedure name and opening parenthesis
|
|
variable declarations lined up, and start in column 16
|
|
Procedure return type on a separate line to the procedure name
|
|
Four character basic and continuation line indent
|
|
No tabs used in the file, always use 8 spaces instead.
|
|
Continuation paramters lined up with opening parenthesis
|
|
|
|
----------------------------------------------------------------------
|
|
Function names and Variable names:
|
|
|
|
should_be_like_this and notLikeThis
|
|
|
|
----------------------------------------------------------------------
|
|
Structures:
|
|
|
|
We have decided to typedef all structures into names using the
|
|
following convention:
|
|
|
|
typedef struct netsnmp_wombat_s {
|
|
int something_cool;
|
|
} netsnmp_wombat;
|
|
|
|
The important things to note here are that the struct name ends in a
|
|
"_s", the typedef name doesn't end in "_t", and the typedef is not to a
|
|
pointer and everything begins with "netsnmp_".
|
|
|