[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    branches/work/kdelibs4_kconfig/kdecore/kconfig
From:       Thomas Braxton <brax108 () cox ! net>
Date:       2006-07-01 3:22:14
Message-ID: 1151724134.353065.2713.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 556657 by braxton:

allow [] in key names, this is a forward port of SVN commit 556653

 M  +22 -2     kconfigini.cpp  
 M  +3 -0      kconfigini_p.h  


--- branches/work/kdelibs4_kconfig/kdecore/kconfig/kconfigini.cpp #556656:556657
@@ -223,7 +223,7 @@
                 }
             }
 #endif
-            KEntryKey key(currentGroup, aKey);
+            KEntryKey key(currentGroup, decodeKey(aKey));
             key.bLocal = !locale.isNull();
             key.bDefault = bDefault;
 
@@ -292,7 +292,7 @@
 
         firstEntry = false;
         // it is data for a group
-        stream << key.mKey;
+        stream << encodeKey(key.mKey);
 
 #if 0
         if (currentEntry.bNLS)
@@ -485,6 +485,26 @@
     return result;
 }
 
+QByteArray KConfigIniBackend::decodeKey(const QByteArray& aString)
+{
+    QByteArray result(aString);
+
+    result.replace("%5b", "[");
+    result.replace("%5d", "]");
+
+    return result;
+}
+
+QByteArray KConfigIniBackend::encodeKey(const QByteArray& aString)
+{
+    QByteArray result(aString);
+
+    result.replace('[', "%5b");
+    result.replace(']', "%5d");
+
+    return result;
+}
+
 QByteArray KConfigIniBackend::encodeString(const QByteArray& aString)
 {
     QByteArray result(aString.length()*2, 0); // Maximum 2x as long as source string
--- branches/work/kdelibs4_kconfig/kdecore/kconfig/kconfigini_p.h #556656:556657
@@ -50,6 +50,9 @@
     static QByteArray decodeGroup(const QByteArray& aString);
     static QByteArray encodeGroup(const QByteArray& aString);
 
+    static QByteArray decodeKey(const QByteArray& aString);
+    static QByteArray encodeKey(const QByteArray& aString);
+
     static QByteArray encodeString(const QByteArray& aString);
     static QByteArray decodeString(const QByteArray& aString);
 
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic