
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. 

