KConfig borkage
Thomas Braxton
kde.braxton at gmail.com
Tue Oct 30 18:37:25 GMT 2007
On 10/29/07, Oswald Buddenhagen <ossi at kde.org> wrote:
>
> On Sun, Oct 28, 2007 at 09:57:30PM -0500, Thomas Braxton wrote:
> > This patch fixes the wierdness and
> >
> good
>
> > removes entries from other locales from the entryMap,
> >
> good, but ...
>
> > since I was already in the area ;)
> >
> cumulative patches suck. don't do them unless necessary (yes, svn makes
> them necessary more often than one'd like it to, but not in this case).
>
> > I also added a test, since the test for "stringEntry1[fr]" was wrong
> > since KConfigGroup was saving the key as "stringEntry1\x5cfr\x5d", I
> > think those are the right codes.
> >
> yes. you should have tracked the kconfig_new_take2 branch. ;)
>
> pasting the patch wasn't particularly clever ... the line breaks don't
> exactly help applying or reading it. :}
> btw, gmail's mime type detection works for me - maybe the windows
> lineendings were at fault or maybe gmail uses a mime type delivered by
> the browser - dunno.
>
> > Index: tests/kconfigtest.cpp
> > ===================================================================
> > --- tests/kconfigtest.cpp (revision 730047)
> > +++ tests/kconfigtest.cpp (working copy)
> > @@ -500,6 +527,23 @@
> > + // test for entries that are marked as deleted when there is no
> default
> > + KConfig config("kconfigtest", KConfig::SimpleConfig); // make sure
> there
> > are no defaults
> > + cg = config.group("Portable Devices");
> > + cg.writeEntry("devices|manual|(null)", "whatever");
> > + cg.writeEntry("devices|manual|/mnt/ipod", "/mnt/ipod");
> > + cg.sync();
> > +
> > + int count=0;
> > + foreach(const QByteArray& item, readLines())
> > + if (item.startsWith("devices|"))
> > + count++;
> > + QVERIFY(count == 2);
> > + cg.deleteEntry("devices|manual|/mnt/ipod");
> > + cg.sync();
> > + foreach(const QByteArray& item, readLines())
> > + QVERIFY(item != "devices|manual|/mnt/ipod[$d]");
> >
> that doesn't test that the entry is gone, though.
> i guess copying the startsWith("devices|") counter and comparing with
> one would make more sense.
>
> > Index: config/kconfigini.cpp
> > ===================================================================
> > --- config/kconfigini.cpp (revision 730047)
> > +++ config/kconfigini.cpp (working copy)
> > @@ -202,10 +202,8 @@
> > if (!locale.isEmpty()) {
> > if (locale != currentLocale) {
> > // backward compatibility. C == en_US
> > - if (locale.at(0) != 'C' || currentLocale !=
> "en_US") {
> > - aKey += '[' + locale + ']';
> > - locale = QByteArray();
> > - }
> >
> wow, this was impressively broken - locale appended after the key was
> decoded.
>
> > + // FIXME is this needed anymore?
> >
> why not?
> > if ( !file.size() && ((fileMode == -1) || (fileMode == 0600)) ) {
> > // File is empty and doesn't have special permissions: delete
> it.
> > file.abort();
> >
>
> while trying to understand the rest of the patch i noticed that
> EntryDefault isn't set anywhere. consequently all the logic building on
> top of it is dysfuct. so there is little point in reviewing the patch,
> i figure.
>
> procedure:
> - revert everything
> - do the localized entry purge, commit
> - add the failing tests (possibly come up with more?), commit
> - fix cascaded parsing. revisit the problems. if they persist, post a
> new patch.
>
> --
> Hi! I'm a .signature virus! Copy me into your ~/.signature, please!
> --
> Chaos, panic, and disorder - my work here is done.
>
this should now be fixed, update & let me know if anything doesn't work
right
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20071030/0a316657/attachment.htm>
More information about the kde-core-devel
mailing list