From 565ba9d10d9c4faebf5e8b1d38ddd95e7b0a9f6c Mon Sep 17 00:00:00 2001 From: Douglas Clowes Date: Mon, 23 Jun 2014 12:40:26 +1000 Subject: [PATCH] SICS-752 Escape all embedded braces in hlistprop tcllist output --- sicshipadaba.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/sicshipadaba.c b/sicshipadaba.c index b7639f77..e6b8b0ed 100644 --- a/sicshipadaba.c +++ b/sicshipadaba.c @@ -3609,11 +3609,16 @@ static int ListSICSHdbProperty(SConnection * pCon, SicsInterp * pSics, while ((pKey = GetNextHdbProperty(targetNode, buffer, 511)) != NULL) { DynStringConcat(data, (char *) pKey); if (genTclList) { - DynStringConcat(data, " "); - DynStringConcat(data, "{"); - DynStringConcat(data, buffer); - DynStringConcat(data, "}"); - DynStringConcat(data, " "); + char *bp; + DynStringConcatChar(data, ' '); + DynStringConcatChar(data, '{'); + for (bp = buffer; *bp; ++bp) { + if (*bp == '{' || *bp == '}') + DynStringConcatChar(data, '\\'); + DynStringConcatChar(data, *bp); + } + DynStringConcatChar(data, '}'); + DynStringConcatChar(data, ' '); } else { DynStringConcat(data, "="); DynStringConcat(data, buffer);