Affects Version/s: None
Fix Version/s: None
Charmonizer's string handling utilities were originally set up so that buffer
lengths were passed around with every char*, and so that NULLs could be
embedded in strings without problems. This was misguided, because Charmonizer
does not deal with untrusted user data, and there are as yet no cases where
Charmonizer has needed to embed NULLs on its own.
As a side effect of the implementation, Charmonizer is relatively efficient
when it comes to memory allocation – which is of course completely worthless
in the context of launching external compilation processes.
The goal will be to replace the current system with more idiomatic C
NULL-terminated strings, and throw string-handling efficiency concerns to the
winds in pursuit of code clarity.