File: HACKING

package info (click to toggle)
gnucash 1.6.6-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 38,508 kB
  • ctags: 21,557
  • sloc: ansic: 100,442; lisp: 21,941; sh: 7,255; perl: 3,144; makefile: 2,236; cpp: 1,742; yacc: 318; sql: 300
file content (68 lines) | stat: -rw-r--r-- 1,880 bytes parent folder | download
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
65
66
67
68
Hacking Guidelines
==================

This document is an introduction to hacking on GnuCash.

Related Documents
-----------------

In addition to this file, you should read the README file, which
explains the details of getting the CVS source, building GnuCash,
and creating patches for submission.

The src/doc/design directory contains a preliminary design document
which you should read as well. You should also feel free to hack on
the design document.


Coding Style Conventions
------------------------

General:

 * When modifying a file, the style convention in that file should be
   followed.

 * When creating a new file, the style of existing files should be
   followed.

 * When creating lots of new files in a new directory, you may use
   your own coding standards, but please try to stick as closely as
   possible to the GNU coding standards.

 * Do not submit patches that consist of (gratuitous) stylistic changes.


C:

 * Use ISO C.

 * Use glib memory routines where possible. This means you should be
   using g_malloc(), g_new(), g_free(), etc., instead of malloc(),
   free(), etc. Do not mix glib memory calls with libc calls!

 * Where possible, use glib data abstractions instead of rolling your
   own. Glib linked lists and pointer arrays are very convenient and
   have been extensively used and tested.

 * All gnucash functions and global variables are prefixed with gnc_

 * Use static functions whenever possible

 * Use const whenever possible


Scheme:

 * All gnucash functions and global variables are prefixed with gnc:

 * All global variables are enclosed in ** (i.e. gnc:*load-path*)

 * All private functions are enclosed in __ (i.e. gnc:_do-not-call_)

 * All C functions wrapped with g-wrap have dashes in place of underscores.
   (xaccSplitGetBalance --> gnc:split-get-balance).


Dave Peticolas <dave@krondo.com>
August 22, 2000