For s390-tools the preferred language is C. We provide libraries, e.g.
libutil
that should be used by all tools if possible.
The coding style is based on the Linux kernel guidelines. Therefore, use the
checkpatch tool for verification before you submit a patch. s390-tools
provides a CheckPatch configuration for this - see
.checkpatch.conf
.
Below we describe some additional things that we want you to consider when writing new code for s390-tools.
This package started in 2001 and has a long "tradition" - therefore, older tools might not follow all recommendations. Note that when changing existing code, consistency could have priority over applying rules.
NOTE: clang-format is a helpful tool but please don't use it blindly!
s390-tools provides a ClangFormat (https://clang.llvm.org/docs/ClangFormat.html)
configuration file - see .clang-format
. It can be used to
format your C/C++ code automatically.
Clang-format can format a single file or multiple files at once. For example, to
format main.c
in place, run the following command in a terminal:
clang-format -i main.c
In order to format only your current staged changes use the clang-format git plugin:
git clang-format --staged
See also git clang-format -h
.
s390-tools provides a EditorConfig (https://editorconfig.org/) configuration
file - see .editorconfig
. EditorConfig defines coding style
rules (such as indentation size, use of tabs, etc.) and is supported by most
common editors natively or via plugins.
The abbreviations below are recommended to be used in the source code.
Short Name | Long Name |
---|---|
attr | Attribute |
blk | Block |
buf | Buffer |
col | Column |
count | Count |
desc | Description |
dir | Directory |
fd | File descriptor (open) |
fp | File pointer (fopen) |
len | Length |
lib | Library |
mod | Module |
nr | Number |
parm | Parameter |
path | File path |
ptr | Pointer |
rc | Return code |
size | Size |
src | Source |
str | String |
sym | Symbol |