wiki:Hacking

Version 6 (modified by angel_il, 14 years ago) (diff)

--

Code Style

  • Maximum Line Width is 100 Characters. The reason is not about people with low-res screens but rather sticking to 100 columns prevents you from easily nesting more than one level of if statements or other code blocks.
  • Use 4 Space Tabs to Indent. With whitespace fillers.
  • No Trailing Whitespace
  • Follow the GNU-Style guidelines. We won't go through all of them here.

Please use the same indentation as other developers. Follow the style used in GNU Midnight Commander:

indent --gnu-style --format-first-column-comments --indent-level4 --brace-indent0 --line-length100 --no-tabs --blank-lines-after-procedures

or in short notation:

indent -gnu -fc1 -i4 -bli0 -nut -bap -l100

Programming Tips

Comments

Comments should always use the standard C syntax. C++ style comments are not currently allowed.

The lines before a comment should be empty. If the comment directly belongs to the following code, there should be no empty line after the comment, except if the comment contains a summary of multiple following code blocks.

typical structure of *.c file

/*** global variables ****************************************************************************/
/*** file scope macro definitions ****************************************************************/
/*** file scope type declarations ****************************************************************/
/*** file scope variables ************************************************************************/
/*** file scope functions ************************************************************************/
/* --------------------------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------------------------- */
/*** public functions ****************************************************************************/
/* --------------------------------------------------------------------------------------------- */