Difference between revisions of "Coding style/Transition strategies"
(→Implementation of transition) |
(update for c-basic-offset vs c-file-style; add directory exception for libdb2) |
||
Line 22: | Line 22: | ||
* src/appl/telnet |
* src/appl/telnet |
||
* src/appl/gssftp |
* src/appl/gssftp |
||
+ | * src/plugins/kdb/db2/libdb2 |
||
== Whitespace == |
== Whitespace == |
||
Line 33: | Line 34: | ||
== Indentation == |
== Indentation == |
||
− | To mark files as having indentation conforming to our coding style, add <code>c- |
+ | To mark files as having indentation conforming to our coding style, add <code>c-basic-offset: 4</code> to the local variable line: |
<pre> |
<pre> |
||
− | /* -*- mode: c; c- |
+ | /* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ |
</pre> |
</pre> |
||
− | Remember to add the definition of the "krb5" c style to your <code>.emacs</code> file. |
||
+ | We will devise some emacs customizations for automatically using the "krb5" c style where appropriate; putting a reference to that style in the local variable line would not be friendly to developers who do not define that style in their <code>.emacs</code> files, so we will use <code>c-basic-offset</code> instead. |
||
For BSD-derived code, use |
For BSD-derived code, use |
||
Line 47: | Line 48: | ||
</pre> |
</pre> |
||
− | If we get a style declaration for the "sun" C style, use that where appropriate as well (<code>src/lib/rpc</code> among others). |
||
+ | as this is already defined by most implementations of emacs CC Mode. |
||
== Vim? == |
== Vim? == |
Revision as of 08:23, 14 July 2009
Parts of the existing source tree are not conforming to our coding style. These inconsistencies can create barriers to entry for new contributors. This page outlines some transition strategies.
Implementation of transition
Multiple phases. Consider batching changes.
- Tabs to spaces (and related whitespace issues like end-of-line whitespace)
- Mark with emacs file variables
- Confirm that this worked by checking if "
diff -w
" shows no changes
- Reindent
- Mark with emacs file variables
- As this may change linebreaks, requires a little more review
Exempt code
Sun-origin code:
- src/lib/rpc
- src/include/gssrpc
BSD-origin code:
- src/appl/bsd
- src/appl/telnet
- src/appl/gssftp
- src/plugins/kdb/db2/libdb2
Whitespace
To mark files as having all tabs expanded to space characters, place the following Emacs mode/local-variable line at the very top of the file:
/* -*- mode: c; indent-tabs-mode: nil -*- */
Indentation
To mark files as having indentation conforming to our coding style, add c-basic-offset: 4
to the local variable line:
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
We will devise some emacs customizations for automatically using the "krb5" c style where appropriate; putting a reference to that style in the local variable line would not be friendly to developers who do not define that style in their .emacs
files, so we will use c-basic-offset
instead.
For BSD-derived code, use
/* -*- mode: c; c-file-style: "bsd"; indent-tabs-mode: t -*- */
as this is already defined by most implementations of emacs CC Mode.
Vim?
Do we want to add file modelines for vim? Some versions of vim had vulnerabilities in handling of modelines.