KConfig borkage

Jeff Mitchell kde-dev at emailgoeshere.com
Sun Oct 28 07:16:41 GMT 2007


I'm seeing some odd, reproduceable behavior in my amarokrc file.  kdelibs was 
built from SVN about 12 hours ago.

There is a [PortableDevices] section that is occasionally added to or deleted 
from.  The problem is that whenever the last (positionally, not numerically) 
entry is removed, it's not actually removed, but rather gets corrupted 
somehow.

Example:

If I start out with this:

[PortableDevices]
manual|mtp|(null)=mtp-mediadevice
manual|generic|/mnt/usbdisk=generic-mediadevice

and in my program I run code to remove the first entry:

KConfigGroup config = Amarok::config( "PortableDevices" );
config.deleteEntry( "manual|mtp|(null)" );

then after the program exits I'm left with:

[PortableDevices]
manual|generic|/mnt/usbdisk=generic-mediadevice

as expected.  However, if I then run code to remove the other device:

KConfigGroup config = Amarok::config( "PortableDevices" );
config.deleteEntry( "manual|generic|/mnt/usbdisk" );

then when the program exits I'm left with:

[PortableDevices]
manual|generic|/mnt/usbdisk[$d]

Which isn't what I expect.

Similarly, if I start out with:

[PortableDevices]
manual|generic|/mnt/usbdisk=generic-mediadevice
manual|mtp|(null)=mtp-mediadevice

and run code to remove the second one, I'm left with the following:

[PortableDevices]
manual|generic|/mnt/usbdisk=generic-mediadevice
manual|mtp|(null)[$d]

Is this expected behavior, or is something wonky in KConfig?

Thanks,
Jeff




More information about the kde-core-devel mailing list