Go to file
websnarf f0ff1e8081 Update comparison with SDS according to feedback from the author. 2016-11-02 01:44:40 -07:00
LICENSE Fix documentation bugs. Use (void) var in bsafe.c for unused variables. 2015-04-16 00:04:38 -07:00
README.md Update README.md 2015-08-21 15:35:10 -04:00
bsafe.c Fix copyrights and remove extraneous tail spaces. 2015-11-03 17:23:09 -08:00
bsafe.h - Initial checkin of bstrlib from where it left off on sourceforge. 2014-12-08 05:29:01 -08:00
bstest.c Fix copyrights and remove extraneous tail spaces. 2015-11-03 17:23:09 -08:00
bstraux.c Removed compiler warnings [-Wself-assign] for a cleaner build output for *real* problems 2016-01-25 09:12:51 -08:00
bstraux.h Fix from mike.steinert@gmail.com for uuDecode leak. Add bSGMLEncode(). 2016-01-06 05:49:42 -08:00
bstrlib.c Implement biseqcaseless on top of biseqcaselessblk. 2016-04-20 16:33:07 -07:00
bstrlib.h Add a version number system for Bstrlib. 2016-09-12 11:16:26 -07:00
bstrlib.txt Update comparison with SDS according to feedback from the author. 2016-11-02 01:44:40 -07:00
bstrwrap.cpp Add basic UTF8 support. Fix warnings. Update copyrights. 2015-07-27 01:59:50 -07:00
bstrwrap.h Add basic UTF8 support. Fix warnings. Update copyrights. 2015-07-27 01:59:50 -07:00
buniutil.c Add utf8util module. Other minor updates. 2015-07-27 22:16:18 -07:00
buniutil.h Add basic UTF8 support. Fix warnings. Update copyrights. 2015-07-27 01:59:50 -07:00
gpl.txt - Initial checkin of bstrlib from where it left off on sourceforge. 2014-12-08 05:29:01 -08:00
porting.txt - Initial checkin of bstrlib from where it left off on sourceforge. 2014-12-08 05:29:01 -08:00
security.txt Remove disclaimer about 2s complement. Update other language. 2016-01-11 04:33:16 -08:00
test.cpp Add the experimental macro: bDeclTbstr 2015-11-03 17:17:22 -08:00
testaux.c Fix from mike.steinert@gmail.com for uuDecode leak. Add bSGMLEncode(). 2016-01-06 05:49:42 -08:00
utf8util.c Add utf8util module. Other minor updates. 2015-07-27 22:16:18 -07:00
utf8util.h Add utf8util module. Other minor updates. 2015-07-27 22:16:18 -07:00

README.md

The Better String Library

The Better String Library is an abstraction of a string data type which is superior to the C library char buffer string type, or C++'s std::string. Among the features achieved are:

  • Substantial mitigation of buffer overflow/overrun problems and other failures that result from erroneous usage of the common C string library functions

  • Significantly simplified string manipulation

  • High performance interoperability with other source/libraries which expect '\0' terminated char buffers

  • Improved overall performance of common string operations

  • Functional equivalency with other more modern languages

The library is totally stand alone, portable (known to work with gcc/g++, MSVC++, Intel C++, WATCOM C/C++, Turbo C, Borland C++, IBM's native CC compiler on Windows, Linux and Mac OS X), high performance, easy to use and is not part of some other collection of data structures. Even the file I/O functions are totally abstracted (so that other stream-like mechanisms, like sockets, can be used.) Nevertheless, it is adequate as a complete replacement of the C string library for string manipulation in any C program.

The library includes a robust C++ wrapper that uses overloaded operators, rich constructors, exceptions, stream I/O and STL to make the CBString struct a natural and powerful string abstraction with more functionality and higher performance than std::string.

Bstrlib is stable, well tested and suitable for any software production environment.