aboutsummaryrefslogtreecommitdiff
path: root/STYLE
blob: 7a9b56cd0ddb6fbbd485caa7e661e97e98427eb8 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
This file summarizes the C style used for Jim.
Copyright (C) 2005 Salvatore Sanfilippo.

-----------
INDENTATION
-----------

Indentation is 4 spaces, no smart-tabs are used (i.e.
two indentation steps of 4 spaces will not be converted
into a real tab, but 8 spaces).

---------------
FUNCTIONS NAMES
---------------

Functions names of exported functions are in the form:

Jim_ExportedFunctionName()

The prefix is "Jim_", every word composing the function name
is capitalized.

Not exported functions that are of general interest for the Jim
core, like JimFreeInterp() are capitalized the same way, but the
prefix used for this functions is "Jim" instead of "Jim_".
Another example is:

JimNotExportedFunction()

Not exported functions that are not general, like functions
implementing hashtables or Jim objects methods can be named
in any prefix as long as capitalization rules are followed,
like in:

ListSetIndex()

---------------
VARIABLES NAMES
---------------

Global variables follow the same names convention of functions.

Local variables have usually short names. A counter is just 'i', or 'j',
or something like this. When a longer name is required, composed of
more words, capitalization is used, but the first word starts in
lowcase:

thisIsALogVarName

----
GOTO
----

Goto is allowed every time it makes the code cleaner, like in complex
functions that need to handle exceptions, there is often an "err" label
at the end of the function where allocated resources are freed before to exit
with an error. Goto is also used in order to escape multiple nested loops.

----------
C FEATURES
----------

Only C89 ANSI C is allowed. C99 features can't be used currently.
GCC extensions are not allowed.