From 2fb10892e17f18d908c0a548c34ad510fcf03b13 Mon Sep 17 00:00:00 2001
From: Ger van Diepen <diepen@astron.nl>
Date: Wed, 9 Dec 2015 13:00:20 +0000
Subject: [PATCH] Task #8859 Fixed quote removal in case of nested quotes

---
 LCS/pyparameterset/src/__init__.py             | 7 ++++---
 LCS/pyparameterset/test/tpyparameterset.py     | 2 +-
 LCS/pyparameterset/test/tpyparameterset.stdout | 8 ++++----
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/LCS/pyparameterset/src/__init__.py b/LCS/pyparameterset/src/__init__.py
index 5d83e0ddf70..db1bd8c8f6b 100755
--- a/LCS/pyparameterset/src/__init__.py
+++ b/LCS/pyparameterset/src/__init__.py
@@ -138,10 +138,11 @@ class parameterset(PyParameterSet):
         """Turn the parset into a dict"""
         d = {}
         for key in self.keys():
+            s = self.get(key).get()
             if removeQuotes:
-                d[key] = self.get(key).getString()
-            else:
-                d[key] = self.get(key).get()
+                if len(s) >= 2  and  s[0] in ['"',"'"]  and  s[0] == s[-1]:
+                    s = s[1:-1]
+            d[key] = s
         return d
 
     def adoptArgv(self, argv):
diff --git a/LCS/pyparameterset/test/tpyparameterset.py b/LCS/pyparameterset/test/tpyparameterset.py
index ba42fc97968..92e61e32fcd 100644
--- a/LCS/pyparameterset/test/tpyparameterset.py
+++ b/LCS/pyparameterset/test/tpyparameterset.py
@@ -67,7 +67,7 @@ print ps.version("top")
 print ps.version()
 print "<<<"
 ps.add ("a.b", "7")
-ps.add ("a.b.lange_naam", "'dit is nu een andere naam geworden zonder extra spaties aan het einde want die gaan verloren bij wegschrijven + teruglezen'")
+ps.add ("a.b.lange_naam", "'dit \"is\" nu een andere naam geworden zonder extra spaties aan het einde want die gaan verloren bij wegschrijven + teruglezen'")
 ps.add ("a.b.c", "5")
 ps.add ("a.b.double", "3.1415926")
 ps.add ("a.b.bool", "true")
diff --git a/LCS/pyparameterset/test/tpyparameterset.stdout b/LCS/pyparameterset/test/tpyparameterset.stdout
index cad33c7cb64..0fc009b824f 100644
--- a/LCS/pyparameterset/test/tpyparameterset.stdout
+++ b/LCS/pyparameterset/test/tpyparameterset.stdout
@@ -89,7 +89,7 @@ True
 7
 7
 aa
-dit is nu een andere naam geworden zonder extra spaties aan het einde want die gaan verloren bij wegschrijven + teruglezen
+dit "is" nu een andere naam geworden zonder extra spaties aan het einde want die gaan verloren bij wegschrijven + teruglezen
 True
 True
 False
@@ -128,13 +128,13 @@ b.c = 5
 4
 []
 0
-{'b.c': '5', 'b': '7', 'b.lange_naam': "'dit is nu een andere naam geworden zonder extra spaties aan het einde want die gaan verloren bij wegschrijven + teruglezen'", 'b.bool': 'true', 'b.double': '3.1415926'}
-{'b.c': '5', 'b': '7', 'b.lange_naam': 'dit is nu een andere naam geworden zonder extra spaties aan het einde want die gaan verloren bij wegschrijven + teruglezen', 'b.bool': 'true', 'b.double': '3.1415926'}
+{'b.c': '5', 'b': '7', 'b.lange_naam': '\'dit "is" nu een andere naam geworden zonder extra spaties aan het einde want die gaan verloren bij wegschrijven + teruglezen\'', 'b.bool': 'true', 'b.double': '3.1415926'}
+{'b.c': '5', 'b': '7', 'b.lange_naam': 'dit "is" nu een andere naam geworden zonder extra spaties aan het einde want die gaan verloren bij wegschrijven + teruglezen', 'b.bool': 'true', 'b.double': '3.1415926'}
 a.b=7
 a.b.bool=true
 a.b.c=5
 a.b.double=3.1415926
-a.b.lange_naam='dit is nu een andere naam geworden zonder extra spaties aan het einde want die gaan verloren bij wegschrijven + teruglezen'
+a.b.lange_naam='dit "is" nu een andere naam geworden zonder extra spaties aan het einde want die gaan verloren bij wegschrijven + teruglezen'
 e.g=een voorbeeld
 egg=een ei
 vec=[1,2,3]
-- 
GitLab