I noticed that e.g. convert_1_to_0() (actually any conversion that goes from wider to narrower) in stralloc.c just chops off the wider part instead of actually leaving out the characters which cannot be represented in the narrower string.
Is there are a reason why it is truncated instead of skipped? I'd presume that actually omitting the characters which cannot be represented would be more correct. Simply truncating them generates garbage.
And, subsequently, if everyone agrees to the above, can/should I fix this?