Coding Guidelines for AIME This document describes the general guidelines in writing code for the AIME project. They are designed help establish some degree of standardization and keep the code neat and organized. Please try to adhere to them while writing. Coding Features: To code a feature that is listed as a task on Sourceforge, merely assign a task to yourself (assuming it has no owner) and go from there. If a task does not exist for the feature, raise the issue on the aime-devel@lists.sourceforge.net listserver so folks can discuss it. If there are no huge issues with it, a project manager will create a task for the feature and you can assign it to yourself and start coding it from there. In general, most ideas will not be denied...it is just meant to ensure the idea is accomplished in the best manner possible, and to provide a sanity check of the idea. Documentation: The code you write should be well documented. Each function should have a documentation header that describes what the function does. It should describe each parameter and the return values, unless obvious in the description of the function. For instance, the function "get_name_string" should be obvious that it returns the name string so would not need a return value description. Also, please try to provide enough documentation in the code so folks don't have to get a headache trying to figure out what it does. Windows vs. Unix code: All windows-specific code (.cpp and .h files) should go into the win32 directory, with the exception of small sections of code. Small sections (a couple lines or a single function) should be handled with an #ifdef WIN32 define. Please try to test your code both on windows and a unix-based system to ensure it works both ways. Unix code should go into the src directory and header files into the include directory. Try to avoid using windows-specific classes such as CString, CFile, etc in the src and include directories. You should use the AIME Strings class or the unix FILE class. In the win32 directory, you can go hog-wild with windows classes.