diff --git a/doc/src/sgml/sources.sgml b/doc/src/sgml/sources.sgml index 78d60bb5ae408ea843a3966fdba462b7fe7d0cb6..e78e59ad9000b72a4c74d145ff98e2febdca0c72 100644 --- a/doc/src/sgml/sources.sgml +++ b/doc/src/sgml/sources.sgml @@ -1,4 +1,4 @@ -<!-- $PostgreSQL: pgsql/doc/src/sgml/sources.sgml,v 2.30 2008/03/24 18:08:47 tgl Exp $ --> +<!-- $PostgreSQL: pgsql/doc/src/sgml/sources.sgml,v 2.31 2008/09/07 02:01:04 tgl Exp $ --> <chapter id="source"> <title>PostgreSQL Coding Conventions</title> @@ -7,24 +7,56 @@ <title>Formatting</title> <para> - Source code formatting uses 4 column tab spacing, with - tabs preserved (i.e. tabs are not expanded to spaces). + Source code formatting uses 4 column tab spacing, with + tabs preserved (i.e., tabs are not expanded to spaces). Each logical indentation level is one additional tab stop. - Layout rules (brace positioning, etc) follow BSD conventions. + </para> + + <para> + Layout rules (brace positioning, etc) follow BSD conventions. In + particular, curly braces for the controlled blocks of <literal>if</>, + <literal>while</>, <literal>switch</>, etc go on their own lines. + </para> + + <para> + Do not use C++ style comments (<literal>//</> comments). Strict ANSI C + compilers do not accept them. For the same reason, do not use C++ + extensions such as declaring new variables mid-block. + </para> + + <para> + The preferred style for multi-line comment blocks is +<programlisting> +/* + * comment text begins here + * and continues here + */ +</programlisting> + Note that comment blocks that begin in column 1 will be preserved as-is + by <application>pgindent</>, but it will re-flow indented comment blocks + as though they were plain text. If you want to preserve the line breaks + in an indented block, add dashes like this: +<programlisting> + /*---------- + * comment text begins here + * and continues here + *---------- + */ +</programlisting> </para> <para> While submitted patches do not absolutely have to follow these formatting rules, it's a good idea to do so. Your code will get run through - <application>pgindent</>, so there's no point in making it look nice - under some other set of formatting conventions. + <application>pgindent</> before the next release, so there's no point in + making it look nice under some other set of formatting conventions. </para> <para> - The <filename>src/tools</filename> directory contains sample settings - files that can be used with the <productname>emacs</productname>, - <productname>xemacs</productname> or <productname>vim</productname> - editors to help ensure that they format code according to these + The <filename>src/tools</filename> directory contains sample settings + files that can be used with the <productname>emacs</productname>, + <productname>xemacs</productname> or <productname>vim</productname> + editors to help ensure that they format code according to these conventions. </para>