Whitespace tidyup - change spaces to tabs.
Include tools.h to get sg_realloc.
Change malloc -> sg_malloc, realloc -> sg_realloc, and rewrite the one calloc call to use sg_malloc.
Update name of project at the top of all soure files. These files now exist in their own right, rather than as part of the "CMS".
Rename all the functions, types and enums in the API to be consistent. Types are now of the form "sg_mem_stats"; functions of the form "sg_get_mem_stats"; enums of the form "SG_PROCESS_STATE_RUNNING". (The old get_proc_snapshot follows the usual calling convention now.) Make internal functions static where possible. Rename non-static internal functions to have an sg_ prefix so they don't collide with those from other libraries. In particular, strlcpy and strlcat are now called sg_strlcpy and sg_strlcat and are always included. Fix saidar and statgrab to use the new API.
Fix the strict-aliasing problem in a clean, sensible way that actually works. As a bonus, we now get a "value computed is not used" warning from GCC if we don't check the return value of VECTOR_RESIZE. (This is dubiously a bonus when it's being resized to 0, but it's not going to hurt to check even then -- we might support destructors failing in the future.)
Fix the strict-aliasing warnings. This is even uglier than the previous code, since it pushes a test for a sentinel value into the VECTOR_RESIZE macro. I'm pretty certain that the pointer-to-static-used-as-sentinel is my own invention. I'm not entirely convinced that it's a good idea, but I can't see anything technically wrong with it...
Deal with vectors as char ** rather than void **, so we can do pointer arithmetic without Sun cc complaining.
Add generic vector-handling code. This can be used to implement resizable arrays of objects with optional initialisation/destruction functions.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.