You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.1 KiB
3.1 KiB
XRdp Coding Style
The coding style used by XRdp is described below.
The XRdp project uses astyle (artistic style) to format the code. Astyle
requires a configuration file that describes how you want your code
formatted. This file is present in the XRdp root directory and is named
astyle_config.as
.
Here is how we run the astyle command:
astyle --options=/path/to/file/astyle_config.as "*.c"
This coding style is a work in progress and is still evolving.
Language Standard
Try to make all code compile with both C and C++ compiler. C++ is more strict, which makes the code safer.
Indentation
- 4 spaces per indent
- No tabs for any indents
☞
if (fd < 0)
{
return -1;
}
Line wrapping
- Keep lines not longer than 80 chars
- Align wrapped argument to the first argument
☞
log_message("connection aborted: error %d",
ret);
Variable names
- Use lowercase with underscores as needed
- Don't use camelCase
- Preprocessor constants should be uppercase
☞
#define BUF_SIZE 1024
int fd;
int bytes_in_stream;
Variable declaration
- Each variable is declared on a separate line
☞
int i;
int j;
Whitespace
- Use blank lines to group statements
- Use at most one empty line between statements
- For pointers and references, use a single space before * or & but not after
- Use one space after a cast
- No space before square brackets
☞
char *cptr;
int *iptr;
cptr = (char *) malloc(1024);
write(fd, &buf[12], 16);
Function declarations
- Use newline before function name
☞
static int
value_ok(int val)
{
return (val >= 0);
}
Braces
- Opening brace is always on a separate line
- Align braces with the line preceding the opening brace
☞
struct stream
{
int flags;
char *data;
};
void
process_data(struct stream *s)
{
if (stream == NULL)
{
return;
}
}
if
statements
- Always use braces
- Put both braces on separate lines
☞
if (val <= 0xff)
{
out_uint8(s, val);
}
else if (val <= 0xffff)
{
out_uint16_le(s, val);
}
else
{
out_uint32_le(s, val);
}
for
statements
- Always use braces
- Put both braces on separate lines
☞
for (i = 0; i < 10; i++)
{
printf("i = %d\n", i);
}
while
and do while
statements
- Always use braces
while
after the closing brace is on the same line
☞
while (cptr)
{
cptr—;
}
do
{
cptr--;
} while (cptr);
switch
statements
- Indent
case
once - Indent statements under
case
one more time - Put both braces on separate lines
☞
switch (cmd)
{
case READ:
read(fd, buf, 1024);
break;
default:
printf("bad cmd\n");
}
Comments
Use /* */ for comments Don't use //