NetSurf's source is organised in modules. A module usually consists of a .c and .h file. For example the html module is in html.c and html.h.
All functions (including static functions) in a module should start _, for example html_create(), html_process_data(), etc. This makes functions easy to find and names unique through the source, which is helpful for backtraces, documentation, etc.
Global variables in a module (including static) should also start _.
Static functions should all be declared at the top.
Put functions in a logical order, for example any init function first, then functions it calls, then the next externally available function, functions it calls, etc.
We use K&R (2nd edition ANSI C) style, tabs for indent, 80 characters wide, lower_case_with_underscores.
See the Style Guide for further information and examples.
Organization and Conventions
- Modular coding style
- Directory structure
- Error handling
- Memory management
- Getting started (with coding on NetSurf)
- Git Cheat Sheet