Code style / indentation ------------------------ The file indent-all.sh contains information about the current code style. Run this script before commits. Variable argument macros ------------------------ Variable argument macros are non-portable in general, and should be avoided. Either use a second set of parentheses like DEBUG, or create a variable argument function like error. Structure --------- The core protocol stack should be system-independent (i.e. ANSI C89 only) so that it is easy to port. This currently applies to the following files: bitmap.c licence.c orders.c rdp.c rdp5.c cache.c iso.c mcs.c secure.c mppc.c channels.c rdesktop.c Compiler support ---------------- The source code should be compatible with ANSI C89. One exception is the SeamlessRDP ServerEXE and ClientDLL, which should be compatible with ANSI C99. RDP resources ------------- http://dev.remotenetworktechnology.com/refdata.htm Checking for out of memory conditions ------------------------------------- Try to handle out of memory conditions gracefully. Use the xmalloc routines from rdesktop.c, instead of calling malloc manually. Also, remember that several Xlib functions can return NULL. This includes XGetImage. Use exit_if_null to verify returned pointers.