summaryrefslogtreecommitdiff
path: root/documentation/modular_coding_style.mdwn
blob: da07a8adc04dde3e3adfd766358c0c52d5330c7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[[!meta title="Documentation/Modular Coding Style"]]
[[!meta author="James Bursa"]]
[[!meta date="2011-11-26T22:20:15Z"]]


[[!toc]]

Modules
-------

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
<module>\_, 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
<module>\_.

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.

Coding Style
------------

We use K&R (2nd edition ANSI C) style, tabs for indent, 80 characters
wide, lower\_case\_with\_underscores.

See the [Style
Guide](http://www.netsurf-browser.org/developers/StyleGuide.pdf) for
further information and examples.

[[!inline raw=yes pages="Documentation"]]