aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2008-09-07 02:01:04 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2008-09-07 02:01:04 +0000
commit2cf3f6694fc85040c1609c39ca45e7e1f05dea05 (patch)
treecad3a2f2c49037529b01f6d2f3ce79089d469e35
parent1cfd878643195788afb66cbdb80c093824470dd5 (diff)
downloadpostgresql-2cf3f6694fc85040c1609c39ca45e7e1f05dea05.tar.gz
postgresql-2cf3f6694fc85040c1609c39ca45e7e1f05dea05.zip
Add a few more details in the source-code-formatting documentation.
This isn't exhaustive but it covers some of the more common layout mistakes I've seen in submitted patches.
-rw-r--r--doc/src/sgml/sources.sgml52
1 files changed, 42 insertions, 10 deletions
diff --git a/doc/src/sgml/sources.sgml b/doc/src/sgml/sources.sgml
index 78d60bb5ae4..e78e59ad900 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>