[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: KConfigGroup read/write bug for QByteArray
From: David Jarvie <lists () astrojar ! org ! uk>
Date: 2007-09-16 12:41:27
Message-ID: 200709161341.27977.lists () astrojar ! org ! uk
[Download RAW message or body]
Using KConfigGroup::writeEntry() to write a QByteArray and then
KConfigGroup::readEntry() to read it back in again can result in a value
which is different from the original value, because the value written to the
config file is converted to UTF8 when it is read back, so that all byte
values >= 0x7F are changed to multi-byte values.
If this is the desired behaviour (which I doubt), it's difficult to convert
back from UTF8 since calling QString::fromUtf8 truncates the value as soon as
it encounters a null byte. In data arrays, null bytes are common.
The conversion occurs at the KConfigINIBackEnd level - reading from the config
file using QFile seems to automatically convert the input to UTF8. Since at
this level the config entry type is unknown, the solution looks like
KConfigGroup::writeEntry() should write all QByteArray byte values >= 0x7F in
hex representation. That way, the QFile read won't change them, and the
correct value will be accessible to KConfigGroup for conversion.
I'll produce a patch if my proposed solution is acceptable. Comments please.
--
David Jarvie.
KAlarm author and maintainer.
http://www.astrojar.org.uk/kalarm
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic