KConfigGroup read/write bug for QByteArray

David Jarvie lists at astrojar.org.uk
Mon Sep 17 02:39:33 BST 2007


On Sunday 16 September 2007 14:41:28 Matt Rogers wrote:
> On Sunday 16 September 2007 07:41, David Jarvie wrote:
> > 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.
>
> Can you provide a patch? Then we can discuss your proposal based on the
> technical merits of it rather than just sitting in our chairs wondering to
> ourselves how it would actually work and whether or not we'd like it.

It turns out that the bug actually lies in KConfigGroup::writeEntry(), and 
that all that is required is for a QByteArray not to be converted to UTF8 
before being written. I attach a patch to fix it, and to add a test case to 
the unit test.

-- 
David Jarvie.
KAlarm author and maintainer.
http://www.astrojar.org.uk/kalarm
-------------- next part --------------
A non-text attachment was scrubbed...
Name: bytearray.diff
Type: text/x-diff
Size: 4307 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070917/18dc9867/attachment.diff>


More information about the kde-core-devel mailing list