summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Coding_Style.odtbin23360 -> 0 bytes
-rw-r--r--Makefile.am3
-rw-r--r--coding_style.md195
3 files changed, 197 insertions, 1 deletions
diff --git a/Coding_Style.odt b/Coding_Style.odt
deleted file mode 100644
index 23aeef12..00000000
--- a/Coding_Style.odt
+++ /dev/null
Binary files differ
diff --git a/Makefile.am b/Makefile.am
index 8e6e18b8..36072479 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,8 @@
ACLOCAL_AMFLAGS = -I m4
AM_DISTCHECK_CONFIGURE_FLAGS = --without-systemdsystemunitdir
-EXTRA_DIST = bootstrap COPYING design.txt faq-compile.txt faq-general.txt file-loc.txt install.txt prog_std.txt readme.txt
+EXTRA_DIST = bootstrap COPYING coding_style.md design.txt faq-compile.txt \
+ faq-general.txt file-loc.txt install.txt prog_std.txt readme.txt
if XRDP_NEUTRINORDP
NEUTRINORDPDIR = neutrinordp
diff --git a/coding_style.md b/coding_style.md
new file mode 100644
index 00000000..584dac78
--- /dev/null
+++ b/coding_style.md
@@ -0,0 +1,195 @@
+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.
+
+
+Indentation
+-----------
+
+* 4 spaces per indent
+* No tabs for any indents
+
+☞
+
+ if (fd < 0)
+ {
+ return -1;
+ }
+
+
+Line wrapping
+-------------
+
+* Keep lines shorter 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
+
+☞
+
+ 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");
+ }