diff --git a/sicshipadaba.c b/sicshipadaba.c index e6b8b0ed..42e23dd3 100644 --- a/sicshipadaba.c +++ b/sicshipadaba.c @@ -3593,7 +3593,10 @@ static int ListSICSHdbProperty(SConnection * pCon, SicsInterp * pSics, SCWrite(pCon, "ERROR: need path as parameter", eError); return 0; } else if (argc == 3) { - genTclList = 1; + if (strncasecmp(argv[2], "tcl", 3) == 0) + genTclList = 1; + if (strncasecmp(argv[2], "tclesc", 6) == 0) + genTclList |= 2; } targetNode = FindHdbNode(NULL, argv[1], pCon); if (targetNode == NULL) { @@ -3613,7 +3616,7 @@ static int ListSICSHdbProperty(SConnection * pCon, SicsInterp * pSics, DynStringConcatChar(data, ' '); DynStringConcatChar(data, '{'); for (bp = buffer; *bp; ++bp) { - if (*bp == '{' || *bp == '}') + if (genTclList & 2 && (*bp == '{' || *bp == '}')) DynStringConcatChar(data, '\\'); DynStringConcatChar(data, *bp); } diff --git a/site_ansto/instrument/gumxml.tcl b/site_ansto/instrument/gumxml.tcl index 6595d976..bf4507fb 100644 --- a/site_ansto/instrument/gumxml.tcl +++ b/site_ansto/instrument/gumxml.tcl @@ -51,7 +51,7 @@ proc make_nodes {path result indent} { set prefix [string repeat " " $indent] set newIndent [expr $indent + 2] set control "true" - foreach {key rvalue} [string map {= " "} [hlistprop $path tcl]] { + foreach {key rvalue} [string map {= " "} [hlistprop $path tclescape]] { set value [encode $rvalue] if {[string compare -nocase $key "control"] == 0} { if {[string compare -nocase $value "false"] == 0} { @@ -82,7 +82,7 @@ proc make_nodes {path result indent} { proc property_elements {path indent} { set prefix [string repeat " " $indent] - foreach {key rvalue} [string map {= " "} [hlistprop $path tcl]] { + foreach {key rvalue} [string map {= " "} [hlistprop $path tclescape]] { set value [encode $rvalue] if {[string compare -nocase $key "control"] == 0} {continue} lappend proplist "$prefix\n"