summary refs log tree commit diff stats
path: root/share/doc/hacking.md
blob: bf0605317b465376665b95a32c6afc38ffd60d99 (plain) (blame)
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
# HexChat Hacking Guidelines

Just some tips if you're going to help with HexChat code (patches etc):

* Use tabs, not spaces, to indent code.

* Use a tab size of 3 (most editors will let you choose this).
  Type :set ts=3 in vim/gvim.

* Try to stick to the same consistant coding style:

<pre>void
routine (void)
{
	if (function (a, b, c))
	{
		x = a + 1;
	}
}</pre>

	(vertically aligned braces, a space after if, while, functions etc).

* Don't use "//" C++ style comments, some compilers don't like them.

* When opening a file with Unix level functions (open, read/write, close)
  as opposed to the C level functions (fopen, fwrite/fread, fclose), use
  the OFLAGS macro. This makes sure it'll work on Win32 aswell as Unix e.g.:

	<pre>fh = open ("file", OFLAGS | O_RDONLY);</pre>

* Use closesocket() for sockets, and close() for normal files.

* Don't read() from sockets, use recv() instead.

* Please provide unified format diffs (run diff -u).

* Call your patch something more meaningfull than hexchat.diff.

* To make a really nice and clean patch, do something like this:

	* Have two directories, unpacked from the original archive:

		<pre>hexchat-2.9.0/
		hexchat-2.9.0p1/</pre>

	* Then edit/compile the hexchat-2.9.0p1 directory. To create a patch:

		* Windows:

			<pre>rmdir /q /s hexchat-2.9.0p1/win32/build
			rmdir /q /s hexchat-2.9.0p1/win32/build-xp
			diff -ruN --strip-trailing-cr hexchat-2.9.0 hexchat-2.9.0p1 > hexchat-something.diff
			</pre>

		* Unix:

			<pre>diff -ruN hexchat-2.9.0 hexchat-2.9.0p1 > hexchat-something.diff</pre>