Annotate

doc/coding_style.txt @ 8791:8da11142fabf

muc: Allow clients to change multiple affiliations or roles at once (#345) According to XEP-0045 sections 9.2, 9.5 and 9.8 affiliation lists and role lists should allow mass-modification. Prosody however would just use the first entry of the list and ignore the rest. This is fixed by introducing a `for` loop to `set` stanzas of the respective `muc#admin` namespace. In order for this loop to work, the error handling was changed a little. Prosody no longer returns after the first error. Instead, an error reply is sent for each malformed or otherwise wrong entry, but the loop keeps going over the other entries. This may lead to multiple error messages being sent for one client request. A notable exception from this is when the XML Schema for `muc#admin` requests is violated. In that case the loop is aborted with an error message to the client. The change is a bit bigger than that in order to have the loop only for `set` stanzas without changing the behaviour of the `get` stanzas. This is now more in line with trunk, where there are separate methods for each stanza type. References: #345
author Lennart Sauerbeck <devel@lennart.sauerbeck.org>
date Sat, 18 Mar 2017 18:47:28 +0100
parent 13:716632cca05d
child 8728:41c959c5c84b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 This file describes some coding styles to try and adhere to when contributing to this project.
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2 Please try to follow, and feel free to fix code you see not following this standard.
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 == Indentation ==
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 1 tab indentation for all blocks
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 == Spacing ==
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 No space between function names and parenthesis and parenthesis and paramters:
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 function foo(bar, baz)
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
14 Single space between braces and key/value pairs in table constructors:
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
15
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
16 { foo = "bar", bar = "foo" }
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
17
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
18 == Local variable naming ==
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
19
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
20 In this project there are many places where use of globals is restricted, and locals used for faster access.
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
21
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
22 Local versions of standard functions should follow the below form:
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
23
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
24 math.random -> m_random
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
25 string.char -> s_char
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
26
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
27 == Miscellaneous ==
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
28
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
29 Single-statement blocks may be written on one line when short
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
30
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
31 if foo then bar(); end
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
32
716632cca05d Coding style doc, HACKERS file
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
33 'do' and 'then' keywords should be placed at the end of the line, and never on a line by themself.