Isn Bstrlib really appropriate just for applications that are being written scratch?
A. Not at all! Bstrlib is highly interoperable with standard char * strings. Complete conversion from char *’s to bstrings is usually not necessary, since the library contains key functions for mixing the two and extracting a NUL (‘\0’) terminated char * from a bstring is a trivial operation. Bstrlib also contains macros which replaces the semantics of “pointer arithmetic” with a safe superset (string segment arithmetic) of such functionality. So migrating from char * usage to Bstrlib can be done incrementally without semantic impediments.