summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane2008-09-07 02:01:04 +0000
committerTom Lane2008-09-07 02:01:04 +0000
commit0dd5e2713d1770987b65bd92483a8a6411dcc9e0 (patch)
tree15d4dd49772aa0843ef374fdb729ce786d6ab2ee
parentc89df50fd7e0d1c6700ff6dc0fa8c8788e6ea95a (diff)
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.sgml50
1 files changed, 41 insertions, 9 deletions
diff --git a/doc/src/sgml/sources.sgml b/doc/src/sgml/sources.sgml
index 87c3c5bddb..40b95c4002 100644
--- a/doc/src/sgml/sources.sgml
+++ b/doc/src/sgml/sources.sgml
@@ -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>