The ones which use a definite 8-bit encoding read/write pascal-style
strings with a 16bit length prefix.
The ones which use a definite 16-bit encoding read/write pascal-style
UTF-16 strings with a 32bit length prefix, i.e. not ByteStrings at all
The "I dunno" ones might be UTF-16 strings or 8-bit strings, depending
on the charset. Rename to ReadUniOrByteString like the other
similar horrors to flag this misery
Nobody ever used the return values anyway, so for reading just
return the string and for writing the number of bytes written
Doesn't need to be members, make standalone functions
Rename to
read_lenPrefixed_uInt8s_ToO[U]String and
write_lenPrefixed_uInt8s_FromO[U]String, lengthy,
but much less unambiguous, seeing as a lot of users of it don't
seem to be aware that they read/write pascal-style length
prefixed strings, which isn't surprising given the
apparent simplicity of their original name.
added a unit test
The ones which use a definite 8-bit encoding read/write pascal-style
strings with a 16bit length prefix.
The ones which use a definite 16-bit encoding read/write pascal-style
UTF-16 strings with a 32bit length prefix, i.e. not ByteStrings at all
The "I dunno" ones might be UTF-16 strings or 8-bit strings, depending
on the charset. Rename to ReadUniOrByteString like the other
similar horrors to flag this misery
Nobody ever used the return values anyway, so for reading just
return the string and for writing the number of bytes written
Doesn't need to be members, make standalone functions
Rename to
read_lenPrefixed_uInt8s_ToO[U]String and
write_lenPrefixed_uInt8s_FromO[U]String, lengthy,
but much less unambiguous, seeing as a lot of users of it don't
seem to be aware that they read/write pascal-style length
prefixed strings, which isn't surprising given the
apparent simplicity of their original name.
added a unit test
1.a) There is only one call to SvTokenStream::SetCharSet
2.b) That call is from SvTokenStream::InitCtor and the argument is
gsl_getSystemTextEncoding()
2.a) SvTokenStream::SetCharSet is the sole caller of SvChar::GetTable
i.e.
pCharTab = SvChar::GetTable( nSet, gsl_getSystemTextEncoding() );
2.b) so this is in practive only ever...
pCharTab = SvChar::GetTable( gsl_getSystemTextEncoding(),
gsl_getSystemTextEncoding() );
3) SvChar::GetTable returns a table for converting from one encoding to
another.
4) so the whole thing is a no-op, i.e.
pCharTab can be dropped
SvChar::GetTable is then unused and can be dropped
SetCharSet and GetCharSet are then also unused