hexchat/share/doc/hacking.md
2012-10-27 19:31:51 +02:00

1.5 KiB

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:

void
routine (void)
{
	if (function (a, b, c))
	{
		x = a + 1;
	}
}
(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.:

    fh = open ("file", OFLAGS | O_RDONLY);
  • 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:

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

      • Windows:

        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
          
      • Unix:

        diff -ruN hexchat-2.9.0 hexchat-2.9.0p1 > hexchat-something.diff