File

doc/coding_style.txt @ 2089:fdd7280c4621

s2smanager: Queue db:verify unless we already sent a db:result (if we had then it can could a dialback deadlock). Also remove some redundant code which could cause a db:result to be sent while still negotiating features (e.g. TLS) and break things. Collectively these fix a 'random' s2s failure (usually with ejabberd for some reason) - resulting in an 'unbound prefix' XML error, or 'ssl handshake failure'. Was this commit message long enough? I think so.
author Matthew Wild <mwild1@gmail.com>
date Fri, 20 Nov 2009 04:39:54 +0000
parent 13:716632cca05d
child 8728:41c959c5c84b
line wrap: on
line source

This file describes some coding styles to try and adhere to when contributing to this project.
Please try to follow, and feel free to fix code you see not following this standard.

== Indentation ==

	1 tab indentation for all blocks

== Spacing ==

No space between function names and parenthesis and parenthesis and paramters:

		function foo(bar, baz)

Single space between braces and key/value pairs in table constructors:

		{ foo = "bar", bar = "foo" }

== Local variable naming ==

In this project there are many places where use of globals is restricted, and locals used for faster access.

Local versions of standard functions should follow the below form:

	math.random -> m_random
	string.char -> s_char	

== Miscellaneous ==

Single-statement blocks may be written on one line when short
	
	if foo then bar(); end

'do' and 'then' keywords should be placed at the end of the line, and never on a line by themself.