summaryrefslogtreecommitdiff
path: root/CodingStyle
diff options
context:
space:
mode:
Diffstat (limited to 'CodingStyle')
-rw-r--r--CodingStyle69
1 files changed, 69 insertions, 0 deletions
diff --git a/CodingStyle b/CodingStyle
new file mode 100644
index 0000000..cb773be
--- /dev/null
+++ b/CodingStyle
@@ -0,0 +1,69 @@
+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_".
+