KConfig: Expandable flag of config entries is not persistent
Ingo Klöcker
kloecker at kde.org
Mon Oct 8 22:41:26 BST 2007
On Monday 08 October 2007, Nhuh Put wrote:
> > Von: Ingo Klöcker
> > Gesendet: Sonntag, 7. Oktober 2007 22:41
> > An: kde-core-devel at kde.org
> > Betreff: KConfig: Expandable flag of config entries is not
> > persistent
> >
> > Hi,
> >
> > KConfigGroup seems to have a serious problem with the persistence
> > of the flags of config entries. In the particular case I have
> > encountered the expandable flag ($e) of a path entry is lost if the
> > config is rewritten without explicitly rewritting the path entry
> > with writePathEntry(). This should be a very common use case
> > because it occurs whenever an application writes a path entry only
> > if it has changed (e.g. KMail writes the location of the mail
> > storage usually only a single time and thenceforth only reads the
> > entry).
> >
> > The attached patch for kconfigtest demonstrates the problem. After
> > adding another config entry and synching the config the expandable
> > flag of the path entry is gone so that the second read test of the
> > path fails because readPathEntry() returns the unexpanded value
> > $HOME/foo:
> >
> > FAIL! : KConfigTest::testPath() Compared values are not the same
> > Actual (sc3.readPathEntry( "homepath", QString() )): $HOME/foo
> > Expected (HOMEPATH): /home/ingo/foo
> > Loc:
> > [/home/ingo/svn/kde/trunk/KDE/kdelibs/kdecore/tests/kconfigtest.cpp
> >(277)]
>
> This should now also be fixed, at least the testcase doesn't fail
> anymore.
I'm sorry, but it is not fixed. I have now committed my testcase. With
revision 723155 (which includes my amended kconfigtest) I'm getting
********* Start testing of KConfigTest *********
Config: Using QTest library 4.3.1, Qt 4.3.1
PASS : KConfigTest::initTestCase()
PASS : KConfigTest::testSimple()
FAIL! : KConfigTest::testLists() 'sc3.hasKey(
QString("stringListEmptyEntry") )' returned FALSE. ()
Loc:
[/home/ingo/svn/kde/trunk/KDE/kdelibs/kdecore/tests/kconfigtest.cpp(261)]
PASS : KConfigTest::testPath()
FAIL! : KConfigTest::testPersistenceOfExpandFlagForPath() Compared
values are not the same
Actual (sc3.readPathEntry( "homepath", QString() )): $HOME/foo
Expected (HOMEPATH): /home/ingo/foo
Loc:
[/home/ingo/svn/kde/trunk/KDE/kdelibs/kdecore/tests/kconfigtest.cpp(287)]
FWIW, this bug makes it impossible to run KMail because after the second
start your mail storage will not be found anymore (due to the missing
expansion of $HOME).
Regards,
Ingo
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20071008/c9a2c58d/attachment.sig>
More information about the kde-core-devel
mailing list