70 lines
4.1 KiB
Plaintext
70 lines
4.1 KiB
Plaintext
The discussion about coding style on the net-snmp-coders mailing list
|
|
can be found at the following web address:
|
|
|
|
http://sourceforge.net/mailarchive/message.php?msg_id=1009885
|
|
(Thread "design proposal - coding style" started on 2001-02-08)
|
|
|
|
----------------------------------------------------------------------
|
|
Indentation:
|
|
|
|
We've adopted the following indent style:
|
|
|
|
indent -orig -nbc -bap -nut -nfca -T netsnmp_mib_handler -T netsnmp_handler_registration -T netsnmp_handler_args -T netsnmp_delegated_cache -T netsnmp_baby_steps_modes -T netsnmp_baby_steps_access_methods -T netsnmp_mode_handler_list -T netsnmp_mib_handler_methods -T netsnmp_monitor_callback_header -T netsnmp_monitor_set_request_data -T netsnmp_monitor_callback_cooperative -T netsnmp_old_api_info -T netsnmp_old_api_cache -T netsnmp_row_merge_status -T netsnmp_scalar_group -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_stash_cache_info -T netsnmp_stash_cache_data -T netsnmp_request_group_item -T netsnmp_request_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_tdata_row -T netsnmp_tdata -T netsnmp_subtree -T netsnmp_watcher_info -T netsnmp_arp_entry -T netsnmp_interface_stats -T netsnmp_interface_entry -T netsnmp_conf_if_list -T netsnmp_ipaddress_entry -T netsnmp_ipstats -T netsnmp_route_entry -T netsnmp_systemstats_entry -T netsnmp_tcpconn_entry -T netsnmp_udp_endpoint_entry -T netsnmp_container -T netsnmp_iterator -T netsnmp_data_list -T netsnmp_data_list_saveinfo -T netsnmp_factory -T netsnmp_file -T netsnmp_oid_stash_node -T netsnmp_oid_stash_save_info -T netsnmp_pdu -T netsnmp_request_list -T netsnmp_vardata -T netsnmp_callback_pass -T netsnmp_callback_info -T netsnmp_token_descr -T netsnmp_std_data -T netsnmp_transport -T netsnmp_transport_list -T netsnmp_tdomain -T netsnmp_line_info -T netsnmp_line_process_info -T netsnmp_token_value_index
|
|
|
|
[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 parameters lined up with opening parenthesis
|
|
|
|
----------------------------------------------------------------------
|
|
Function names and Variable names:
|
|
|
|
should_be_like_this and notLikeThis
|
|
|
|
New public functions and defines should ideally start with a netsnmp_
|
|
or NETSNMP_ prefix, respectively.
|
|
|
|
----------------------------------------------------------------------
|
|
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_".
|
|
|