| 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_". |
| |