I wrote: > I propose that both of these operations should return a space character > for an empty input string. This is by analogy to space-padding as you'd > get with char(1). Any objections?
An alternative approach is to make charin and text_char map empty strings to the null character (\0), and conversely make charout and char_text map the null character to empty strings. charout already acts that way, in effect, since it has to produce a null-terminated C string. This way would have the advantage that there would still be a reversible dump and reload representation for a "char" field containing '\0', whereas space-padding would cause such a field to become ' ' after reload. But it's a little strange if you think that "char" ought to behave the same as char(1).