C-style string definition and manipulation library

Updated: 22nd January 2012


Date Version Download Comments
    Distribution Checksum  
20th February 2012 3.6.2 cstring-3.6.2.zip (662861 bytes) cstring-3.6.2.md5 (34 bytes)
Numerous changes:
  • all makefiles now build cstring.3.core*.(lib|a) rather than cstring.3*.(lib|a) : this was erroneously omitted from the 3.6.1 release
24th January 2012 3.6.1 cstring-3.6.1.zip (660105 bytes) cstring-3.6.1.md5 (34 bytes)
Numerous changes:
  • added CSTRING_F_MEMORY_CAN_GROW_TO_HEAP flag, which allows a borrowed buffer to grow (into the heap)
  • renamed output library to cstring.core.* (in preparation for coming 4.x expansions)
  • added string access shims for CSTRING_RC
  • added cstring_getStatusCodeStringLength()
  • renamed cstring_error() => cstring_getStatusCodeString()
  • added VC10 solution and project files
  • added VC9 solution and project files
  • added test.unit.cstring.auto_buffer
  • added test.unit.cstring.cstring_getStatusCodeString
  • added test.scratch.auto_buffer
  • full Win64 compatibility
  • fixed up minor documentation mistakes
22nd January 2012 3.5.4 cstring-3.5.4.zip (592959 bytes) cstring-3.5.4.md5 (34 bytes)
Three changes:
  • further Win64-compatibility
  • added test.scratch.HGLOBAL_on_x64 project
  • added VC++ 10 compatibility
11th July 2009 3.5.2 cstring-3.5.2.zip (618685 bytes) cstring-3.5.2.md5 (34 bytes)
Three changes:
  • fixed implicit link defects
  • completed Win64 compatibility
  • minor adjustments to compiler warnings
10th July 2009 3.5.1 cstring-3.5.1.zip (603804 bytes) cstring-3.5.1.md5 (34 bytes)
Three changes:
  • added new API functions for cstring I/O, replacing and inserting substrings, and initialisation
    • added cstring_readline() and cstring_writeline() functions, for FILE* I/O
    • added cstring_createN() function, which creates a string with N repetitions of a given character
    • added cstring_replace(), cstring_replaceLen(), cstring_replaceAll() (sub-)string replacement functions
    • added cstring_replace(), cstring_replaceLen(), cstring_replaceAll() (sub-)string replacement functions
  • added compatibility with Borland C/C++ 5.8.2, 5.9 and 6.1, Intel C/C++ 9-11, and GCC 4.1-4.4
  • added three unit/component test programs
    • added test.unit.cstring.1
    • added test.unit.cstring.2
    • added test.component.cstring_readline
  • wholesale changes to makefiles / distribution, incorporating all changes to source & test programs; see installation guide
13th May 2008 3.4.4 cstring-3.4.4.zip (301552 bytes) cstring-3.4.4.md5 (34 bytes)
Three changes:
  • compatible with Win64
  • compatible with Safe String library
  • additional error codes in API
26th January 2007 3.4.3 cstring-3.4.3.zip (276761 bytes) cstring-3.4.3.md5 (34 bytes)
Three changes:
  • Now roots the distribution under cstring-X.Y, e.g. cstring-3.4.3
30th April 2006 3.4.2 cstring-3.4.2.zip (274264 bytes) cstring-3.4.2.md5 (34 bytes)
Only minor edits, and little fixes.
7th October 2005 3.4.1 cstring-3.4.1.zip (234611 bytes) cstring-3.4.1.md5 (34 bytes)
Three changes:
  • The makefiles now build libraries whose names are comprised of the major version number, e.g. cstring.3.vc6.lib, in addition to the one created in previous cstring versions: e.g. cstring.vc6.lib
  • Type cstring_flags_t is defined to disambiguate flags params from size params (which use the size_t)
  • Added CSTRING_RC_CANNOTYIELDFROMSO return code, used when trying to yield a string from a dynamic library implementation of the library that has been allocated using realloc().
  • cstring_yield() has been deprecated, in favour of cstring_yield2(). If you want the old behaviour, you must define CSTRING_OBSOLETE.
8th August 2005 3.3.1 cstring-3.3.1.zip (192600 bytes) cstring-3.3.1.md5 (34 bytes)
Two changes:
  • Changed the memory allocation algorithm, such that each reallocation is at least twice the size of the extant block
  • Now dynamically loads the CoTaskMemRealloc function from OLE32.DLL, so easing the linking burden when working with a variety of compilers
29th July 2005 3.2.1 cstring-3.2.1.zip (177297 bytes) cstring-3.2.1.md5 (34 bytes)
This is the first public release of this formerly proprietary library from Synesis Software. It is a plain-C library, and is platform/compiler independent. When compiled under Win32 it provides the facility to use Win32 Global, Process Heap and COM Task Allocator memory, rather than the default C library realloc().